私はちょうど新しいタスクを開始する過程にあります。そこでは、SCD1とSCD2を使用してハイブリッドディメンションテーブルをロードする必要があります。これは、SSISパッケージとして実現する必要があります。誰かがSSISでこれを処理する最良の方法をガイドできますか?SCDコンポーネントを使用する必要がありますか、それとも他の方法がありますか?このためのベストプラクティスは何ですか。
SCD2タイプの場合、Mergeステートメントを使用しています。
ありがとう
それはワームの缶です:)
SSISでSCDを処理するには、基本的に4つの方法があります。1。組み込みのSCDコンポーネントを使用する2.ルックアップ、条件付き分割、派生列、およびさまざまな宛先を使用する「独自のローリング」。3.T-SQLMERGEの使用4.サードパーティのKimballSCDコンポーネントの使用
#4に対する私の偏見について警告します-私はそれを書きました。しかし、これが私の分析です。
1は、「小さい」および「簡単な」寸法に適したソリューションです。なんでいいの?わかりやすく、SCD 1と2を処理し、セットアップも簡単です。しかし、なぜ「小さく」「簡単」な寸法しかないのでしょうか。改善できない内部キャッシュされていないルックアップ(RBAR)を使用しているためです。何かを変更すると(ウィザードを再実行すると)、データフローに加えた変更がすべて破棄されるためです。また、大文字と小文字の区別が重要でない行や、末尾のスペースが重要でない行は処理されないためです。
2は、より大きな次元に適したソリューションです。それはかなりうまく機能し、使用するコンポーネントの名前とそれらがどのように組み合わされているかから正確に何をしているのかを見ることができるという点で「十分に文書化されている」ので良いです。また、操作や操作方法の変更も簡単です。欠点は、セットアップとテストに時間がかかることです。
3は巨大な寸法に適したソリューションです。通常、他のすべての選択肢よりも優れています。しかし、それはそれがそれのために行っているすべてについてです。コーディングは非常に複雑で、たくさんのコメントがないと理解できません。
4は、おそらく「巨大な」寸法を除いて、ほぼすべてのサイズに適したソリューションです。標準のSCDコンポーネントのように「簡単に」使用でき、2と同等またはそれ以上のパフォーマンスを発揮し、2と同じように構成可能です。