tMysqlOutputを使用してデータをアップデートする
このJavaシナリオでは、MySQLテーブル内のデータを区切り付きファイル内のデータに従ってアップデートするコンポーネント2つのジョブについて説明します。
-
[Palette] (パレット)から、tFileInputDelimitedとtMysqlOutput (tDBOutput_1として表示)をデザインワークスペースにドロップします。
-
[Row Main] (行>メイン)リンクを使用して2つのコンポーネントを接続します。
-
tFileInputDelimitedをダブルクリックして[Basic settings] (基本設定)ビューを開き、コンポーネントのプロパティを定義します。
-
区切り付きファイルのメタデータを[Repository] (リポジトリー)ツリービューの[Metadata] (メタデータ)ノードに保存している場合は、[Property Type] (プロパティタイプ)リストから[Repository] (リポジトリー)を選択します。保存していない場合は、[Built-In] (組み込み)を選択して、区切り付きファイルのメタデータを手動で定義します。
メタデータの格納の詳細は、Talend Studioでメタデータを管理をご覧ください。
-
[File name/Stream] (ファイル名/ストリーム)フィールドで[...]ボタンをクリックし、MySQLテーブルにプロパゲートする変更が含まれているソース区切り付きファイルを参照します。
この例では、4つのカラム(id、CustomerName、CustomerAddress、idState)が含まれているcustomer_updateファイルを使用します。4つのカラム内に含まれているデータの一部は、MySQLテーブル内のデータと異なります。
-
ソースファイルで使用する行とフィールド区切りを対応するフィールドで定義します。
-
必要に応じて、[Header] (ヘッダー)、[Footer] (フッター)、および[Limit] (制限)を設定するために使われます。
このサンプルでは、最初の行にカラム名が含まれているため、[Header] (ヘッダー)は1に設定されています。したがって、これは無視する必要があります。また、処理行数が2000までに制限されています。
-
[Edit Schema] (スキーマを編集)の横にある[...]ボタンをクリックしてダイアログボックスを開くと、後続のコンポーネントに渡すソース区切り付きファイルのデータストラクチャーを記述できます。
-
キーカラムとして定義するカラム名の横にある[Key] (キー)チェックボックスをオンにします。
ジョブが正しく実行されるためには、少なくとも1つのカラムをキーカラムとして定義する必要があります。そうしないと、ジョブは自動的に中断され、コンソールにエラーメッセージが表示されます。
-
デザインワークスペースでtDBOutput_1をダブルクリックして[Basic settings] (基本設定)ビューを開き、プロパティを定義します。
-
[Sync columns] (カラムを同期)をクリックして、前のコンポーネントからスキーマを取得します。必要に応じては、[Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックしてダイアログボックスを開くと、取得されたスキーマを確認できます。
-
接続メタデータを[Repository] (リポジトリー)ツリービューの[Metadata] (メタデータ)ノードに保存している場合は、[Property Type] (プロパティタイプ)リストから[Repository] (リポジトリー)を選択します。保存していない場合は、[Built-In] (組み込み)を選択して、接続情報を手動で定義します。
メタデータの格納の詳細は、Talend Studioでメタデータを管理をご覧ください。
-
データベース接続情報を対応するフィールドに入力します。
-
[Table] (テーブル)フィールドに、アップデートするテーブルの名前を入力します。
-
[Action on table] (テーブルでのアクション)リストから、実行するオペレーションを選択します。このサンプルでは、テーブルが既に存在するため、[Default] (デフォルト)です。
-
[Action on data] (データでのアクション)リストから、データに対して実行するオペレーションを選択します。この例では[Update] (アップデート)です。
-
ジョブを保存し、F6を押して実行します。
DBブラウザーを使用して、MySQLテーブル、customersが区切り付きファイルに従って変更されているかどうか確認します。
上記の例では、データベーステーブルには常に4つのカラム、id、CustomerName、CustomerAddress、idStateがありますが、一部のフィールドは、使用している区切り付きファイル内のデータに従って変更されています。