Kusto Ingest ライブラリのベスト プラクティス
この記事では、 Kusto Ingest ライブラリを使用したデータ インジェストのベスト プラクティスについて説明します。
直接インジェストよりもキューに入れられます
運用環境のシナリオでは、キューに登録された取り込みクライアントを使用します。 詳細については、「 キューに登録されたインジェスト 」と「 ダイレクト インジェスト」を参照してください。
単一の取り込みクライアント インスタンスを使用する
Kusto Ingest クライアントの実装は、スレッド セーフで再利用可能です。 ターゲット クラスターごとに、プロセスごとにキューに入れたクライアントまたは直接取り込みクライアントの 1 つのインスタンスを使用します。 複数のインスタンスを実行すると、クラスターが過負荷になり、有効な要求に応答しなくなるか、応答が遅くなる可能性があります。
追跡操作の状態を制限する
大量のデータ ストリームの場合は、インジェスト要求に対する肯定的な通知の使用を制限します。 過剰な追跡により、インジェストの待機時間が長くなり、クラスターの応答性が低下する可能性があります。 詳細については、「操作の 状態」を参照してください。
スループットを最適化する
インジェスト パイプラインを計画するときは、インジェストのスループットに大きな影響を与える可能性があるため、次の要因を考慮してください。
要素 | 説明 |
---|---|
データ サイズ | インジェストは、大きなチャンクで行う場合の方が効率的です。 100 MB から 1 GB (非圧縮) のバッチでデータを送信することをお勧めします。 |
データ形式 | CSV は最も高速なインジェスト形式です。 同じ量のデータの場合、JSON には 2 倍または 3 倍の時間がかかる場合があります。 詳細については、「 インジェストでサポートされているデータ形式」を参照してください。 |
テーブル幅 | 重要なデータのみを取り込む。 各列をエンコードしてインデックスを作成する必要があります。つまり、より広いテーブルのスループットが低くなる可能性があります。 インジェスト マッピングを提供して、取り込むフィールドを制御します。 |
ソース データの場所 | インジェストを高速化するため、リージョンをまたがる読み取りは避けてください。 |
クラスターでの負荷 | クラスターのクエリ負荷が高い場合、インジェストの完了に時間がかかります。 |
注意
キューに登録された取り込みクライアントは、大きなデータ セットをチャンクに分割して集計します。これは、インジェストの前にデータをバッチ処理できない場合に便利です。
コストを最適化する
Kusto クライアント ライブラリを使用してクラスターにデータを取り込む方法は、引き続き最も安価で最も堅牢なオプションです。 コストを最適化し、BLOB トランザクションのコスト効率を大幅に高める Azure Storage の価格を利用するために、インジェスト方法を確認することをお勧めします。
コスト効率の高いインジェストの場合:
- ファイル、BLOB、ストリームなど、取り込まれたデータ チャンクの数を制限します。
- 最大 1 GB の非圧縮データの大きなチャンクを取り込む。
- バッチ処理を選択します。
- 余分なストレージ トランザクションを回避するために、正確で圧縮されていないデータ サイズを指定します。
- を に
true
設定FlushImmediately
しないでください。 - タグまたは
drop-by
エクステント タグを使用して少量のデータをingest-by
送信しないようにします。
注意
最後の 2 つの方法を過剰に使用すると、データ集計が中断され、余分なストレージ トランザクションが発生し、インジェストとクエリのパフォーマンスが低下する可能性があります。
関連コンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示