ビッグデータ処理を迅速&容易にする「Azure Databricks」

3号にわたり、データ加工・分析処理の効率化を促進するソリューションを解説してきた。例えば、MLソリューション「Azure Machine Learning」では、数日かかる機械学習の処理を分散処理により数時間単位に短縮できると説明した。その一方で、Azure Machine Learningは機械学習以外のファイルの読み込みやデータ加工までは分散処理できない。こうした、大量データに基づく、ファイルの読み込み/書き込み、データの変換、機械学習などの全ての処理を包括的に分散処理できるのが「Azure Databricks」だ。データ分析における企業の傾向も踏まえつつ、松崎 剛氏がAzure Databricksの必要性を解説してくれた。

メモリーベースで高速処理

日本マイクロソフト
クラウドソリューションアーキテクト
松崎 剛 氏

 日本マイクロソフト クラウドソリューションアーキテクトの松崎 剛氏はAzure Databricksの特長を次のように解説する。

「分散処理フレームワーク『Apache Spark』のクラウドサービスであるAzure DatabricksはTB~PBクラス以上の大量のデータをクラスターの中で管理・実行できるアーキテクチャです。各ノード、仮想マシン(VM)ごとに分担してデータ加工や機械学習を行う仕組みにより、ビッグデータの処理を容易に実行できます。元々、Apache Sparkはオープンソースのフレームワークとして広く利用されていますが、このオープンソースのクリエイターたちが、クラウド上のマネージドのApache Sparkとして有償サービスであるDatabricksを立ち上げました。現在、Apache Sparkの多くのワークロードがこうしたマネージドサービス上で利用されています。このDatabricksは、三大パブリッククラウドのAWS、GCP、Azureの三つで動作しますが、Azureの場合、Azureの契約が済んでいれば追加契約不要で利用可能であり、世界中で広く使用されています」

 Apache Sparkが登場する前は、大量データの処理に分散処理フレームワーク「Hadoop」が使用され、ユーザー側に高度で専門的な知識が求められた。例えば、分散処理をするためのプログラミングモデル「MapReduce」をはじめビッグデータの処理の方法や理論が多く存在した。そのため、当時はまだ、ビッグデータに熟知した専門家以外のユーザーが扱いにくかったという。ビッグデータ処理技術における変遷を振り返りつつ、松崎氏は次のようにApache Sparkの特長を説明する。「クラスターの計算処理を実行する際にバッチで動作するHadoopに対し、メインメモリ(RAM)である『インメモリ』をフルに活用したのがApache Sparkです。リアルタイムにレスポンスを行うため使い勝手もよく、バッチ実行後に手動でログを確認しながら進めるような手間もなく、ノートブック(コード、実行結果、コードのメモなどをまとめたもの)でコードを書いて実行すればTBクラスのデータに対して、すぐに結果を見ながらスピーディーに開発できます。処理するデータ量の多い機械学習やデータ加工の際に最適なソリューションです」

TBクラスのジョブも高い生産性で開発可

 それでは、Azure Databricksの導入メリットはなんだろうか。オープンソースのApache Sparkと比較すれば、その差は歴然だ。

 一般にHadoopなどのクラスターは、管理と制御タスクを処理する「ヘッドノード」と小さなサブセットを保持し、複数サーバー上でコマンドを並行処理する「ワーカーノード」で構成している。通常は、必要なプログラムをヘッドノードで実行して、データを扱う実際のタスクをワーカーノードが担当する。しかし、このシステムではクラスターを削除したら、ヘッドノードに含まれるプログラムも含め成果物が消えてしまう。Azure Databricksでは、クラスターを削除してもノートブックを残せる「サーバーレスノートブック」の仕組みを採用している。作成したノートブックは、Azure Databricksの共通領域でクラスターとは別に管理される。また、処理の中で扱うファイルなどのデータも、「Azure Blob Storage」や「Azure Data Lake Storage」といったオブジェクトストレージに格納して処理するため、クラスターを削除してもデータはそのまま維持される。こうしたクラスターと成果物の分離は、CPUで構成されたクラスターとGPUで構成されたクラスターの2種類を用意して切り替えながら作業するなど、柔軟で生産性の高い作業を可能とする。

「UIも分かりやすく、処理の生産性を高められます。使い方を30分程度レクチャーすれば、10~100TBのデータを扱う機械学習のジョブをすぐに作れるようになるのです」と松崎氏は続ける。

変革意識とともに高度分析を

 高性能なAzure Databricksだが、実際の引き合いはどうなのか。松崎氏はAzure Databricksにおける国内外でのシェアを比較し、将来展望をこう語る。「正直なところ、日本と海外のIT先進国を比較した場合、まだ日本には少々消極的な面があるかもしれません。海外では、日常的な多くの業務でAIの導入が積極的に行われ、その結果、アクティビティやテレメトリーなどの大量のデータの収集と加工はさまざまな業種で必要とされています。このため、現在、Azure DatabricksはAzureの中でも成長著しいサービスの一つとなっています。日本でも多くの業務において、こうした業務変革の余地がまだ多く存在すると思っています。一方、日本でのAI・機械学習の導入には少々消極的な面があります。例えば、日本の強みである製造業の予知保全に機械学習、強化学習を活用して業務改善に役立てるような取り組みは、大企業では見られますが、中小企業ではまだ提案の余地があるでしょう。すでに日本でも多くの企業でAzure Databricksをお使いいただいていますが、まだまだ伸びしろがあると思っています」