tMysqlOutputを使ってカラムの挿入とデータの変更を行う
このJavaシナリオは、tRowGeneratorを使用してランダムデータを作成し、tMapコンポーネントを使用して、変更されるカラムを複製し、最終的にtMysqlOutputコンポーネントを使用して、SQL式に基づいて挿入されるデータを変更する3コンポーネントのジョブです。
Talendでサポートされているテクノロジーの詳細は、Talendコンポーネントをご覧ください。
-
[Palette] (パレット)から、tRowGenerator、tMap、tMySQLOutputの各コンポーネントをデザインワークスペースにドロップします。
-
[Row Main] (行>メイン)リンクを使用して、tRowGenerator、tMap、およびtMysqlOutputを接続します。
-
デザインワークスペースでtRowGeneratorを選択して[Basic settings] (基本設定)ビューを開きます。
-
[Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックし、tMapコンポーネントに渡すデータ、このシナリオでは2つのカラム、nameおよびrandom_dateを定義します。
-
[OK]をクリックしてダイアログボックスを閉じます。
-
[RowGenerator Editor] (RowGeneratorエディター)の横にある[...]ボタンをクリックしてエディターを開き、生成するデータを定義します。
-
対応する[Functions] (ファンクション)フィールドをクリックし、2つのカラムのそれぞれにファンクションを選択します。最初のカラムにはgetFirstNameを、2番目のカラムにはgetrandomDateを選択してください。
-
[Number of Rows for Rowgenerator] (Rowgeneratorの行数)フィールドに10と入力してファーストネームの行を10行生成し、[Ok]をクリックしてエディターを閉じます。
-
tMapコンポーネントをダブルクリックして、マップエディターを開きます。マップエディターが開き、tRowGeneratorコンポーネントの入力メタデータが表示されます。
-
マップエディターの[Schema editor] (スキーマエディター)パネルで、出力テーブルの[+]ボタンをクリックして行を2つ追加し、最初の行をrandom_date、2番目の行をrandom_date1として定義します。
このシナリオでは、出力コンポーネント内のデータを変更するために、random_dateカラムを複製し、スキーマを変更しようとしています。
-
マップエディターで、random_date行を入力テーブルから出力テーブルのrandom_date行とrandom_date1行にドラッグします。
-
[OK]をクリックして、エディターを閉じます。
-
デザインワークスペースでtMysqlOutputコンポーネントをダブルクリックして[Basic settings] (基本設定)ビューを表示し、パラメーターを定義します。
-
[Repository] (リポジトリー)に[Property Type] (プロパティタイプ)を設定し、[...]ボタンをクリックして[Repository content] (リポジトリーコンテンツ)ダイアログボックスを開き、正しいデータベース接続を選択します。対応するフィールドに接続の詳細が自動的に表示されます。
情報メモ注:[Repository] (リポジトリー)の[Metadata] (メタデータ)エントリーにデータベース接続の詳細を保存していない場合は、プロパティタイプリストで[Built-in] (組み込み)を選択し、接続の詳細を手動で設定します。
-
[Table] (テーブル)フィールドの横にある[...]ボタンをクリックし、変更するテーブル(このシナリオではDates)を選択します。
-
[Action on table] (テーブルでのアクション)リストで[Drop table if exists and create] (テーブルが存在する場合はドロップして作成)を選択し、[Action on data] (データでのアクション)リストからInsertを選択します。
-
必要に応じて、[Sync columns] (カラムを同期)をクリックして、tMapコンポーネントからのカラムと同期します。
-
[Advanced settings] (詳細設定)タブをクリックして対応するビューを表示し、詳細パラメーターを設定するために使われます。
-
[Additional Columns] (追加のカラム)エリアで、カラムに対して実行する変更を設定するために使われます。
このシナリオでは、random_date_1がOne_month_laterカラムに置換されます。また、データそのものが、ランダムに取得されたrandom_date_1カラムの日付に1か月を追加するSQL式を使用して変更されます。たとえば、2007-08-12は2007-09-12となります。
-[Name] (名前)セルにOne_Month_Laterと入力します。
-[SQL expression] (SQL式)セルに、実行する追加スクリプト(このシナリオでは"adddate(Random_date, interval 1 month)")を入力します。
-[Position] (位置)リストで[Replace] (置換)を選択します。
-[Reference column] (参照カラム)リストでRandom_date1と入力します。
このジョブの場合は、1つのインスタンスをOne_Month_Laterカラムに置換する前に、データベーステーブル内のrandom_date_1カラムを複製しました。この対処法の目的は、実行する変更を前もって表示できるようにすることです。
-
ジョブを保存し、F6を押して実行します。
データベーステーブル内でrandom_date1カラムが新しいOne_month_laterカラムに置換され、ランダムに生成された各日付に1か月が追加されます。