Azure Data Explorer に履歴データを取り込む方法
Azure Data Explorer にオンボードする場合の一般的なシナリオは、履歴データ (バックフィルとも呼ばれます) を取り込む場合です。 このプロセスには、既存のストレージ システムからテーブルへのデータの取り込み ( 拡張のコレクション) が含まれます。
creationTime インジェスト プロパティを使用して履歴データを取り込みエクステントの作成時間をデータの作成に設定することをお勧めします。 インジェストのパーティション分割条件として作成時間を使用すると、 cache と retention ポリシーに従ってデータが期限切れになり、時間フィルターがより効率的になります。
既定では、エクステントの作成時間はデータが取り込まれる時刻に設定され、予期した動作が生成されない可能性があります。 たとえば、キャッシュ期間が 30 日で、リテンション期間が 2 年のテーブルがあるとします。 通常のフローでは、生成時に取り込まれたデータは 30 日間キャッシュされ、コールド ストレージに移動されます。 2 年後、作成時間に基づいて、古いデータは一度に 1 日ずつ削除されます。 ただし、2 年間の履歴データを取り込む場合、既定では、データは、データが取り込まれる時刻として作成時間でマークされます。 これにより、次の理由で目的の結果が得られない可能性があります。
- すべてのデータはキャッシュに格納され、予想よりも多くのキャッシュを使用して 30 日間そこにとどまります。
- 古いデータは一度に 1 日ずつ削除されません。そのため、データは必要以上に長くクラスターに保持され、2 年後にすべて一度に削除されます。
- ソース システムの日付別にグループ化されたデータは、同じ範囲で非効率的なクエリにつながる一緒に格納される可能性があります。
この記事では、履歴データをパーティション分割する方法について説明します。
インジェスト中に
creationTime
インジェスト プロパティを使用する (推奨)可能な場合は、
creationTime
インジェスト プロパティを使用して履歴データを取り込みます。これにより、ファイルまたは BLOB パスからエクステントを抽出してエクステントの作成時間を設定できます。 フォルダー構造で作成日パターンが使用されていない場合は、作成時刻を反映するようにファイルまたは BLOB パスを再構築することをお勧めします。 この方法を使用すると、正しい作成時間でデータがテーブルに取り込まれるので、キャッシュと保持期間が正しく適用されます。Note
既定では、エクステントは作成 (インジェスト) の時間でパーティション分割されます。ほとんどの場合、データ パーティション分割ポリシーを設定する必要はありません。
インジェスト後のパーティション分割ポリシーの使用
creationTime
インジェスト プロパティを使用できない場合 (たとえば、Azure Cosmos DB コネクタを使用してデータをしている場合作成時間を制御できない場合や、フォルダー構造を再構築できない場合は、インジェスト後にテーブルを再パーティション分割して、パーティション分割ポリシーを使用して同じ効果を実現できます。 ただし、このメソッドでは、ポリシー プロパティを最適化するために試行とエラーが必要になる場合があり、creationTime
インジェスト プロパティを使用する場合よりも効率が低くなります。creationTime
インジェスト プロパティを使用できない場合にのみ、この方法をお勧めします。
前提条件
- Microsoft アカウントまたは Microsoft Entra ユーザー ID。 Azure サブスクリプションは不要です。
- Azure Data Explorer クラスターとデータベース。 クラスターとデータベースを作成します。
- ストレージ アカウント。
- インジェスト中に
creationTime
インジェスト プロパティを使用する推奨される方法については、LightIngest インストールします。
履歴データを取り込む
インジェスト中に、 creationTime
インジェスト プロパティを使用して履歴データをパーティション分割することを強くお勧めします。 ただし、この方法を使用できない場合は、パーティション分割ポリシーを使用して、インジェスト後にテーブルを再パーティション分割できます。
LightIngest は、既存のストレージ システムから Azure Data Explorer に履歴データを読み込むのに役立ちます。 Command-line 引数の一覧を使用して独自のコマンドを作成できますがこの記事では、インジェスト ウィザードを使用してこのコマンドを自動生成する方法について説明します。 コマンドの作成だけでなく、このプロセスを使用して、新しいテーブルの作成およびスキーマ マッピングの作成も可能です。 このツールは、データセットからスキーマ マッピングを推論します。
宛先
Azure Data Explorer Web UI で、左側のメニューから Query を選択します。
データを取り込むデータベースを右クリックし、 LightIngestを選択します。
Ingest data ウィンドウが開き、[Destination] タブが選択されています。 [クラスター] と [データベース] の各フィールドには、自動的に値が設定されます。
ターゲット テーブルを選択します。 新しいテーブルにデータを取り込む場合は、 [新しいテーブル] を選択し、テーブル名を入力します。
Note
テーブル名には、スペース、英数字、ハイフン、アンダースコアを含め、最大 1024 文字を使用できます。 特殊文字はサポートされていません。
[Next: Source](次へ: ソース) を選択します。
ソース
[ソースの選択で URL の追加またはコンテナーの選択を選択。
URL を追加する場合は、 ソースへのリンクで、コンテナーへのアカウント キーまたは SAS URL を指定します。 SAS URL 手動 または 自動で作成できます。
ストレージ アカウントからコンテナーを選択する場合は、ドロップダウン メニューから Storage サブスクリプション、 Storage アカウント、 Container を選択します。
Note
インジェストでは、最大で 6 GB のファイル サイズがサポートされます。 100 MB から 1 GB の間のファイルを取り込むことをお勧めします。
[ Advanced 設定 を選択して、LightIngest を使用してインジェスト プロセスの追加設定を定義します。
Advanced 構成 ペインで、次の表に従って LightIngest 設定を定義します。
プロパティ 説明 作成時間パターン たとえば、コンテナーのフォルダー構造に基づいて日付を適用する場合など、作成されたエクステントのインジェスト時間プロパティをパターンでオーバーライドする場合に指定します。 「作成時刻のパターン」も参照してください。 BLOB 名パターン 取り込まれたファイルを識別するために使用するパターンを指定します。 指定されたコンテナー内の blob 名のパターンに一致するすべてのファイルを取り込みます。 ワイルドカードがサポートされます。 二重引用符で囲むのをお勧めします。 Tag 取り込まれたデータに割り当てられたタグ。 タグには、任意の文字列を使用できます。 ファイルの量を制限する 取り込むことができるファイルの数を指定します。 指定された数を上限として、blob 名パターンに一致する最初の n
個のファイルを取り込みます。インジェストが完了するまで待たない 設定すると、インジェスト処理を監視せずに、取り込み用の blob をキューに挿入します。 設定されていない場合は、LightIngest は、取り込みが完了するまでインジェストの状態のポーリングを続行します。 選択した項目のみを表示する コンテナー内のファイルを一覧表示しますが、取り込みません。 [ソース]タブに戻ソースを選択します。
必要に応じて、 [ファイル フィルター] を選択して、特定のフォルダー パスまたは特定のファイル拡張子を持つファイルのみを取り込むためにデータをフィルター処理します。
既定では、コンテナー内のいずれかのファイルがランダムに選択され、テーブルのスキーマを生成するために使用されます。
必要に応じて、 Schema 定義ファイルで、使用するファイルを指定できます。
テーブル列の構成を表示および編集するには、[Next: Schema]\(次へ: スキーマ\) を選択します。
[スキーマ]
[スキーマ] タブには、データのプレビューが表示されます。
LightIngest コマンドを生成するには、 Next: Start Ingestion を選択します。
必要に応じて、次の操作を行います。
- ドロップダウン メニューから目的の形式を選択して自動的に推論されるData 形式を変更します。
- 自動的に推論される マップ名を変更します。 英数字とアンダースコアを使用できます。 スペース、特殊文字、ハイフンはサポートされません。
- 既存のテーブルを使用する場合、選択した形式とテーブル スキーマが一致する場合は、現在のテーブル スキーマを保持できます。
- [コマンド ビューアー] を選択し、入力から生成される自動コマンドを表示してコピーします。
- 列を編集します。 Partial データ プレビューで、列のドロップダウン メニューを選択して、テーブルのさまざまな側面を変更します。
テーブルに加えることができる変更は、次のパラメーターによって異なります。
- テーブルの種類が新規かまたは既存か
- マッピングの種類が新規かまたは既存か
テーブルの種類です。 | マッピングの種類 | 使用可能な調整 |
---|---|---|
新しいテーブル | 新しいマッピング | データ型の変更、列名の変更、列の削除、昇順で並べ替え、降順で並べ替え |
既存のテーブル | 新しいマッピング | 新しい列 (データ型の変更、名前の変更、更新が可能) 新しい列、昇順で並べ替え、降順で並べ替え |
既存のマッピング | 昇順で並べ替え、降順で並べ替え |
注意
新しい列を追加するとき、または列を更新するときに、マッピング変換を変更できます。 詳細については、マッピング変換に関するページを参照してください。
取り込み
テーブル、マッピング、LightIngest コマンドに緑色のチェック マークが付いたら、Generated コマンド ボックスの右上にある copy アイコンを選択して、生成された LightIngest コマンドをコピーします。
Note
必要に応じて、LightIngest ツールをダウンロード ダウンロードを選択します。
インジェスト プロセスを完了するには、コピーしたコマンドを使用して LightIngest を実行する必要があります。