4

Talend Open Studioを使用して、特定の列の値に基づいてテーブルを複数のテーブルに分割しようとしています。この列に1、2、3などの整数値を含めることができるとすると、この値に従って、これらの行はtable_1、table_2、table_3などに移動する必要があります。

その列の異なる値の数が事前にわからない場合にこれを解決できれば最善ですが、今のところ、これらの出力テーブルはすべてすでに存在していると想定できます。つまり、さまざまな値の数、つまりさまざまなテーブルの数が十分に多いため、個々のフィルターを手動で設定することはできません。

これは、Talend OpenStudioまたはPentahoKeetleなどの類似のオープンソースETLツールを使用してこれを解決することは可能ですか?

もちろん、自分で簡単なスクリプトを作成することもできますが、完全なETLプロセスは非常に複雑なので、適切なETLツールを使用することをお勧めします。

4

3 に答える 3

2

PDIまたはPentahoKettleでは、パーティショニングを使用してこれを行うことができます。(ステップIIRCの右クリックオプション)PDIでのパーティショニングは、まさにこの種の問題のために設計されています。

于 2012-10-24T06:03:25.370 に答える
1

はい、それは可能であり、単一の列に基づいてデータを別のテーブルに分割することは可能ですが、そのためにはテーブルを動的に作成する必要があります:-

tFileInputDelimited-> tFlowtoIterate-> tFixedFlowInput->そして、globalMap()を使用して列の値を取得し、同じものを使用してデータを別のテーブルに分離できます。->そして、テーブル名でglobalMap(データを区切るために使用されるColumn)を使用できます。

ここに画像の説明を入力してください

于 2014-03-25T06:01:34.767 に答える
0

私の頭に浮かんだ最初の解決策は、レプリケーターを使用して、現在の行をガードとして機能する3つのフィルターに転送し、指定された列に1、2、または3のいずれかで行を通過させることでした。写真:http://i.imgur.com/FmvwU.png

ただし、テーブル名を動的に作成することもできます。それが必要な場合は、pic:http: //i.imgur.com/8LR7Q.png

于 2012-10-22T19:56:58.720 に答える