0

ペンタホケトル初心者です...

今のところ、多くの .txt ファイルを含むフォルダーがあります。

たとえば、20121012.txt、20121014.txt.....

ケトル ジョブを実行するたびに、データベースにインポートするためにこれらすべてのファイルが grep されます。

データの重複を防ぐために、db にインポートする前にチェックを処理する必要があります。

問題は、ケトルに既にインポートされているファイル名を認識させるにはどうすればよいですか?

例えば:

20121012.txt <=このファイルをインポートすると、次回ファイル名をチェックし、同じファイル名の場合はインポートされません。

この場合、「ファイルが存在するかどうかを確認する」ステップで特定のファイル「20121012.txt」を単純に設定することはできません。txtファイルが大きいためでした。ファイル名が 1 日を指す場合、1 年には 365 ~ 366 日が含まれます。この方法で終日ファイルをハードコーディングすることはできません。

そのため、可能な方法は、データベースにインポートする前にファイル名が存在するかどうか、そのプロセス ファイルのファイル名を確認することです。

そして、それが私の質問です。どうすればこれを行うことができますか? どのような手順またはワークフローを使用する必要がありますか? 誰でもこれを行うことができる詳細な手順を提供できますか?

ご連絡をお待ちしております。さらに情報が必要な場合はお知らせください。

助けてくれてありがとう!

4

2 に答える 2

2

これを行うには、処理済みのファイル リストをデータベースのテーブルのような場所に格納します。別のステップでテーブルにロードしてから、ステップからのストリームをマージで結合し、他のストリームにないファイル ロード ステップからのファイルのみを通過させます。

後で新しく処理されたファイルを使用して、既に処理されたテーブルを後で更新してください。

于 2012-12-08T16:46:57.500 に答える
2

「ファイル名の取得」ステップを使用できます。この手順では、ファイルを保存するフォルダーを設定し、ワイルドカードを設定します (フォルダーのすべてのファイルが必要な場合は ".*" など)。

データベースに既にインポートされたファイル名が保存されている場合は、「データベース ルックアップ」を使用してファイル名が既にデータベースにあるかどうかを確認し、ストリームをフィルター処理して、データベースに見つからなかったファイル名のみを渡すことにより、変換を非依存にすることができます。

于 2012-12-10T08:53:47.727 に答える