Azure Databricks および Delta Lake を使用したインジェスト、ETL、ストリーム処理パイプライン

Azure Databricks
Azure Data Lake Storage
Azure IoT Hub
Azure Data Factory
Azure Event Hubs

ソリューションのアイデア

このアーティクルはソリューションのアイデアです。 このコンテンツにさらに多くの情報 (想定されるユース ケース、代替サービス、実装に関する考慮事項、価格ガイダンスなど) の掲載をご希望の方は、GitHub のフィードバックでお知らせください。

組織では、あらゆる形式、サイズ、スピードのデータを、一貫した方法でクラウドに取り込む必要があります。 この記事に示すソリューションでは、その必要を満たすため、データ ソースからデータ レイクに対する抽出、変換、読み込み (ETL) を行うアーキテクチャを使用します。 データ レイクには、変換された、およびキュレーションされたバージョンを含む、さまざまな規模のあらゆるデータを保持できます。 そのデータは、データ分析、ビジネス インテリジェンス (BI)、レポート、データ サイエンス、機械学習に活用できます。

Apache® および Apache Spark™ は、Apache Software Foundation の米国およびその他の国における登録商標です。 これらのマークを使用することが、Apache Software Foundation による保証を意味するものではありません。

アーキテクチャ

Diagram that shows the architecture and data flow for ETL and stream processing with Azure Databricks.

このアーキテクチャの Visio ファイルをダウンロードします。

データフロー

  1. データは次のように取り込まれます。

    • Event Hubs、IoT Hub、Kafka などのイベント キューからストリーミング データが Azure Databricks に送信されます。そこでは、最適化された Delta Engine を使用してデータが読み取られます。
    • スケジュールされた、またはトリガーされた Data Factory パイプラインによって、さまざまなデータ ソースから生の形式でデータがコピーされます。 データは到着次第、Azure Databricks 内の自動ローダーによって処理されます。
  2. Azure Databricks により、Data Lake Storage の Bronze レイヤーにある、最適化および圧縮された Delta Lake テーブルまたはフォルダーにデータが読み込まれます。

  3. ストリーミング、スケジュール、トリガーのいずれかの Azure Databricks ジョブにより、Data Lake Storage Bronze レイヤーから新しいトランザクションが読み取られます。 これらのジョブによって結合、クリーニング、変換、集約された後、データは、ACID トランザクションによって Data Lake Storage の Silver および Gold レイヤーのキュレーションされたデータ セットに読み込まれます。

  4. データ セットが Data Lake Storage の Delta Lake に保存されます。

一貫性を保つため、それぞれのサービスによってデータは共通の形式で取り込まれます。 このアーキテクチャでは、Delta Lake のオープンな形式に基づく、共有されたデータ レイクを使用します。 さまざまなバッチおよびストリーミング ソースから生データが取り込まれ、統一されたデータ プラットフォームが形成されます。 このプラットフォームは、分析、BI レポート、データ サイエンス、AI、機械学習などの下流のユース ケースで使用できます。

Bronze、Silver、Gold のストレージ レイヤー

メダルのパターンに従って Bronze、Silver、Gold で構成されるストレージ レイヤーにより、お客様は柔軟なアクセスや拡張可能なデータ処理を利用できます。

  • Bronze テーブルは、生データが Data Lake Storage に到達した時にエントリ ポイントとなります。 データは生のソース形式で取り込まれ、処理に備えてオープンなトランザクション用の Delta Lake 形式に変換されます。 このソリューションでは、以下を使用してデータを Bronze レイヤーに取り込みます:
    • Azure Databricks の Apache Spark API。 この API により、Event Hubs または IoT Hub からストリーミング イベントが読み取られ、これらのイベントまたは生ファイルが Delta Lake 形式に変換されます。
    • COPY INTO コマンド。 ソース ファイルまたはディレクトリからデータを直接 Delta Lake にコピーするには、このコマンドを使用します。
    • Azure Databricks の自動ローダー。 自動ローダーでは、データ レイクに到達するファイルを取得し、Delta Lake 形式で書き込みます。
    • Data Factory の Copy アクティビティ。 お客様は、このオプションを使用して、サポートされている任意の形式から Delta Lake 形式にデータを変換できます。
  • Silver テーブルでは、データが BI やデータ サイエンスのユース ケースに最適化されている間、データを保存します。 Bronze レイヤーで生データが取り込まれた後、さらに ETL およびストリーム処理のタスクが実行されてデータはフィルター処理、クリーニング、変換、結合、集約され、Silver のキュレーションされたデータセットに入れられます。 企業では、これらのタスクの最初のサービスとして Azure Databricks を使用する場合、オープン標準である Delta Engine などの一貫したコンピューティング エンジンを使用できます。 その後、SQL、Python、R、Scala などの使い慣れたプログラミング言語を使用できます。 企業は、繰り返し可能な DevOps プロセスや、個々のワークロードに適切なサイズの一時的なコンピューティング クラスターを使用することもできます。
  • Gold テーブルには、分析とレポートに利用できる、エンリッチメント処理されたデータが含まれています。 アナリストは、PySpark、Koalas、SQL、Power BI、Excel などの好みの方法を使用して、新しい分析情報を取得したり、クエリを作成したりできます。

Components

  • Event Hubs では、オンプレミスのシステムを含め、さまざまなソースに由来するストリーミング メッセージの解析とスコア付けによって、リアルタイムの情報が提供されます。
  • Data Factory では、すべてのデータをあらゆる規模でインジェスト、準備、変換するデータ パイプラインのオーケストレーションが行われます。
  • Data Lake Storage では、ストリーミングとバッチのデータがまとめられます。これには、ログ、ファイル、メディアなどの、構造化、非構造化、半構造化データが含まれます。
  • Azure Databricks では、構造化されていないデータ セットをクリーニングおよび変換し、運用データベースまたはデータ ウェアハウスの構造化データと組み合わせることができます。
  • IoT Hub では、IoT アプリケーションとデバイスとの間の、安全性と信頼性の高い通信を実現できます。
  • Data Lake Storage 上の Delta Lake では、信頼性確保のために ACID トランザクションがサポートされており、効率的なインジェスト、処理、クエリが行えるよう最適化されています。

シナリオの詳細

Azure Databricks を使用するインジェスト、ETL、ストリーム処理は、シンプルでオープンであり、コラボレーションが可能です。

  • シンプル: オープンソース形式のキュレーションされたレイヤーを持つオープンなデータ レイクにより、データ アーキテクチャが簡素化されます。 オープンソース ツールである Delta Lake によって、Azure Data Lake Storage データ レイクにアクセスできます。 Data Lake Storage 上の Delta Lake では、ACID (原子性、一貫性、分離性、持続性) トランザクションがサポートされており、信頼性が確保されています。 Delta Lake は、効率的なインジェスト、処理、クエリを行えるよう、最適化されています。
  • オープン: このソリューションでは、オープンソース コード、オープン標準、オープン フレームワークがサポートされています。 一般的な統合開発環境 (IDE)、ライブラリ、プログラミング言語にも対応しています。 ネイティブのコネクタと API により、このソリューションは他のさまざまなサービスとも連携できます。
  • コラボレーション: このソリューションでは、データ エンジニア、データ サイエンティスト、アナリストが連携します。 それぞれがコラボレーション用のノートブック、IDE、ダッシュボードなどのツールを使用して、基盤となる共通のデータにアクセスし、分析します。

Azure Databricks は、Data Lake Storage、Azure Data Factory、Azure Event Hubs、Azure IoT Hub などの他の Azure サービスとシームレスに統合されます。

考えられるユース ケース

このソリューションは、Providence Health Care によってリアルタイム分析のために構築されたシステムから着想を得ています。 バッチまたはストリーミング データの取り込みを行うどの業界でもこのソリューションをご検討いただけます。 たとえば、次のようになります。

  • 小売と e コマース
  • Finance
  • 医療とライフ サイエンス
  • エネルギー供給業者

次のステップ

  • Spanish Point Technologies では、Azure Databricks と Azure Data Factory を使用してマッチング エンジンを構築し、大規模にデータを取り込むことで、ミュージシャンが適正な支払いを受けられるようにしています。

ガイドと完全にデプロイ可能なアーキテクチャ: