0

私は DataStage 9.1 を使用しています。開始すべきいくつかのベスト プラクティスを見つけるという私のタスクを公開します。

フォルダーから複数の csv ファイル (すべてのファイル) を読み取り、ファイル名の最後の 2 文字に基づいて 10 個の異なるジョブで ETL の実行を切り替える必要があります。次に、私の質問は次のとおりです。

目的は、ファイル fileXX が ETL の入力として使用され、tabXX、fileYY が tabYY などを埋めることです..

1) フォルダから複数のファイルを読み取る方法は? 2)ファイル名に基づいてジョブを切り替える方法、または入力ファイル名の値に基づいてパラメトリックジョブを開発するにはどうすればよいですか?

私の仕事を最良の方法で開始するために、誰かが私に意見を与えることができますか?

4

3 に答える 3

1

ランダムの元の回答と Linux の機能に基づいています。

次のような外部コマンドを使用した外部ファイル ステージ

grep -Han ^ /pathtofile/#pFileMask# > /dev/null

H = file name
a = forces reading of file as text
n = line number

これにより、3 つの列が生成されます FileName LineNumber AllData

次に、トランスフォーマーにパススルーし、ファイル名または別のファイル マスクで個々のリンクをフィルター処理できます。

次に、AllData 列を分離する必要があります。最も簡単な方法は、列インポート ステージと各ファイル タイプのスキーマ ファイルを使用することです。

繰り返しますが、これはランダムの元の回答に基づいているため、クレジットは彼/彼女に送られる必要があります

お役に立てれば

于 2015-12-09T19:51:16.257 に答える
1

1)複数のファイルを読み取るには、外部ソースを使用して、フォルダー内のファイルを返すコマンドをパラメーターとして配置できます(データステージサーバーでUNIXまたはLinuxを使用している場合はls)一連のフィルターを使用するか、複数の外部ソースをファイルの種類ごとに使用できます。たとえば、UNIX または Linux を使用している場合は、パラメーター「ls path_of_the_directory/*XX.csv」を使用して 1 つの外部ソースを作成し、「」を使用して 1 つの外部ソースを作成できます。 ls path_of_the_directory/*YY.csv" は ls がワイルドカードをサポートしているためですが、Windows に同等のものがあるかどうかはわかりません

于 2013-10-08T16:18:12.083 に答える