1

新しいデータ ファイルをデータベースにロードするプロセスを自動化する必要があります。私の質問は、自動化された方法でどのファイルが「新しい」かを判断する最良の方法についてです。

ファイルは毎晩同期されるディレクトリから取得されるため、ファイルのリストは増え続けます。既に取得したファイルを消去するオプションはありません。

新しいレコードは、各レコードが作成されたファイル名を示すフィールドを持つ生データ テーブルに保存されるため、現在ディレクトリにあるすべてのファイル名を生データ テーブルに既にあるファイル名と比較し、含まれていないファイル名のみを処理できます。一般。

または、ファイル名に含まれるタイムスタンプを使用して、最後にインポート プロセスを実行した後に作成されたファイルのみを処理することもできます。

エラーが発生しにくいと思われるため、最初のアプローチを使用することに傾いていますが、これが実際に真実であるかどうかを見つけるのはあまり運がありませんでした. すべてのファイル名をデータベースに既に存在するファイル名と比較して、この方法で新しいファイルを決定することの落とし穴は何ですか?

4

1 に答える 1

1

ファイル名の比較:

  • 何百万ものファイルがある場合、比較は探しているものではないかもしれません。
  • 上記のフォルダー内のファイルが決して削除されないことを確認する必要があります。

日付ごとにファイル名を取得します。

  • これらのファイル名は 1 日に 1 回取得されるため、正確性が保証されます。(ミリ秒単位の差で作成されたものでも)
  • 多くのファイルがある場合に効率的です。
  • Pentaho は、作成日ではなく変更日を示します。

上記のいずれかを行うには、次の Pentaho ステップを使用できます。

ファイル名

構成ファイル名の取得手順:

  • ファイル/ディレクトリ: ファイルを含むフォルダー パスを指定します。

  • ワイルドカード (RegExp):.*\.*すべてを取得するか.*\.pdf、特定の
    形式を取得します。

于 2016-08-27T17:27:00.837 に答える