Azure でのバッチ処理テクノロジの選択

ビッグ データ ソリューションでは、長時間実行されるバッチ ジョブを使用して、分析のためにデータのフィルター処理、集計、その他の準備を行うことがよくあります。 通常、このようなジョブには、スケーラブル ストレージ (HDFS、Azure Data Lake Store、Azure Storage など) からソース ファイルを読み取り、処理し、出力をスケーラブル ストレージの新しいファイルに書き込む作業が含まれます。

このようなバッチ処理エンジンの基本的な要件は、大量のデータを処理するために計算をスケールアウトすることです。 リアルタイム処理とは異なり、バッチ処理の場合、分単位から時間単位の待機時間 (データ インジェストから結果の計算までの時間) が生じることが予想されます。

バッチ処理向けのテクノロジの選択

Azure Synapse Analytics

Azure Synapse は、大規模なデータの分析を目的として設計された分散システムです。 超並列処理 (MPP) がサポートされているので、ハイパフォーマンス分析の実行に適しています。 大量のデータ (1 TB 超) があり、並列処理のメリットが得られる分析ワークロードを実行する場合に、Azure Synapse を検討します。

Azure Data Lake Analytics

Data Lake Analytics は、オンデマンド分析ジョブ サービスです。 Azure Data Lake Store に保存されている大きなデータ セットの分散処理用に最適化されています。

  • 言語:U-SQL (Python、R、および C# の拡張機能を含む)。
  • Azure Data Lake Store、Azure Storage Blob、Azure SQL Database、および Azure Synapse と統合されています。
  • 価格モデルはジョブごとです。

HDInsight

HDInsight はマネージド Hadoop サービスです。 これを使用して Azure で Hadoop クラスターをデプロイおよび管理します。 バッチ処理では、SparkHiveHive LLAPMapReduce を使用できます。

  • 言語:R、Python、Java、Scala、SQL
  • Active Directory による Kerberos 認証、Apache Ranger ベースのアクセスの制御
  • Hadoop クラスターの完全なコントロールが可能

Azure Databricks

Azure Databricks は、Apache Spark ベースの分析プラットフォームです。 "サービスとしての Spark" と考えることができます。これは、Azure プラットフォームで Spark を使用する最も簡単な方法です。

  • 言語:R、Python、Java、Scala、Spark SQL
  • 迅速なクラスターの開始、自動終了、自動スケーリング
  • Spark クラスターの自動管理
  • Azure Blob Storage、Azure Data Lake Storage (ADLS)、Azure Synapse、およびその他のサービスの組み込み統合。 データ ソースに関するセクションを参照してください。
  • Microsoft Entra ID を使用したユーザー認証。
  • Web ベースのノートブックによるコラボレーションとデータ探索
  • GPU 対応クラスターをサポート

主要な選択条件

選択肢を絞り込むために、まず次の質問に答えてください。

  • 独自のサーバーを管理するのではなく、管理されたサービスが必要ですか。

  • バッチ処理ロジックの作成は宣言型と命令型のどちらですか。

  • 大量にバッチ処理を実行しますか。 "はい" の場合は、クラスターを自動終了するオプションか、価格モデルがバッチ ジョブごとであるオプションを検討してください。

  • 参照データを検索するなど、バッチ処理と共にリレーショナル データ ストアに対してクエリを実行する必要はありますか。 "はい" の場合は、外部リレーショナル ストアのクエリ処理が可能なオプションを検討してください。

機能のマトリックス

次の表は、機能の主な相違点をまとめたものです。

一般的な機能

機能 Azure Data Lake Analytics Azure Synapse HDInsight Azure Databricks
マネージド サービスか はい はい はい 1 はい
リレーショナル データ ストア はい 有効 無効 はい
価格モデル バッチ ジョブごと クラスター時間単位 クラスター時間単位 Databricks の単位2 + クラスター時間

[1] 手動構成を使用します。

[2] Databricks の単位 (DBU) は、1 時間あたりの処理能力の単位です。

機能

機能 Azure Data Lake Analytics Azure Synapse Spark を使用する HDInsight Hive を使用する HDInsight Hive LLAP を使用する HDInsight Azure Databricks
自動スケール いいえ 番号 有効 イエス イエス はい
スケールアウトの細分性 ジョブごと クラスターごと クラスターごと クラスターごと クラスターごと クラスターごと
データのメモリ内キャッシュ いいえ 有効 有効 無効 有効 はい
外部リレーショナル ストアからのクエリ はい 無効 イエス No 番号 はい
認証 Microsoft Entra ID SQL / Microsoft Entra ID いいえ Microsoft Entra ID1 Microsoft Entra ID1 Microsoft Entra ID
監査 はい 有効 いいえ はい 1 はい 1 はい
行レベルのセキュリティ いいえ はい2 いいえ はい 1 はい 1 はい
ファイアウォールをサポート はい イエス はい はい 3 はい 3 はい
動的データ マスク いいえ イエス いいえ はい 1 はい 1 はい

[1] ドメイン参加済み HDInsight クラスターを使用する必要があります。

[2] フィルター述語のみ。 「行レベルのセキュリティ」をご覧ください

[3] Azure Virtual Network 内で使用する場合にサポートされます。

共同作成者

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

プリンシパル作成者:

次のステップ