Azure Databricksとは?Apacheのフレームワーク、Azure HDInsightとの違いも解説

Azure Databricksとは?Apacheのフレームワーク、Azure HDInsightとの違いも解説

AIエンジニアとデータサイエンティストは、あらゆる業界で必要とされる人材になりました。高度な数学の理解とデータ分析ツールを使いこなすスキルとともに、最先端の技術をビジネス向けに翻訳できる能力が求められます。

ビッグデータを分析するツールのひとつとして、AzureにはAzure Databricksがあります。PaaSとして提供されるApache Sparkの分散処理を基盤としたビッグデータの分析ツールで、人工知能(AI)のサービス構築にも活用できます。

Apache Databricks自体は外部のサービスであり、AzureにはAzure HDInsightという分散処理のデータソリューションもあります。そこで、ビッグデータの分散処理には何を利用すればいいのか?と混乱する場合もあるでしょう。

Azure Databricksに関してApache関連のフレームワーク全体から機能とメリットを解説し、同じAzureのサービスであるAzure HDIinsightとの違いを踏まえた上で、Azure Databricksの事例、価格設定について取り上げます。

Azure-Databricks

Azure DatabricksのDatabricksとは

MicrosoftはAzureのクラウドで、さまざまなオープンソースソフトウェアやフレームワークの利用が可能になるように機能を拡充しています。さらにSAPやOracleなどのソリューションと連携も活発です。Azure DatabricksもDatabricksをAzure上で利用できるようにしたソリューションとして、このようなAzureのサービス展開に位置づけられます。

したがって、Azure Databricksを解説する前に、まずDatabricksについて理解する必要があります。さらに、DatabricksはApache Spark上で構築されています。Apache SparkはApache Hadoopを高速化したものです。

そこで順序としては、時系列に並べ替えてApache Hadoop、Apache Spark、Databricks、Azure Databricksの順に解説していくことにしましょう。

Apache Hadoopとは

Apache Hadoopは、2006年から活発に使われるようになった分散処理フレームワークです。オープンソースソフトウェアを支援するApacheソフトウェア財団が管理しています。

テラバイト(TB)の1,000倍のペタバイトレベルのデータを複数のストレージに保存し、複数のコンピュータに分散させて並行処理を行い、ビッグデータ処理の基盤を構築します。言語はJavaが使われ、処理を記述するだけでデータの分配や結果の統合などを自動処理することが可能です。

Hadoop Distributed File System (HDFS)という独自の分散ファイルシステムを利用することが特徴です。このファイルシステムでは、データをブロック単位に分割して複数のノードに保存し、データが破損しても復元可能な信頼性を備えています。

Databricksで使われているApache Spark

Apache Sparkは、2009年にカリフォルニア大学バークレー校の研究から生まれました。Hadoopと比較して膨大なデータをリアルタイムで処理可能な高速性、データ変換を目的とした豊富な演算子と半構造化データのためのデータフレームAPIによる利便性、標準装備された高度なライブラリと複雑なワークフロー作成機能による統合性の特徴を持ちます。

APIで提供されているため幅広い活用事例があります。たとえばエンターテイメント分野で成長を遂げているNetflix、インターネットオークションの大手eBayなどでApache Sparkが導入され、高速な処理を実現しています。

簡易提案書「ゼロから分かるMicrosoft Azure」
Azure Cosmos DB 自習書 - Azure Cosmos DB 入門 SQL API 編 –

Apache SparkからDatabricksへ

Apache Hadoop、Apache Sparkを踏まえてDatabricksを解説します。まずDatabricksは、Azureの機能名ではなくApache Sparkの開発チームが2013年に設立した企業の名前であり、同時にデータレイクとデータウェアハウスのプラットフォームを提供するソリューションの名称になります。

ここで、Databricks はApache HadoopではなくApache Sparkベースであることに留意しておくと、Azure HDInsightとの違いを把握しやすくなるでしょう。

Databricksは、エンタープライズ向けのPaaSの分野ではAWSと連携していました。この分散処理フレームワークのAzure版がAzure Databricksですが、クラウド市場トップのAWSで提供されているビッグデータ分析をAzureにおいても利用できます。

Databricksは、企業によって提供されていますがオープンソースを基盤としています。というのは開発の当初にApache Sparkのほか、Delta Lake、MLflowなどを開発したチームが手掛けたためです。したがってオープンソースの持つ開放的な風土があり、現在も開発者によるコミュニティが活性化しています。

Databricksは、分散処理フレームワークであるApache Sparkベースで構築されているとともに、対話型ノートブックや統合されたワークフロー、堅牢なセキュリティによって機械学習やデータサイエンスの基盤を提供します。

Apache Sparkより優れた機能としては以下が挙げられます。

  • Apache Sparkに対して最大50倍パフォーマンスを向上させるランタイム
  • マネージド型の信頼性の高いデータレイク
  • コラボレーションを実現する統合ワークスペース
  • パイプラインとノートブックと連携したワークフローの自動化
  • アクセス制御や暗号化によるエンタープライズレベルのセキュリティ

企業から提供されるため、サポートが充実していることもメリットです。

Azure Databricksの概要

Databricksの高度な分散処理のデータ分析環境をAzureのクラウドに最適化し、迅速に構築するためのセットアップ環境や自動スケールアップ機能を整備したソリューションがAzure Databricksです。Databricks自体は独自のクラウドやAWSでも利用することができますが、Azure上でシステムを構築する場合には、他の機能と統合した環境を実現します。

Azure Databricks は、Azure Machine Learningで提供されるAPIなどを中心に、Azure Data Factory、Azure Data Lake Storage、Power BI などを連携させることが可能です。

たとえば、Azure Machine Learningを使って機械学習を行うためには、膨大な学習データと高速処理が必要になるため、Azure Databricksとの連携が効果的です。

Azure Machine Learningでは、豊富なアルゴリズムやハイパーパラメータを利用することができ、WebサービスやIoTなどエッジAIまで対応しています。GUIによる直感的な操作で学習の実験可能で、データサイエンティストやAIエンジニアの要望に応えます。

データウェアハウスの構築では、Azure Data Factoryによって自動化してAzure Data Lake Storage に膨大なデータを読み込ませて、Azure Databricksで変換とクリーンアップを行った後に、Azure Synapse Analyticsで分析というフローが考えられます。ダッシュボードを使って分析結果を可視化することが可能になり、インテリジェントなシステムを設計できます。

Azure DatabricksとAzure HDInsightの違い

ところで、Azureのエンタープライズ向けの分散処理サービスにはAzure HDInsightもあります。分散処理で混同しやすいのですが違いを端的に述べてしまうと、Azure DatabricksがDatabricksとの連携であるのに対して、Azure HDInsightはApache Hadoopのディストリビューションであるということです。

したがって、Apache Hadoopのプラットフォームに慣れている場合は、Azure HDInsightと機械学習やストレージサービスを連携してシステムを構築する選択肢もあります。

非構造化データを扱う場合、Apache HadoopよりもApache Sparkを使うことが多い場合、チームのコラボレーションを重視している場合には、Azure Databricksを選択したほうがよいといえるでしょう。

Windows環境を含めてMicrosoftの全般にいえることですが、Azureでもさまざまな環境で利用できるように配慮され、同時に最先端の技術を積極的に取り入れています。分散処理という目的は同じでも、複数のフレームワークが用意されているような場合があります。機械学習のGUI環境でいえば、Azure Machine LearningとAzure Machine Learning Studio(classic)があり、混乱を避けるためにクラシックという名称が付けられています。

どのようなフレームワークを利用して開発するのか、目的は効率化なのか高速処理なのかという観点によって、サービスの選択もスペックも変わります。柔軟性が高いことがメリットですが、方法や目的を明確にすることが重要です。

Azure Databricksの価格設定

Azure Databricksの価格は、プロビジョニングによって異なります。仮想マシンとVMインスタンスの選択による従量課金制で、Databricksの処理能力の単位である「DBU」の1秒単位の使用量によって課金されます。どのようなインスタンスを使用するかによって変わるため、システムの設計にしたがって価格を確認する必要があります。

また、最大37%のコストを節約できるDBUの事前購入プランも用意されています。期間は1年間と3年間の2つがあり、Databricksの使用量によって割引率が異なります。

詳細は以下でご確認ください。

参考:

Azure Databricks の価格

https://azure.microsoft.com/ja-jp/pricing/details/databricks/

まとめ

機械学習やAIをシステムとして利用するためには、アルゴリズムやフレームワークの選択から、仮想マシンの仕様、ストレージの種類や容量、分散処理による高速化や信頼性の獲得のように、さまざまな観点から検討する必要があります。

Azure DatabricksはDatabricksとAzureという2つのサービスが統合され、機械学習からストレージなどAzureの豊富な機能と連携できます。エンタープライズレベルで統合された大規模な環境を構築する場合には、効果の期待できる選択肢のひとつです。

Microsoft Azure製品カタログ
Azure Databricksとは?Apacheのフレームワーク、Azure HDInsightとの違いも解説
Microsoft Azure製品カタログ 避けて通れぬマルチクラウド 活用を限られた人材でいかに 実現するか

RANKING人気資料ランキング

RECENT POST 最新記事

ブログ無料購読

RANKING人気記事ランキング

関連記事