データ ウェアハウスのテーブルを読み込む
基本レベルでは通常、新しいデータをデータ レイク内のファイルからデータ ウェアハウス内のテーブルに追加することで、データ ウェアハウスの読み込みが行われます。 このタスクを効率的に実行する方法には、COPY
ステートメントがあります。次に例を示します。
COPY INTO dbo.StageProducts
(ProductID, ProductName, ProductCategory, Color, Size, ListPrice, Discontinued)
FROM 'https://mydatalake.blob.core.windows.net/data/stagedfiles/products/*.parquet'
WITH
(
FILE_TYPE = 'PARQUET',
MAXERRORS = 0,
IDENTITY_INSERT = 'OFF'
);
データ ウェアハウスの読み込みプロセスの設計に関する考慮事項
データ ウェアハウスを読み込む最も一般的なパターンの 1 つは、ソース システムからデータ レイク内のファイルにデータを転送し、ファイルのデータをステージング テーブルに取り込んだ後、SQL ステートメントを使ってステージング テーブルからディメンション テーブルとファクト テーブルにデータを読み込む方法です。 通常、データの読み込みは、データ ウェアハウスへの挿入と更新が一定の間隔 (毎日、毎週、毎月など) で行われる定期的なバッチ プロセスとして実行されます。
ほとんどの場合、データ ウェアハウスの読み込みプロセスを実装する必要があります。このプロセスでは、次の順序でタスクを実行します。
- 読み込み対象の新しいデータをデータ レイクに取り込み、必要に応じて、読み込み前のクレンジングまたは変換を適用します。
- データをリレーショナル データ ウェアハウス内のファイルからステージング テーブルに読み込みます。
- ステージング テーブルのディメンション データからディメンション テーブルを読み込み、必要に応じて、既存の行を更新するか新しい行を挿入して、代理キー値を生成します。
- ステージング テーブルのファクト データからファクト テーブルを読み込み、関連するディメンションの適切な代理キーを参照します。
- インデックスとテーブル分散統計を更新して、読み込み後の最適化を実行します。
COPY
ステートメントを使用してデータをステージング テーブルに読み込んだ後、INSERT
、UPDATE
、MERGE
、CREATE TABLE AS SELECT
(CTAS) ステートメントを組み合わせて、ステージングされたデータをディメンション テーブルとファクト テーブルに読み込むために使用します。
注意
効果的なデータ ウェアハウス読み込みソリューションを実装するには、代理キー、緩やかに変化するディメンション、およびリレーショナル データ ウェアハウス スキーマに固有のその他の複雑さを管理する方法について慎重に検討する必要があります。 データ ウェアハウスを読み込む手法に関する詳細については、「データをリレーショナル データ ウェアハウスに読み込む」のモジュールを完了することを検討してください。