新しいデータファイルをデータベースに読み込むプロセスを自動化する必要があります。私の質問は、自動化された方法でどのファイルが「新」であるかを判断する最良の方法です。ETLファイルの読み込み:今日作成されたファイルまたは既に読み込まれていないファイル?
ファイルは夜間に同期されるディレクトリから取得されるため、ファイルのリストは増え続けます。私はすでに検索したファイルを一掃するオプションはありません。
新しいレコードは、各レコードの元のファイル名を示すフィールドを持つ生データテーブルに格納されています。そのため、現在ディレクトリ内にあるすべてのファイル名を、生データテーブルにあるファイル名と比較し、共通していません。
または、ファイル名にあるタイムスタンプを使用して、インポート処理が最後に実行されてから作成されたファイルのみを処理できます。
エラーが発生しにくいので、最初のアプローチを使用する傾向にありますが、これが本当に真であるかどうかを確認することはあまりありませんでした。すべてのファイル名と既にデータベースに入っているファイル名を比較することによって、この方法で新しいファイルを判断するという落とし穴は何ですか?
これは私が考えていた賛否両論でした。ファイル名の比較では、通常、1日に1つのファイルしか受け取らないので効率は問題ではないと思います。 ファイルがフォルダから削除される可能性も考えましたが、フォルダ内のファイル名とデータベース内のファイル名を比較するために左結合(Pentaho Merge Join Left Outer)を使用すると、問題である。 – CGritton
はい、それも比較しても大丈夫です。古いファイル名をすべて読み込んで比較するのではなく、新しいファイルのみを削除して取得し、日付を比較したり取得したりするのは良い方法です。 –