Azure Databricks の技術概要
執筆者: Microsoft Azure
このポストは、11 月 15 日に投稿された A technical overview of Azure Databricks の翻訳です。
今回の記事は、データベース システム上級エンジニアの Peter Carlin、および Databricks の共同設立者兼最高技術者の Matei Zaharia 氏と共同で執筆しました。
このたび、Microsoft Connect(); (英語) にて、Apache Spark 分析プラットフォームと Azure クラウドの力を最大限に活用できる、Azure Databricks サービスのプレビューが発表されました。Databricks との緊密なパートナーシップで実現した Azure Databricks は、他のクラウド プラットフォームにはない独自のメリットを提供します。今回の記事では、データ サイエンティスト、データ エンジニア、ビジネス意思決定者が、Azure と Databricks の能力を最大限に活用するための、さまざまなテクノロジや新機能をご紹介します。
[embed]https://sec.ch9.ms/ch9/fbaa/12e01856-8be7-46f6-8eb7-44085714fbaa/CONN17T257_high.mp4[/embed]
Apache Spark + Databricks + エンタープライズ クラウド = Azure Databricks
クラウドで大規模にデータを管理できるようになると、予測分析、AI、リアルタイム アプリケーションへの活用の可能性が広がります。Apache Spark は、このような用途のアプリケーションを構築するためのプラットフォームとして、過去 5 年間選ばれ続けています。Spark の大規模なコミュニティには、世界中の多くの企業が参加しており、強力な分析アルゴリズムの大規模な実行や、リアルタイムでのビジネス情報の活用を実現しています。しかし、大規模な環境での管理やデプロイは簡単ではなく、多くのユーザーを抱え、セキュリティ要件が厳格な企業においては特に複雑になります。
このような課題を解決できるのが Databricks です。Spark プロジェクトの立ち上げチームが 2013 年に設立した Databricks は、クラウド環境に最適化されたエンドツーエンドのマネージド Apache Spark プラットフォームを提供し、1 クリック デプロイ、自動スケール、Spark ジョブのパフォーマンスを 10 ~ 100 倍向上させる Databricks Runtime の最適化など、大規模な Spark ワークロードの簡素化と効率化を行っています。さらに、インタラクティブなノートブック環境、監視ツール、セキュリティ制御も充実しており、ユーザー数が数千人を超える規模の企業でも Spark を簡単に利用できるようにしています。
Databricks とマイクロソフトの協力により、Databricks プラットフォームは Azure サービスに緊密に統合され、Azure Databricks としてさらに進化しました。Azure Databricks には、最高速度でデータにアクセスできるように最適化されたストレージ プラットフォーム (Data Lake および Blob Storage) 用コネクタと、Azure コンソールでの 1 クリック管理機能が備わっています。Apache Spark プラットフォームのプロバイダーがクラウド プロバイダーと緊密に提携して、データ分析ワークロードを根本から最適化するという取り組みは、今回が初めてです。
データ エンジニアおよびデータ サイエンティストのメリット
データ サイエンティストやデータ エンジニアは、Azure Databricks を使用することで、さまざまなメリットを得られます。
最適化された環境
Azure Databricks は、クラウドでのパフォーマンスとコスト効率に完全に最適化されています。Databricks Runtime には、Azure で Apache Spark ワークロードを 10 ~ 100 倍速く実行するため、次のような機能が追加されています。
1. 各チームと共同で、Azure Blob Storage や Azure Data Lake などのストレージ サービス用の高速コネクタが開発されました。
2. Spark クラスターの自動スケールと自動終了により、コストを自動的に最小化します。
3. キャッシュ、インデックス、高度なクエリ最適化などのパフォーマンス最適化により、従来のクラウド環境やオンプレミス環境にデプロイされた Apache Spark の 10 ~ 100 倍のパフォーマンスを実現します。
シームレスな共同作業
ドキュメントの共同編集が可能になったことで、従業員の生産性は飛躍的に向上しました。これをデータ エンジニアリングやデータ サイエンスにも応用できないか、という思いから実現したのが Azure Databricks です。Databricks のノートブックはリアルタイムでの共同作業が可能で、企業のすべてのユーザーがデータを利用することができます。ダッシュボードでは、ビジネス ユーザーが既存のジョブを新しいパラメーターで呼び出すことができます。また、Databricks は PowerBI と緊密に統合されているため、インタラクティブな視覚化にも対応しています。これらの機能はすべて、Azure データベースをはじめ、高度な同時アクセス、高速なパフォーマンス、geo レプリケーションを可能にするさまざまな Azure テクノロジが基盤となっています。
使いやすさ
Azure Databricks で共通データ ソースへの接続、機械学習アルゴリズムの実行、Apache Spark 基礎の学習などを行う場合には、インタラクティブなノートブックを使用すると便利です。デバッグ環境も統合されているため、インタラクティブなノートブック内で Spark ジョブの進行状況を分析したり、強力なツールを使用して過去のジョブを分析したりすることもできます。さらに、プレインストールされている Python や R のデータ サイエンス スタックなどの一般的な分析ライブラリを Spark で使用して、インサイトを引き出すこともできます。Azure Databricks ではビッグ データをこれまでの 10 倍も簡単に活用できるようになりましたが、マイクロソフトは、今後も Apache Spark の哲学に従って、統合型のエンドツーエンド プラットフォームの提供に取り組んでまいります。
Azure Databricks のアーキテクチャ
次に、Azure Databricks のアーキテクチャをご紹介します。簡単に説明すると、Azure ユーザーのサブスクリプションごとにサービスがワーカー ノードを起動および管理するというもので、お客様は自身のアカウントの既存の管理ツールを使用することができます。
具体的には、お客様が Databricks でクラスターを起動すると、サブスクリプション内に「Databricks アプライアンス」が Azure リソースとしてデプロイされます。使用する VM の種類と数をお客様が指定する必要がありますが、その他の管理はすべて Databricks が行います。このほかにも、管理されているリソース グループがお客様のサブスクリプションにデプロイされ、VNET、セキュリティ グループ、ストレージ アカウントを使用できるようになります。これは、Azure では一般的なしくみです。サービスの準備が完了したら、Azure Databricks の UI や自動スケールなどの機能を使用して、Databricks を管理できます。スケジュールされたジョブなどのメタデータはすべて、フォールト トレランスのために geo レプリケーションされた Azure データベースに保存されます。
この設計には 2 つのポイントがあります。1 つは Blob Storage サブスクリプションや Data Lake など、アカウント内のあらゆる既存のストレージ リソースに Azure Databricks を簡単に接続できる点で、もう 1 つは追加のセットアップなしで Azure 管理センターで一元的に管理できるという点です。
Azure との包括的な統合
プラットフォームの機能を最大限に提供するため、Azure Databricks はすべての Azure プラットフォーム機能と緊密に統合されています。その中のいくつかの機能をご紹介します。
· 幅広い VM の種類に対応: 機械学習向けの F シリーズ、メモリ負荷の高い用途に適した M シリーズ、汎用的な D シリーズなど、すべての VM シリーズを使用できます。
· セキュリティとプライバシー: Azure では、データの所有権と制御権はお客様が有すると定められており、Azure Databricks はこれに準拠するように構築されています。マイクロソフトでは、Azure が取得したすべての認定に Azure Databricks を適用させることを目指しています。
· ネットワーク トポロジの柔軟性: ネットワーク インフラストラクチャに対するニーズはさまざまです。Azure Databricks は VNET へのデプロイをサポートしており、各ソースやシンクにアクセスするユーザーやアクセス方法を制御できます。
· Azure Storage および Azure Data Lake の統合: これらのストレージ サービスは DBFS を通じてユーザーに提供され、キャッシュや既存のデータの最適化分析を利用できます。
· Azure Power BI: JDBC を使用して Power BI を直接 Databricks クラスターに接続し、使い慣れたツールでインタラクティブなデータ クエリを大規模に実行できます。
· Azure Active Directory: 多くの企業でリソースへのアクセス制御に使用されています。Azure Databricks のワークスペースはお客様のサブスクリプションにデプロイされるため、ソース、結果、ジョブなどへのアクセスを制御することができます。
· Azure SQL Data Warehouse、Azure SQL DB、Azure CosmosDB: Azure Databricks では、これらのサービスに簡単かつ効率的に結果をアップロードして詳細分析やリアルタイム配信を行うことができるため、エンドツーエンドのデータ アーキテクチャの構築も簡単です。
マイクロソフトは上記のような機能統合のほかに、内部的な統合に関しても積極的に取り組んでいます。
· Azure Databricks の制御プレーンとデータ プレーンは、Azure Container Services を使用してコンテナーで実行されています。
· Accelerated Networking により、クラウドで最高速の仮想ネットワーク インフラストラクチャが実現されており、Azure Databricks での Spark のパフォーマンス向上に活用されています。
· NvMe SSD を搭載した最新の Azure ハードウェア (Dv3 VM) により、100 マイクロ秒の IO レイテンシを実現しました。これにより Databricks の I/O パフォーマンスがさらに向上します。
この取り組みは、まだ始まったばかりです。サービスの一般提供や今後の発展に向けて、新しい Azure サービスとの統合を進めてまいります。
まとめ
マイクロソフトは、パートナー様と共に Azure Databricks を提供できることを嬉しく思っています。Azure のストレージとネットワークのインフラストラクチャから Databricks の Apache Spark 用ランタイムに至るまで、大手クラウド プロバイダーと大手分析システム プロバイダーが提携した、大規模なクラウド分析プラットフォームの最適化はほかに類を見ません。Azure Databricks により、エンタープライズ クラスの運用データ アプリケーションの構築を大幅に簡素化することができます。この機会にサービスをご利用のうえ、ぜひフィードバックをお寄せください。