Azure Data Explorerに履歴データを取り込む方法

Azure Data Explorer にオンボードする場合の一般的なシナリオは、履歴データ (バックフィルとも呼ばれます) を取り込む場合です。 このプロセスでは、既存のストレージ システムからエクステントのコレクションであるテーブルにデータを取り込 みます

creationTime インジェスト プロパティを使用して履歴データを取り込み、エクステントの作成時間をデータが作成された時刻に設定することをお勧めします。 インジェストパーティション分割条件として作成時間を使用すると、 キャッシュ保持 ポリシーに従ってデータを期限切れにし、時間フィルターをより効率的にすることができます。

既定では、エクステントの作成時間はデータが取り込まれる時刻に設定されます。これにより、予期した動作が生成されない可能性があります。 たとえば、キャッシュ期間が 30 日で、保持期間が 2 年のテーブルがあるとします。 通常のフローでは、生成時に取り込まれたデータは 30 日間キャッシュされ、コールド ストレージに移動されます。 2 年後、作成時刻に基づいて、古いデータは一度に 1 日ずつ削除されます。 ただし、2 年間の履歴データを取り込む場合、既定では、データはデータの取り込み時刻として作成時刻としてマークされます。 次の理由により、望ましい結果が得られない可能性があります。

  • すべてのデータはキャッシュに入り、予想よりも多くのキャッシュを使用して 30 日間そこに残ります。
  • 古いデータは一度に 1 日ずつ削除されません。そのため、データは必要以上に長くクラスターに保持され、2 年後に一度にすべて削除されます。
  • ソース システムで以前に日付別にグループ化されたデータが、同じ範囲で バッチ処理され 、非効率的なクエリが発生する可能性があります。

既定の作成時刻を使用して履歴データを取り込む場合の予想される結果と実際の結果を示す図。

この記事では、履歴データをパーティション分割する方法について説明します。

  • インジェスト時の creationTime インジェスト プロパティの使用 (推奨)

    可能であれば、ingestion プロパティをcreationTime使用して履歴データを取り込みます。これにより、ファイルまたは BLOB パスからエクステントを抽出してエクステントの作成時間を設定できます。 フォルダー構造で作成日パターンが使用されない場合は、作成時刻を反映するようにファイルまたは BLOB パスを再構築することをお勧めします。 この方法を使用すると、データが正しい作成時間でテーブルに取り込まれるので、キャッシュと保持期間が正しく適用されます。

    注意

    既定では、エクステントは作成 (インジェスト) の時間でパーティション分割されます。ほとんどの場合、データ パーティション分割ポリシーを設定する必要はありません。

  • インジェスト後のパーティション分割ポリシーの使用

    インジェスト プロパティを creationTime 使用できない場合 (たとえば、作成時間を制御できない Azure Cosmos DB コネクタを使用してデータを取り込 む場合や、フォルダー構造を再構築できない場合は、インジェスト後にテーブルを再パーティション分割して 、パーティション分割ポリシーを使用して同じ効果を実現できます。 ただし、この方法では、ポリシー プロパティを最適化するために試行とエラーが必要になる場合があり、インジェスト プロパティを creationTime 使用するよりも効率が低くなります。 インジェスト プロパティを使用できない場合にのみ、 creationTime この方法をお勧めします。

前提条件

履歴データを取り込む

インジェスト時にインジェスト プロパティを使用して履歴データを creationTime パーティション分割することを強くお勧めします。 ただし、この方法を使用できない場合は、パーティション分割ポリシーを使用して、インジェスト後にテーブルを再パーティション分割できます。

LightIngest は、既存のストレージ システムから Azure Data Explorerに履歴データを読み込むのに役立ちます。 コマンド ライン引数の一覧を使用して独自のコマンドを作成できますが、この記事では、インジェスト ウィザードを使用してこのコマンドを自動生成する方法について説明します。 コマンドの作成だけでなく、このプロセスを使用して、新しいテーブルの作成およびスキーマ マッピングの作成も可能です。 このツールは、データセットからスキーマ マッピングを推論します。

到着地

  1. Azure Data Explorer Web UI で、左側のメニューから [クエリ] を選択します

  2. データを取り込むデータベースを右クリックし、[ LightIngest] を選択します。

    データベースの [その他] メニューが表示されている Azure Data Explorer Web UI のスクリーンショット。

    [ データの取り込み ] ウィンドウが開き、[ 宛先 ] タブが選択されています。 [クラスター][データベース] の各フィールドには、自動的に値が設定されます。

  3. ターゲット テーブルを選択します。 新しいテーブルにデータを取り込む場合は、[ 新しいテーブル] を選択し、テーブル名を入力します。

    注意

    テーブル名には、スペース、英数字、ハイフン、アンダースコアなど、最大 1024 文字を指定できます。 特殊文字はサポートされていません。

    コピー先のデータベースとテーブルを示す [変換先] タブのスクリーンショット。

  4. [Next: Source](次へ: ソース) を選択します。

source

  1. [ ソースの選択] で、[ URL の追加] または [コンテナーの選択] を選択します

    • URL を追加する場合は、[ リンク先] で、コンテナーへのアカウント キーまたは SAS URL を指定します。 SAS URL は 手動 または 自動で作成できます。

    • ストレージ アカウントからコンテナーを選択する場合は、ドロップダウン メニューから ストレージ サブスクリプションストレージ アカウントコンテナー を選択します。

      ストレージ サブスクリプションおよびアカウントからコンテナーを選択するためのダイアログ ボックスのスクリーンショット。

    注意

    インジェストでは、最大で 6 GB のファイル サイズがサポートされます。 100 MB から 1 GB の間のファイルを取り込むことをお勧めします。

  2. [ 詳細設定] を 選択して、LightIngest を使用してインジェスト プロセスの追加設定を定義します。

    ツール LightIngest を使ったインジェスト プロセスの詳細設定を選択する様子を示すスクリーンショット。

  3. [ 詳細な構成 ] ウィンドウで、次の表に従って LightIngest 設定を定義します。

    ツール LightIngest を含むインジェスト処理の追加設定を示す詳細構成ウィンドウのスクリーンショット。

    プロパティ 説明
    作成時刻パターン たとえば、コンテナーのフォルダー構造に基づいて日付を適用する場合など、作成されたエクステントのインジェスト時間プロパティをパターンでオーバーライドする場合に指定します。 「作成時刻のパターン」も参照してください。
    BLOB 名パターン 取り込まれたファイルを識別するために使用するパターンを指定します。 指定されたコンテナー内の blob 名のパターンに一致するすべてのファイルを取り込みます。 ワイルドカードがサポートされます。 二重引用符で囲むことをおすすめします。
    Tag 取り込まれたデータに割り当てられたタグ。 タグには、任意の文字列を使用できます。
    ファイルの量を制限する 取り込むことができるファイルの数を指定します。 指定された数を上限として、blob 名パターンに一致する最初の n 個のファイルを取り込みます。
    取り込みが完了するまで待機しない 設定すると、インジェスト処理を監視せずに、取り込み用の blob をキューに挿入します。 設定されていない場合は、LightIngest は、取り込みが完了するまでインジェストの状態のポーリングを続行します。
    選択した項目だけを表示する コンテナー内のファイルを一覧表示しますが、取り込みません。
  4. [ 完了] を選択 して[ ソース ] タブに戻ります。

    1. 必要に応じて、[ ファイル フィルター] を選択して、特定のフォルダー パスまたは特定のファイル拡張子を持つファイルのみを取り込むデータをフィルター処理します。

      [新しいデータの取り込み] 画面の [ソース] タブでデータをフィルター処理する様子を示すスクリーンショット。

      既定では、コンテナー内のいずれかのファイルがランダムに選択され、テーブルのスキーマを生成するために使用されます。

    2. 必要に応じて、[ スキーマ定義ファイル] で使用するファイルを指定できます。

  5. テーブル列の構成を表示および編集するには、 [Next: Schema](次へ: スキーマ) を選択します。

スキーマ

[スキーマ] タブには、データのプレビューが表示されます。

LightIngest コマンドを生成するには、[ 次へ: 取り込みの開始] を選択します。

省略可能:

  • ドロップダウン メニューから目的の形式を選択して、自動的に推論される データ 形式を変更します。
  • 自動的に推論される マッピング名を変更します。 英数字とアンダースコアを使用できます。 スペース、特殊文字、ハイフンはサポートされません。
  • 既存のテーブルを使用する場合、選択した形式とテーブル スキーマが一致する場合は、現在のテーブル スキーマを保持できます。
  • [ コマンド ビューアー] を選択して、入力から生成された自動コマンドを表示およびコピーします。
  • 列を編集します。 [ 部分データ プレビュー] で、列のドロップダウン メニューを選択して、テーブルのさまざまな側面を変更します。

テーブルに加えることができる変更は、次のパラメーターによって異なります。

  • テーブルの種類が新規かまたは既存か
  • マッピングの種類が新規かまたは既存か
テーブルの種類です。 マッピングの種類 使用可能な調整
新しいテーブル 新しいマッピング データ型の変更、列名の変更、列の削除、昇順で並べ替え、降順で並べ替え
既存のテーブル 新しいマッピング 新しい列 (その後データ型の変更、名前の変更、および更新が可能)
新しい列、昇順で並べ替え、降順で並べ替え
既存のマッピング 昇順で並べ替え、降順で並べ替え

注意

新しい列を追加するとき、または列を更新するときに、マッピング変換を変更できます。 詳細については、マッピング変換に関するページを参照してください。

取り込み

  1. テーブル、マッピング、LightIngest コマンドに緑色のチェックマークが付いたら、[生成されたコマンド] ボックスの右上にあるコピー アイコンを選択して、生成された LightIngest コマンドをコピーします。

    コマンドが生成された [Summary]\(概要\) タブのスクリーンショット。生成されたコマンド ボックスの上にあるコピー アイコンを使用して、コマンドをコピーできます。

    注意

    必要に応じて、[LightIngest のダウンロード] を選択して LightIngest ツールをダウンロードできます。

  2. インジェスト プロセスを完了するには、コピーしたコマンドを使用して LightIngest を実行 する必要があります。