ジョブをビルド
手順
-
以下のコンポーネントを[Palette] (パレット)からデザインワークスペースに追加します。これらのコンポーネントに、その機能をわかりやすく説明したラベルを付けます。
- 3つのtELTMysqlInputコンポーネント
- tELTMysqlMap
- tELTMysqlOutput
-
最初のtELTMysqlInputをダブルクリックして[Basic settings] (基本設定)ビューを表示します。
-
[Schema] (スキーマ)リストから[Repository] (リポジトリー)を選択し、[Edit schema] (スキーマを編集)の前の[...]ボタンをクリックして、[Repository Content] (リポジトリーの内容)ダイアログボックスからDB接続と目的のスキーマを選択します。
選択したスキーマ名が[Default Table Name] (デフォルトのテーブル名)フィールドに自動的に表示されます。
この事例の場合、DB接続は Talend_MySQLで、最初の入力コンポーネントのスキーマはownersです。
-
2番目と3番目のtELTMysqlInputコンポーネントを同じように設定しますが、スキーマ名としてそれぞれcarsとresellersを選択してください。
情報メモ注: この事例の場合、関連するすべてのスキーマが[Repository] (リポジトリー)ツリービューの[Metadata] (メタデータ)ノードに保存されて、簡単に取り出せます。メタデータの詳細は、Talend Studioでメタデータを管理をご覧ください。
3つの入力コンポーネントは、関連スキーマを[Metadata] (メタデータ)エリアからデザインワークスペースにドロップして、[Components] (コンポーネント)ダイアログボックスのtELTMysqlInputをダブルクリックして選択することもできます。この方法だと、入力コンポーネントをラベル付けして、スキーマを手動で定義するステップを省略できます。
- 実際のDBテーブル名(owners、cars、resellersに厳密に従って名前が付けられたリンクを使って、3つのtELTMysqlInputコンポーネントをtELTMysqlMapコンポーネントに接続します。
- tELTMysqlMapコンポーネントをtELTMysqlOutputコンポーネントに接続し、agg_resultリンクに名前を付けます。この名前は、集計結果を保存するデータベーステーブルの名前です。
-
tELTMysqlMapコンポーネントをクリックし、[Basic settings] (基本設定)ビューを表示します。
-
[Property Type] (プロパティタイプ)リストから[Repository] (リポジトリー)を選択し、入力コンポーネントに使う同じDB接続名を選択します。
すべてのデータベースの詳細が自動的に取得されます。
情報メモヒント: その他の設定はすべてそのままにしておきます。 - tELTMysqlMapコンポーネントをダブルクリックしてELT Mapエディターを起動し、入力テーブル間の結合を設定し、出力フローを定義します。
- ELT Mapエディターの左上にある[+]ボタンをクリックし、ポップアップダイアログボックスで関連するテーブル名を選択して、入力テーブルを追加します。
- ownersテーブルからID_Ownerカラムをcarsテーブルの対応するカラムにドロップします。
-
carsテーブルで、ID_Ownerカラムの前にある[Explicit join] (明示的結合)を選択します。
INNER JOINがデフォルトの結合タイプとして[Join] (結合)リストに表示されます。
- carsテーブルからID_Resellerカラムをresellersテーブルの対応するカラムにドロップして、2番目の結合を設定し内部結合として同様に定義します。
- 出力テーブル、agg_resultに集約するカラムを選択します。
- ownersテーブルのID_Owner、Name、ID_Insuranceカラムを出力テーブルにドロップします。
- carsテーブルのRegistration、Make、Colorカラムを出力テーブルにドロップします。
-
resellersテーブルのName_ResellerカラムとCityカラムを出力テーブルにドロップします。
関連カラムを選択すると、マッピングが黄色で表示され、結合が深紫で表示されます。
-
出力テーブルにフィルターを設定するために使われます。出力テーブル上部の[Add filter row] (フィルター行の追加)ボタンをクリックして[Additional clauses] (追加の句)式フィールドを表示し、resellersテーブルのCityカラムを式フィールドにドロップして、resellers.City ='Augusta'を読み取るWHERE句を完成させます。
-
[Generated SQL Select query] (生成されたSQL Selectクエリー)タブをクリックして、対応するSQLステートメントを表示します。
- [OK]をクリックして、ELT Map設定を保存します。
-
tELTMysqlOutputコンポーネントをダブルクリックし、[Basic settings] (基本設定)ビューを表示します。
- 必要に応じて[Action on data] (データでのアクション)リストからアクションを選択します。
-
スキーマタイプとして[Repository] (リポジトリー)を選択し、入力スキーマと同じように出力スキーマを定義します。このユースケースでは、出力スキーマとして[agg_result]を選択します。これは、マッピング結果の保存に使われるデータベーステーブルの名前です。
情報メモ注: 組み込みの出力スキーマを使って前のコンポーネントからスキーマストラクチャーを取得することもできますが、必ずデータベースで同じデータストラクチャーを持つ既存のターゲットテーブルを指定してください。情報メモヒント: その他の設定はすべてそのままにしておきます。