問題タブ [sql-data-warehouse]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
172 参照

sql - ETL中に主キーを代理キーに置き換える方法は?

しばらくの間私を悩ませている質問があります。

ETLプロセス中に主キーを代理キーに置き換えると、実際にはどのように見えますか? ワークフローとはどのようなものですか? 新しい IDENTITY を割り当てるだけですか? もしそうなら、以前の値はどうですか、既存のビジネスキーを新しく作成されたものに置き換える方法は?

私の考えでは、特定のワークフローは次のようになりますが、実際にはまだ実行していません。

  1. DimProduct および FactSales テーブル内の既存の PK_Product および FK_Product を削除します。
  2. 新しい IDENTITY 列を dimProduct に設定します。
  3. 前のビジネス キーの結合に基づいて、新しく作成された IDENTITY 列の値を使用して、FactSales に新しい列を追加します。
  4. 両方のテーブルで古い ProductKey 列を削除します。
  5. 新しく作成されたサロゲート IDENTITY キーに制約を追加します。
  6. 将来の値のためにテーブル間の参照を割り当てます。

しかし、私が間違っていると思うので、あなたの仕事でこれをどのように行っているか教えてください。