次の方法で共有


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

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

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

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

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

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

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

  • インジェスト中に creationTime インジェスト プロパティを使用する (推奨)

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

    注記

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

  • インジェスト後は、パーティション分割のポリシーを採用する

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

前提条件

  • Microsoft アカウントまたはMicrosoft Entraユーザー ID。 Azure サブスクリプションは必要ありません。
  • Azure Data Explorer クラスターとデータベース。 クラスターとデータベースを作成します
  • ストレージ アカウント
  • インジェスト中にcreationTime インジェスト プロパティを使用する推奨される方法については、LightIngest インストールします。

履歴データを取り込む

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

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

宛先

  1. Azure Data Explorer Web UI で、左側のメニューから Query を選択します。

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

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

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

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

    注記

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

    [変換先]タブに示されたデータベースとテーブルのスクリーンショット。

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

ソース

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

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

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

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

    注記

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

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

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

  3. Advanced 構成 ペインで、次の表に従って LightIngest 設定を定義します。

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

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

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

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

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

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

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

スキーマ (データベースの構造や設計を定義するもの)

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

LightIngest コマンドを生成するには、 Next: Start Ingestion を選択します。

必要に応じて、次のことも行えます。

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

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

  • テーブルの種類が新規かまたは既存か
  • マッピングの種類が新規かまたは既存か
テーブルタイプ マッピングの種類 利用可能な調整
新しいテーブル 新しいマッピング データ型の変更、列名の変更、新しい列、列の削除、列の更新、昇順で並べ替え、降順で並べ替え
既存のテーブル 新しいマッピング 新しい列 (データ型の変更、名前の変更、更新が可能)
列を更新、昇順に並べ替え、降順に並べ替え
既存のマッピング 昇順で並べ替え、降順で並べ替え

注記

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

取り込み

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

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

    注記

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

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