代理キーは、私たちの本に何年も存在するメカニズムであり、再び議論するのは嫌いです. ビジネス キーの代わりに代理キーを使用するメリットについては、誰もが口をそろえています。Microsoft Analysis Services 表形式および Microsoft PowerBI 表形式モデルでさえ、代理キーを使用しています。言及された両方のプラットフォームは、1 つの列を使用してディメンションとファクトを接続する機能を提供するため、実際には 1 つのビジネス キーを持つことは非常に困難であるため、代理キーとなります。
最近は BI アーキテクトとして、Analysis Services の多次元および表形式を使用していました。多次元のプロジェクトがあり、毎晩 DataWarehouse で最大 500 GB まで管理されていました。私は、数百万のレコードを持つテーブル間で、5 ~ 6 個のユニオンと 8 ~ 10 個の結合から収縮した事実に直面しました。
サロゲート キーを使用して、ディメンション キーを知ることができるようにするために、追加の結合を作成する必要があります。その結果、N 次元 (構造式のファクトとまだ関連付けられていない) を単一のファクトと "関連付け" たい場合は、DataWarehouse に N 個の追加の結合が必要です。
前の例を見てみましょう。この特定のファクトについては、5 ~ 6 個のユニオン + (8 ~ 10 + N) 個の結合が必要であり、これにより複雑さが増します。このファクトを 10 ~ 15 に関連付ける必要があるとどうなるかのイメージ代理キーを取得するためのディメンション。
ここ数年、私は新聞を読むような初期のコーヒーを使用してファクト式を読み、未使用の列、結合、結合を削除し、ETL プロセス時間を節約するために複雑さを軽減するためにすべてを作成しようとしていました。
DataWarehouse と Semantic Layer を照会する時間を節約できることは十分に理解できますが、ETL についてはどうですか? 何か足りないものがありますか?