Azure Data Explorer のデータ インジェスト概要

データ インジェストには、クラスター内のテーブルへのデータの読み込みが含まれます。 Azure Data Explorerは、データの有効性を確保し、必要に応じて形式を変換し、スキーマの照合、organization、インデックス作成、エンコード、圧縮などの操作を実行します。 取り込まれたデータは、クエリで使用できます。

Azure Data Explorer では、ストリーミングインジェストまたはキューインジェストを使用して、1 回限りのインジェストまたは継続的インジェスト パイプラインの確立を提供します。 どちらが適切かを判断するには、「 1 回限りデータ インジェスト 」と 「継続的なデータ インジェスト」を参照してください。

注意

データは、設定された アイテム保持ポリシーに従ってストレージに保持されます。

1 回限りデータ インジェスト

1 回限りのインジェストは、履歴データの転送、不足しているデータの入力、プロトタイプ作成とデータ分析の初期段階に役立ちます。 このアプローチにより、継続的なパイプライン コミットメントを必要とせずに、高速なデータ統合が容易になります。

1 回限りデータ インジェストを実行する方法は複数あります。 次のデシジョン ツリーを使用して、ユース ケースに最適なオプションを決定します。

1 回限りのインジェストの意思決定のためのフロー チャート。

詳細については、関連するドキュメントを参照してください。

コールアウト 関連ドキュメント
インジェストについては、Azure Data Explorer でサポートされているデータ形式に関するページを参照してください
Azure Data Factory パイプラインでサポートされているファイル形式を参照してください。
既存のストレージ システムからデータをインポートするには、「Azure Data Explorerに履歴データを取り込む方法」を参照してください。
Azure Data Explorer Web UI では、ローカル ファイルAmazon S3、または Azure Storage からデータを取得できます。
Azure Data Factoryと統合するには、「Azure Data Factoryを使用して Azure Data Explorerにデータをコピーする」を参照してください。
Kusto クライアント ライブラリ は、C#、Python、Java、JavaScript、TypeScript、Go で使用できます。 データを操作するコードを記述し、Kusto Ingest ライブラリを使用して Azure Data Explorer テーブルにデータを取り込むことができます。 データは、インジェストの前に サポートされている形式 のいずれかである必要があります。

継続的なデータ インジェスト

継続的なインジェストは、ライブ データからの即時の分析情報を要求する状況で優れています。 たとえば、継続的インジェストは、システム、ログおよびイベント データ、リアルタイム分析を監視する場合に役立ちます。

継続的なデータ インジェストには、ストリーミングインジェストまたはキューインジェストを使用してインジェスト パイプラインを設定する必要があります。

  • ストリーミング インジェスト: この方法により、テーブルあたりのデータ セットが少ない場合に、ほぼリアルタイムの待機時間が確保されます。 データはストリーミング ソースからマイクロ バッチで取り込まれた後、最初は行ストアに配置され、列ストアエクステントに転送されます。 詳細については、「 ストリーミング インジェストを構成する」を参照してください。

  • キューインジェスト: この方法は、高いインジェストスループットのために最適化されています。 データはインジェストプロパティに基づいてバッチ処理され、小さなバッチがマージされ、高速なクエリ結果のために最適化されます。 既定では、キューに入っている最大値は 5 分、1,000 アイテム、または合計サイズ 1 GB です。 キューに置かれたインジェスト コマンドのデータ サイズの制限は 6 GB です。 この方法では、再試行メカニズムを使用して一時的な障害を軽減し、"少なくとも 1 回" のメッセージング セマンティクスに従って、プロセスでメッセージが失われないようにします。 キューに入ったインジェストの詳細については、「 インジェスト バッチ処理ポリシー」を参照してください。

注意

ほとんどのシナリオでは、よりパフォーマンスの高いオプションであるため、キューインジェストを使用することをお勧めします。

継続的なデータ インジェストを構成するには、複数の方法があります。 次のデシジョン ツリーを使用して、ユース ケースに最適なオプションを決定します。

継続的インジェストのデシジョン ツリーの図。

詳細については、関連するドキュメントを参照してください。

コールアウト 関連ドキュメント
コネクタの一覧については、「コネクタの 概要」を参照してください。
Event Hubs データ接続を作成します。 Event Hubs との統合により、調整、再試行、監視、アラートなどのサービスが提供されます。
リアルタイム ストリーミング データ パイプラインを構築するための分散ストリーミング プラットフォームである Apache Kafka からデータを取り込みます。
IoT Hub データ接続を作成します。 IoT Hubs との統合により、調整、再試行、監視、アラートなどのサービスが提供されます。
Event Grid データ接続を作成します。 Event Grid との統合により、調整、再試行、監視、アラートなどのサービスが提供されます。
Apache Spark、Apache Kafka、Azure Cosmos DB、Fluent Bit、Logstash、Open Telemetry、Power Automate、Splunk など、関連するコネクタのガイダンスを参照してください。 詳細については、「 コネクタの概要」を参照してください。
Kusto クライアント ライブラリ は、C#、Python、Java、JavaScript、TypeScript、Go で使用できます。 データを操作するコードを記述し、Kusto Ingest ライブラリを使用して Azure Data Explorer テーブルにデータを取り込むことができます。 データは、インジェストの前に サポートされている形式 のいずれかである必要があります。

注意

ストリーミング インジェストは、すべてのインジェスト方法でサポートされているわけではありません。 サポートの詳細については、特定のインジェスト方法のドキュメントをチェックしてください。

管理コマンドを使用した直接インジェスト

Azure Data Explorerには、データ管理サービスを使用する代わりに、クラスターにデータを直接取り込む次のインジェスト管理コマンドが用意されています。 これらは、探索とプロトタイプ作成にのみ使用する必要があり、運用環境や大量のシナリオでは使用しないでください。

インジェスト方法を比較する

次の表は、メインインジェスト方法を比較したものです。

インジェスト名 データ型 ファイルの最大サイズ ストリーミング、キューに入れ、直接 最も一般的なシナリオ 考慮事項
Apache Spark コネクタ Spark 環境でサポートされているすべての形式 無制限 キューに登録済み 既存のパイプライン、インジェスト前の Spark での前処理、Spark 環境でサポートされるさまざまなソースからの安全な (Spark) ストリーミング パイプラインを迅速に作成する方法。 Spark クラスターのコストを考慮してください。 バッチ書き込みの場合は、Event Grid の Azure Data Explorer データ接続と比較します。 Spark ストリーミングの場合は、Event Hub のデータ接続と比較します。
Azure Data Factory (ADF) サポートされるデータ形式 無制限 ADF 制限を継承します。 キューに入ったトリガーまたは ADF トリガーごと Excel や XML など、サポートされていない形式をサポートし、90 を超えるソースからオンプレミスからクラウドに大きなファイルをコピーできます この方法では、データが取り込まれるまでに比較的時間がかかります。 ADF によるすべてのデータがメモリにアップロードされ、インジェストが開始されます。
Event Grid サポートされるデータ形式 非圧縮で 1 GB キューに登録済み Azure ストレージからの継続的なインジェスト、Azure ストレージ内の外部データ インジェストは、BLOB の名前変更または BLOB 作成アクションによってトリガーできます
イベント ハブ サポートされるデータ形式 該当なし キューに入れ、ストリーミング メッセージ、イベント
Get Data エクスペリエンス *SV、JSON 非圧縮で 1 GB キューまたは直接インジェスト 1 回限り、テーブル スキーマの作成、Event Grid による継続的インジェストの定義、コンテナーを使用した一括インジェスト (最大 5,000 の BLOB。履歴のインジェストを使用する場合は制限なし)
IoT Hub サポートされるデータ形式 該当なし キューに入れ、ストリーミング IoT メッセージ、IoT イベント、IoT プロパティ
Kafka コネクタ Avro、ApacheAvro、JSON、CSV、Parquet、ORC 無制限。 Java の制限を継承。 キューに入れ、ストリーミング 既存のパイプライン、ソースからの大量の使用量。 優先順位は、複数のプロデューサーまたはコンシューマー サービスの既存の使用、または必要なレベルのサービス管理によって決定できます。
Kusto クライアント ライブラリ サポートされるデータ形式 非圧縮で 1 GB キューに入れ、ストリーミング、直接 組織のニーズに合わせて独自のコードを作成する プログラムによるインジェストは、インジェスト プロセス中およびインジェスト プロセス後のストレージ トランザクションを最小限に抑えることで、インジェスト コスト (COG) を削減するために最適化されています。
LightIngest サポートされるデータ形式 非圧縮で 1 GB キューまたは直接インジェスト データ移行、調整されたインジェスト タイムスタンプを含む履歴データ、一括インジェスト 大文字と小文字を区別し、スペースを区別する
Logic Apps サポートされるデータ形式 非圧縮で 1 GB キューに登録済み パイプラインの自動化に使用される
LogStash JSON 無制限。 Java の制限を継承。 キューに登録済み 既存のパイプラインでは、Logstash の成熟したオープンソースの性質を使用して、入力からの大量消費を実現します。 優先順位は、複数のプロデューサーまたはコンシューマー サービスの既存の使用、または必要なレベルのサービス管理によって決定できます。
Power Automate サポートされるデータ形式 非圧縮で 1 GB キューに登録済み フローの一部としてのインジェスト コマンド。 パイプラインの自動化に使用される。

その他のコネクタの詳細については、「 コネクタの概要」を参照してください。

アクセス許可

次の一覧では、さまざまなインジェスト シナリオに必要なアクセス許可について説明します。

  • 新しいテーブルを作成するには、少なくともデータベース ユーザーのアクセス許可が必要です。
  • スキーマを変更せずに既存のテーブルにデータを取り込むには、少なくとも Database Ingestor のアクセス許可が必要です。
  • 既存のテーブルのスキーマを変更するには、少なくとも Table 管理 または Database 管理 権限が必要です。

詳細については、「 Kusto ロールベースのアクセス制御」を参照してください。

インジェスト プロセス

次の手順では、一般的なインジェスト プロセスの概要を示します。

  1. バッチ処理ポリシーの設定 (省略可能):データはインジェスト バッチ処理ポリシーに基づいてバッチ処理されます。 ガイダンスについては、「 スループットの最適化」を参照してください。

  2. 保持ポリシーを設定する (省略可能): データベースの保持ポリシーがニーズに適していない場合は、テーブル レベルでオーバーライドします。 詳細については、「Retention policy」 (アイテム保持ポリシー) を参照してください。

  3. テーブルの作成: データの取得エクスペリエンスを使用している場合は、インジェスト フローの一部としてテーブルを作成できます。 それ以外の場合は、Azure Data Explorer Web UI または .create table コマンドを使用して、取り込む前にテーブルを作成します。

  4. スキーマ マッピングの作成: スキーマ マッピングは、 ソース データ フィールドを変換先テーブル列にバインドするのに役立ちます。 CSV、JSON、AVRO などの行指向形式や Parquet などの列指向形式など、さまざまな種類のマッピングがサポートされています。 ほとんどのメソッドでは、 テーブルにマッピングを事前に作成することもできます。

  5. 更新ポリシーを設定する (省略可能): Parquet、JSON、Avro などの特定のデータ形式を使用すると、取り込み時間の簡単な変換が可能になります。 インジェスト中に複雑な処理を行う場合は、 更新ポリシーを使用します。 このポリシーは、元のテーブル内の取り込まれたデータに対して抽出と変換を自動的に実行し、変更されたデータを 1 つ以上の変換先テーブルに取り込みます。

  6. データの取り込み: 任意のインジェスト ツール、コネクタ、またはメソッドを使用してデータを取り込みます。