HDInsight と Delta Lake を使用してイベント データを管理する

Azure HDInsight
Microsoft Entra ID
Azure Load Balancer
Azure ExpressRoute
Azure Virtual Network

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

この記事ではソリューションのアイデアについて説明します。 クラウド アーキテクトはこのガイダンスを使用すると、このアーキテクチャの一般的な実装の主要コンポーネントを視覚化しやすくなります。 ワークロードの特定の要件に適合する、適切に設計されたソリューションを設計するための出発点として、この記事を使用してください。

この記事では、1 秒あたり何百万件ものストリーミング イベントを取り込んで処理し、そのイベントを Delta Lake テーブルに書き込むために使用できるソリューションについて説明します。 このソリューションでは、Azure HDInsight で Apache Spark および Apache Kafka を使用します。

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

Delta Lake プロジェクトは、米国およびその他の国における Linux Foundation の登録商標です。

Architecture

ストリーミング データを取り込んで処理するためのアーキテクチャが示された図。

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

Jupyter Notebook のロゴは、該当する各社の商標です。 このマークを使用することは、保証を意味するものではありません。

データフロー

上に示したアーキテクチャは、次のデータフローに対応しています。

  1. IoT イベント データなどのリアルタイム イベント データが、 Apache Kafka プロデューサーを介して Apache Kafka に取り込まれます。

  2. Apache Spark Structured Streaming が、凖リアルタイムでデータを処理します。

  3. 変換および計算された分析を書き込むためのシンクを Apache Spark が提供します。 処理されたデータが、 Delta Lake テーブル形式Azure Data Lake Storage アカウント に保存されます。

  4. 処理されたデータは、Apache Kafka に継続的に取り込まれます。

  5. Azure Data Lake Storage アカウント内のデータは、以下の用途の分析情報を提供できます。

    • Power BI の凖リアルタイム ダッシュボードに使用する。
    • Azure Machine Learning の機械学習ツールで使用する。
    • Jupyter Notebook で、PySpark または Scala により Delta Lake テーブルを使用する。

コンポーネント

  • HDInsight には、エンタープライズ分析用の オープンソース コンポーネント が用意されています。 これらの Apache コンポーネントは、 エンタープライズ レベルのセキュリティを備えた Azure 環境で実行できます。 HDInsight には、スケーラビリティ、セキュリティ、一元化された監視、グローバルな可用性、拡張性など、 他の利点 もあります。

  • Apache Kafka in HDInsight は、リアルタイム ストリーミング データ パイプラインとアプリケーションの構築に使用できるマネージド オープンソース分散プラットフォームです。 Apache Kafka では高いパフォーマンスと耐久性が提供されるため、レコードをトピック、パーティション、コンシューマー グループに分類し、プロデューサーからコンシューマーへのイベント ストリームを多重化できます。

  • Apache Spark in HDInsight は、クラウドでの Apache Spark の Microsoft によるマネージド実装であり、Azure で提供される Spark オファリングの 1 つです。

  • Apache Spark Structured Streaming は、1 回限りのフォールト トレランスを提供するスケーラブルなストリーム処理エンジンです。 これは Spark SQL エンジン上に構築されています。 構造化ストリーミング クエリは凖リアルタイムであり、低遅延です。 Apache Spark Structured Streaming には、データ ソースとデータ シンク用に複数のコネクタが用意されています。 さまざまな種類のソースからの複数のストリームを結合することもできます。

  • Apache Spark Structured Streaming in Apache Kafka は、クエリをバッチ処理してストリーミングし、ストレージ レイヤー、データベース、または Apache Kafka に保存するために使用されます。

  • Delta Lake ストレージ レイヤーは、Azure Storage などのクラウド ストレージに保存されているデータにトランザクション ストレージ レイヤーを追加することで、データ レイクの信頼性を提供します。 このストレージ レイヤーは、ファイルベースのトランザクション ログを使用して Apache Parquet データ ファイルを拡張します。 データを Delta Lake テーブル形式で保存することにより、原子性 (Atomicity)、一貫性 (Consistency)、独立性 (Isolation)、永続性 (Durability) という特性を持つ ACID トランザクション、スキーマの進化、履歴バージョンなどの利点を活用できます。

  • Power BIから Delta Lake テーブル データを読み取るには、 Power BI Delta Lake テーブル コネクタ を使用します。

  • Machine Learning は、収集した データを送信 して機械学習モデルに使用できる Azure サービスです。

シナリオの詳細

イベント ストリーミングとは、イベントのパブリッシャーからサブスクライバーに途絶えることなく流れる、不変イベントのシーケンスです。 ビジネス ユース ケースによっては、これらのイベントを未加工形式で保存し、さまざまな分析ニーズに合わせてイベントのクリーンアップ、変換、集計を行う必要があります。 イベント ストリーミングを使用すると、イベントの処理と分析を凖リアルタイムで実行し、分析情報を即時に生成できます。

考えられるユース ケース

ビジネスでこのソリューションを使用すると、1 回限りのフォールト トレラントな不変イベント ストリームを凖リアルタイムで処理できます。 このアプローチでは、Apache Kafka を Spark Structured Streaming の入力ソースとして使用し、Delta Lake をストレージ レイヤーとして使用します。

次のようなビジネス シナリオが考えられます。

  • アカウント サインイン時の不正行為の検出
  • 現在の市況の分析
  • 株式市場のリアルタイム データの分析
  • クレジット カード詐欺の検出
  • デジタル画像と動画の処理
  • 薬品に関する調査と発見
  • エンタープライズ ビッグ データ ソリューション向けミドルウェア
  • 空売りリスクの計算
  • スマート マニュファクチャリングと産業用 IoT (IIoT)

このソリューションは次のような業界に適用できます。

  • 農業
  • コンシューマー パッケージ商品 (CPG)
  • サイバー セキュリティ
  • ファイナンス
  • 医療
  • 保険
  • 物流
  • 製造
  • 小売

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパルの作成者:

  • Arun Sethia | プリンシパル プログラム マネージャー
  • Sairam Yeturi | プリンシパル プロダクト マネージャー

パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。

次のステップ