tJDBCSCDELTコンポーネントを使ってSnowflakeテーブルのデータ変更を追跡する
このシナリオでは、tJDBCSCDELTコンポーネントによって実装されたSCD (Slowly Changing Dimensions)タイプ1およびタイプ2のメソッドを使ってSnowflakeテーブルの従業員データの変更をキャプチャーし、現在のデータと履歴データの両方をSCDディメンションテーブルに書き込むジョブについて説明します。
入力データには、name、role、salaryなどのさまざまな従業員の詳細が含まれており、入力データの統一性を確保するために別のidカラムが追加されています。
最初に、次の従業員データが新しいSnowflakeテーブルに挿入されます。
#id;name;role;salary
111;Mark Smith;tester;15000.00
222;Thomas Johnson;developer;18000.00
333;Teddy Brown;tester;16000.00
その後、テーブルは次のアップデートされた従業員データでアップデートされます。
#id;name;role;salary
111;Mark Smith;tester;15000.00
222;Thomas Johnson;tester;18000.00
333;Teddy Brown;writer;17000.00
444;John Clinton;developer;19000.00
Thomas Johnsonのロールがdeveloperからtesterに変更され、Teddy Brownのロールがtesterからwriterに変更され、その給与が16000.00から17000.00に増額されていることがわかります。さらに、id 444の新しい従業員レコードが挿入されています。このシナリオでは、以下が行われます。
-
既存の名前とロールのデータが新しいデータで上書きされます。そのため、それらに対してSCDタイプ1メソッドが実行されます。
-
給与データの完全な履歴が保持され、データが変更された新しいレコードが常に作成され、前のレコードは閉じられます。そのため、それに対してSCDタイプ2メソッドが実行されます。
SCDタイプの詳細は、SCD管理方法論をご覧ください。