私はしばらくこのことを理解しようとしており、達成方法についての助けが必要でした。私はSQL Server(ソースdb)からユーザーを取り込み、mysql(ターゲットdb)に追加するinformaticaでETLプロセスを作成しました プロセスにはいくつかのステップがあります。1つのフィールドが変更されたときにレコードを更新する自動プロセスを作成する方法
手順1. - source.dbo。[user](SQL SERVER)をターゲットに移動します。無効の状態が変更されたときに、新しいレコードが
ステップ2を添加したときuser
ユーザテーブルには、この
userid username profile disabled
1 A A 0
2 B A 0
3 c B 1
このテーブルはアップサートされるようになります - 新規ユーザーをターゲットに挿入されています。ワーカーテーブル。左が参加するだけで作業員テーブルに存在してはいけないユーザーを追加するために が使用されます。
select wrk.*, usr.* from target.worker
wrk left join target.user usr on wrk.userid=usr.userid
where wrk.usrid is null;
作業員テーブルには、その後のプロセスの後、この
id username userid disabled
1 A 1 0
2 B A 0
のようになりますが、ユーザーID 3がされる実行されます作業台に追加されました
ここでは私が理解できない部分があります: 無効状態が変わったときに作業員テーブルのユーザーを更新する必要があります。 現在、私は左の結合でユーザーからのワーカーを追加する設定をマップして、現在のワーカーテーブルに存在しないユーザーのみを追加しました。 対応するユーザーテーブルで無効なステータスが変更された場合、ワーカーテーブルのレコードを更新するようにマップする方法を教えてください。
私はこれが意味をなされることを望みます。 。 は、それを簡単にするために:私はそのようにフィルタや説明のプロセスとの結合問合せを必要とする
ターゲットは、[ユーザー]がある
userid username profile disabled
1 A A 0
2 B A 0
3 c B 1
4 D C 0
とtarget.workerは
userid username profile disabled
1 A A 0
2 B A 0
3 c B 0
です作業者テーブルは新しいレコードを挿入し、既存のレコードを無効にしますステータス:これは次のようになります
userid username profile disabled
1 A A 0
2 B A 0
3 c B 1 <--- Record updated
4 D C 0 <-- New record added
難しい点は何ですか? – Drew