「再帰的」または「スナップショット」DataFlowは、それ自身を入力として使用するDataFlowです。
DataFlow(SQL型もMagic ETL型も)は、コネクターのようにネイティブにデータを追加できません。ただし、データを追加するDataFlowを作成する必要がある場合は、それを一度実行し、その出力を次の実行のための入力の一部として使用することで可能になります。このようにして、DataFlowが実行されるたびに、その前のデータが追加され、新しいデータもそれ自身に追加されます。
動画 - 再帰的なDataFlowとは?
Magic ETLで再帰的なDataFlowを作成するには、
-
Magic ETL DataFlowを作成し、実行します。
-
DataFlowを実行したら、出力DataSetを入力DataSetとして読み込みます。
出力タイルには出力DataSetの名前の後に「1」が表示されます。
DataFlowに2つのDataSet(更新元の DataSetと履歴のDataSet)がなければなりません。
次に、制約として使用する列を見つけます。これは、いつ履歴DataSetの中のデータを新しいデータに置換するかを決定する際に役に立ちます。制約列は通常、ID列、日付列、他の一意の識別子のいずれかです。この例では、「日付」列を制約として使用します。 -
[列を選択]を使用して、制約列のみを選択します。
-
[重複を削除]を使用して、一意な制約リストを返します。
-
[定数を追加]を使用して、行をいつ削除する必要があるかを示す新しい列を作成します。
-
外部結合を使用して、削除を識別する列を履歴DataSetの中の一意な制約列に結合します結合の左側にある履歴DataSetを選択した場合、下に示すように、左側の外部結合を使用します。結合の右側にある履歴DataSetを選択する場合は、右側の外部結合を使用します。(データが失われる可能性があるので、内部結合を選択しないでください。)
-
DataSetから、「Delete Me」の値(またはステップ5で作成した識別子)を含む行をフィルターします。
これにより、新しい更新DataSetに存在しない履歴DataSetの行のみが返されます。 -
[列を選択]を使用して、追加の一意の制約列( 「日付(Date)」)と一意の削除を識別する列を削除します。
-
[追加]を使用して、履歴DataSetと新しい更新DataSetを結合します。
すべての手順が正しく実行された場合、両方のDataSetに「変更なし」と表示されます。 -
[追加]タイルを出力に接続します。
完了すると、Magic ETLは以下のように設定されます。
トラブルシューティング/よくある質問
DataFlowとDataFusionのトラブルシューティングとよくある質問またはDataFlowを使用したユーザーエクスペリエンスのトップ5の問題を参照して、DataFlowの構築時に見られる一般的な問題とエラーを確認してください。
コメント
0件のコメント
サインインしてコメントを残してください。