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