2016-04-26 14 views
0

複数のxlsファイルをMySQLデータベースにインポートするTalendを使用してジョブを作成したいとします。 私はそれらのファイル(列と名前の数)のスキーマは分かりませんが、ヘッダー行が列名に対応していると仮定できます。 私の考えは、xlsファイルと設定ファイル(スキーマとmySQLテーブルへのマッピングについて説明しています)を含むxlsスキーマごとにフォルダを作成することです。 すべてのxlsファイルは、すでに存在する単一のテーブルにマップする必要があります。 Talend open Studioでこれが実現できるのだろうか? 他の解決策は歓迎されていません。動的スキーマxlsファイルからmysqlデータベース

+0

スキーマ全体でテーブル列の名前が同じですか。つまり、列「xxXXyyKK」には、別のスキーマの列「xxXXyyKK」にも同じデータが含まれていますか? – user853710

+0

である必要はありません。 –

答えて

0

Talend Exchangeには、これに利用できるコンポーネントがあります。このコンポーネントは、固定スキーマ(Talendが使用されているようなもの)のベースではなく、行ごとに読み込みを行うことで動作するため、Excel固有のものですが、セルベースであり、セルごとにセルを読み取ります。

私が行うことは、スキーマを識別するための仕事を持つことであり、それによって異なる挿入クエリが生成されることになります。私はすべてのスキーマのための仕事を持っていないだろうが、それらのすべてのために同じ仕事を持っています。

1. First job would go cell by cell through the first row (containing the header names) and populate them into a flow. (Row:1, Column:B, Value: "FullName") 
2. second part of the job would be to go through cell by cell for the values and get them in a Key-Value way (Row:3, Column:B, Value: "Peter Jackson") into another flow 
3. Denormalising the second flow could give you all of the values int the same Excel row. 
4. A tMap woud give you the possibility to exchange the Column B with the Fullname attribute and have a concatenation going on that would give you the insert statement. 

これが私のアプローチです。これを実行するには約1〜2時間かかりますが、実行可能にする必要があります

+0

しかし、私が必要とするのは、入力と出力の列を指定する外部構成ファイルを使用することです。 私は3つの列(名前、年齢、性別) とこのファイルの "名前"列が私のテーブルの "ユーザー"列にマップする必要があることを指定する設定ファイルを持つxlsファイルを持っている場合、これを動的にロードしますか? –

+0

まあ、最初のステップは、列名をロードすることです、そこに他の設定を引っ張って、それを名前で照合し、必要なものを変更することができます。それをステップ1.1と呼んでください。列を使用したくない場合は、単に設定の外に置いておけば、ステップ1のフローと一致しません。ステップ2のフローを結合すると、処理される。私は何の問題も見ません。 – user853710

+0

問題がある場合は、上司にコンサルタントとして2時間ほど雇ってもらうよう依頼してください。 ;) – user853710

関連する問題