私はETLを開発しています。最初のステップはテキストファイル入力で、ファイル名や最終更新日を含む "追加出力フィールド"のメタデータをストリームに追加します。DBクエリの結果に基づいてストリームを続行します
私はその最後の変更日時とそのファイル名がすでに処理されたかどうかの検査DBへのクエリを作成する必要があります。その場合は、ストリームを停止して次の手順を処理しないでください。
これは可能ですか?私はそれについてgoogledし、例を見つけませんでした。
私はETLを開発しています。最初のステップはテキストファイル入力で、ファイル名や最終更新日を含む "追加出力フィールド"のメタデータをストリームに追加します。DBクエリの結果に基づいてストリームを続行します
私はその最後の変更日時とそのファイル名がすでに処理されたかどうかの検査DBへのクエリを作成する必要があります。その場合は、ストリームを停止して次の手順を処理しないでください。
これは可能ですか?私はそれについてgoogledし、例を見つけませんでした。
Pentahoのは、並列のすべてのステップを処理するので、線形抽象化のこの種は、少し混乱することができます。
処理を続行しない場合は、行を返さないでください。後続のステップが0行を受け取る場合、何も実行しません。
はこれを行うにはいくつかの方法があります。
すぐに直面する問題は次のとおりです。すでに実行されています?"。これは、あなたのcrontabがデッドロックを開始するまで、またはユーザーがあなたについて3週間前のデータを二重に訴えるまで、学問的質問のように聞こえます。
job
でこれをチェックする必要があります。すべてのステップを並行して実行する変換とは異なり、ジョブエントリは順番に実行されます。 Scripting/SQL
エントリを使用してlogdate<now()-10minutes
のような条件を入れてください(this questionで説明されています)。今
、そこにあなたの仕様のため、より堅牢なアーキテクチャ:特定のフォルダ内のすべての受信ファイルを入れて、それらを処理、アーカイブディレクトリに移動します。事実、処理の直前にアーカイブ内に移動し、重複した負荷から保護します。