非推奨のDatabaseInsertファンクションをtDBOutputコンポーネントに置き換えるため、ジョブおよび複数出力のマップをアップデートします。
同じステップでDatabaseUpdateファンクションを置き換えることができます。
重要: 複数の出力を持つDatabaseInsertやDatabaseUpdateからの移行は厄介なことがあります。問題を回避するため、次のステップを順番どおり実行してください。
始める前に
- DatabaseInsertファンクションを使用し、複数の出力を持っているtHMapが含まれているジョブがあること。
- Talend Studioでデータベースへの接続が作成済みであること。詳細は、データベース接続を設定をご覧ください。スキーマがマップで使われているストラクチャーと同じであることを確認します。
このタスクについて
この例には、企業情報が含まれているXMLファイルを読み取る
tFileInputRawと、XMLデータを2つのデータベーステーブルにマッピングする
tHMapを持つシンプルなジョブが用意されています。
ジョブは次のようになります。
この例の目的は、非推奨のDatabaseInsertファンクションを削除し、ジョブに対して同じ動作を維持することです。
手順
-
自分のジョブで、tHMapの後にから出力データベーステーブルをドラッグ&ドロップします。
-
プロンプトが表示されたらtDBOutputを選択し、[OK]をクリックします。
-
接続を使ってtDBOutputコンポーネントをtHMapにリンクさせ、各接続の名前を入力します。
重要: 出力接続の名前はそれぞれ、マップの出力ストラクチャーにある各テーブルのルートエレメント名と同じであることが必要です。この例では、出力エレメントにemployees
とdepartments
という名前が付けられています。マップを正しく動作させるためには、接続にemployees
とdepartments
という名前を付ける必要があります。
-
ターゲットコンポーネントのスキーマを取得するかどうかを尋ねられたら、[Yes] (はい)をクリックします。
-
マッピングパースペクティブで、マップの出力として使われている全データベースストラクチャーの下にあるRepresentationsフォルダーを展開します。
- [Map] (マップ)表記があれば、次のステップに移動できます。
- [Map] (マップ)表記がない場合は、[Representations] (表記)を右クリックして[New Map] (新しいマップ)をクリックします。
-
ジョブで使われたマップを開き、[Output] (出力)側の[Database] (データベース)、[Clear] (クリア)、[OK]の順にクリックすると、表記が削除されます。
-
出力ストラクチャーでDatabaseInsertファンクションを削除します。
このファンクションは、[IO/Database] (IO/データベース)タブにあるデータベーステーブルの名前に対応するエレメント上か、Row
ループ上のいずれかにあります。
-
出力ストラクチャーの各テーブル(この例では
employees
とdepartments
)のルートエレメントをクリックし、[IO/Database] (IO/データベース)タブにWriteURLファンクションを追加します。
-
WriteURLファンクションをダブルクリックし、[Representation] (表記)の横にある[...]ボタンをクリックして[Map] (マップ)を選択して、[OK]をクリックします。
-
マップとジョブを保存します。
タスクの結果
以上で、お使いのジョブは非推奨の
DatabaseInsertファンクションではなく
tDBOutputコンポーネントを使用するようになります。このジョブを実行すれば、同じ結果が得られます。
ヒント: tHMap上のエラーアイコンを削除する場合は、ジョブをいちど終了して開き直すことが必要な場合があります。