Magic ETLで再帰的なDataFlowを作成するには:
-
Magic ETL DataFlowを作成し、実行します。

-
DataFlowを実行したら、出力DataSetを入力DataSetとして読み込みます。
出力タイルには出力DataSetの名前の後に「1」が表示されます。
DataFlowに2つのDataSet(更新元の DataSetと履歴のDataSet)がなければなりません。 次に、制約として使用する列を見つけます。これは、いつ履歴DataSetの中のデータを新しいデータに置換するかを決定する際に役に立ちます。制約列は通常、ID列、日付列、ほかの一意の識別子のいずれかです。この例では、「日付」列を制約として使用します。

-
[列を選択] を使用して、制約列のみを選択します。

-
[重複を削除] を使用して、一意な制約リストを返します。

-
[定数を追加] を使用して、行をいつ削除する必要があるかを示す新しい列を作成します。

-
Outer Joinを使用して、削除を識別する列を履歴DataSetの中の一意な制約列にJoinします。Joinの左側にある履歴DataSetを選択した場合、下に示すように、Left Outer Joinを使用します。Joinの右側にある履歴DataSetを選択する場合は、Right Outer Joinを使用します。(データが失われる可能性があるので、 Inner Join を選択しないでください。)


-
DataSetから、「Delete Me」の値(またはステップ5で作成した識別子)を含む行をフィルターします。
これにより、新しい更新DataSetに存在しない履歴DataSetの行のみが返されます。

-
[列を選択] を使用して、追加の一意の制約列( 「日付(Date)」)と一意の削除を識別する列を削除します。

-
[追加] を使用して、履歴DataSetと新しい更新DataSetをJoinします。
すべての手順が正しく実行された場合、両方のDataSetに「変更なし」と表示されます。

- [追加] タイルを出力に接続します。
