ソースファイルからデータベースにダイナミックカラムを書き込む
このシナリオは、サブスクリプションベースのTalend製品にのみ適用されます。
このシナリオでは、デモンストレーションの目的でMySQLを使用しています。ソースファイルからダイナミックカラムを読み取り、マッピングして[MySQL]データベースのテーブルに書き込みます。ダイナミックなカラムを既知のカラム名と合わせて定義することにより、不明なカラムを含め、すべてのカラムをソースファイルから取得できます。
- tFileInputDelimited、tMap、およびtMysqlOutputコンポーネントをワークスペースにドロップします。
- [Row] (行) > [Main] (メイン)接続を使用して、tFileInputDelimitedをtMapにリンクします。
- [Row] (行) > [*New Output* (Main)] (*新規出力*: メイン)接続を使用して、tMapをtMysqlOutputにリンクします。
- tFileInputDelimitedをダブルクリックし[Component] (コンポーネント)タブの[Basic Settings] (基本設定)ビューを開きます。
情報メモ警告: ダイナミックスキーマ機能は、[Built-In] (組み込み)モードでのみサポートされています。
- [Property Type] (プロパティタイプ)リストから[Built-In] (組み込み)を選択します。
- [File name/Stream] (ファイル名/ストリーム)フィールドの横にある[...]ボタンをクリックし、入力ファイルを参照します。
- [Row Separator] (行区切り)および[Field Separator] (フィールド区切り)フィールドのとなりで、区切りとして使用する文字を入力します。
- [Edit Schema]をクリックして、ソースファイルスキーマを定義します。
[Edit Schema] (スキーマを編集)ダイアログボックスが開きます。
- 必要な数の行を追加するか、およびボタンを使用して行を削除します。
- ボタンとボタンを使って、カラムの順番を変更できます。
- [Column] (カラム)の下に、既知のカラムの名前をそれぞれ別々の行に入力します。
- 最後の行の[Column] (カラム)の下に、ダイナミックカラムの名前を入力します。
- [Type]の下で、フィールドをクリックして、対応するカラムのデータの種類を定義します。
矢印をクリックして、正しいデータ型を選択します。
情報メモ警告: [Type] (タイプ)の下で、ダイナミックカラムタイプは[Dynamic] (ダイナミック)に設定する必要があります。
情報メモ警告: ダイナミックカラムはスキーマの最後の行で定義する必要があります。
- ソーススキーマの定義が完了したら、[OK]をクリックしてダイアログボックスを閉じます。
- tMapをクリックして、[Component] (コンポーネント)タブの[Basic Settings] (基本設定)ビューを開きます。
- [Map Editor]の横にある[...]をクリックして、ソースファイルのカラムをマッピングします。
- ウィンドウの右上の[Output Panel] (出力パネル)の上部のツールバーで、ボタンをクリックします。
[Add an Output] (出力の追加)でスキーマダイアログボックスが表示されます。
- [New output] (新規出力)のとなりで、出力スキーマの名前を入力します。
- [OK]をクリックしてダイアログボックスを閉じます。
- [Ctrl + クリック]で、左側の入力スキーマのカラム名をすべてハイライトし、出力スキーマにドロップします。
出力カラムにドロップされたカラムは元の値を保持し、1対1で自動的にマッピングされます。
- 出力スキーマで[Expression] (式)の下の該当する行をクリックし、[Expression Builder] (式ビルダー)を使用して、出力の対応するカラムの詳細パラメーターを設定するために使われます。
- [...]ボタンをクリックすると、[Expression Builder] (式ビルダー)が開き、必要に応じてパラメーターを設定できます。
式ビルダーの使い方は、式ビルダーを使ってコードを作成をご覧ください。
情報メモ警告: ダイナミックカラムは1対1でマッピングする必要があり、途中で変換することはできません。フィルター式や変数セクションでは使用できません。出力テーブルで名前を変更することはできず、結合条件として使用することはできません。
- [OK]をクリックして、[Map Editor] (マップエディター)を閉じます。
- tMysqlOutputをダブルクリックし、[Component] (コンポーネント)タブの[Basic Settings] (基本設定)を設定するために使われます。
- [Property Type] (プロパティタイプ)として[Built-In] (組み込み)を選択します。
- 対応するリストから[DB Version] (データベースバージョン)を選択します。
- [Host] (ホスト)のとなりにデータベースサーバーのIPアドレスを入力します。
- [Port] (ポート)のとなりにデータベースサーバーのリスニングポート番号を入力します。
- [Username] (ユーザー名)および[Password] (パスワード)フィールドに認証データを入力します。
- [Action on data] (データでのアクション)のとなりで必要な操作を選択します。
- [Action on data] (データでのアクション)のとなりで必要な操作を選択します。
- [Schema type]を[Built-in]として設定し、 [Edit schema] (スキーマを編集)をクリックして、必要に応じてスキーマを変更します。
- F6を押してジョブを実行します。
テーブルは、不明だったカラムのデータおよびカラム名と共にMySQLデータベースに書き込まれます:
情報メモ注: ジョブは[Traces Debug] (トレースデバッグ)モードで実行することも可能です。その場合は、ワークスペースで出力ファイルに書き込む時に行を表示できます。
ダイナミックスキーマの定義とマッピングの方法は、ダイナミックスキーマをご覧ください。
ダイナミックカラムを出力ファイルに書き込む方法の例は、 データベースから出力ファイルにダイナミックカラムを書き込みをご覧ください。