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