データ統合開発者の一日[第2部]:Talend Studioでの最初のジョブ構築

ビデオでは、Talend Studioで最初のジョブを作成する方法を簡単な例で説明します。このシリーズではさらに、より高度な機能について紹介していきます。

データ統合開発者の一日」シリーズ第2部となる今回は、映画の評価のデータウェアハウスを使用して、州ごとの各映画の平均評価をキャプチャーします。そのために、次を実行します。

  1. データウェアハウスからの2つのテーブルを結合します。
  2. 集約コンポーネントを使用して、州別の平均評価を計算します。
  3. これをデータウェアハウスの別のテーブルに保存します。

1. テーブルの結合

リポジトリの[Job Designs]フォルダツリー内で右クリックして、[Create Job]を選択します。名前を指定し、簡潔な目的を記述します。

データ統合ジョブ

必要なソースデータを含む2つのデータベーステーブル定義をメタデータリポジトリから取り込みます。評価データを含むファクトテーブルと、州の情報を含むユーザーのディメンションテーブルを選択します。

それぞれのテーブルをデザインワークスペースにドラッグアンドドロップします。また、これらは一般的なメタデータテーブル定義であるため、デザインワークスペースにドロップするときに、MysqlInputソースコンポーネントとして指定する必要があります。

データジョブを構築する

次に、これら2つのソースコンポーネントを結合する方法としてtMapが必要です。右側のコンポーネントパレットに移動してコンポーネントを検索するか、デザインワークスペース内をクリックして入力を開始し、コンポーネントを選択してジョブフローに追加できます。

tMapを使ってデータを接続します。右クリックし、[Row]機能を使用して接続することも、コンポーネントの横のアイコンを使用してコネクターをドラッグして伸ばし、接続することもできます。次に、既存の各ラベルをゆっくりダブルクリックして、コネクタにラベルを付けます。コンポーネントの名前を変更することもできます。これにより、ジョブフローを構築してtMapを構成するときに、テーブルを識別しやすくなります。

2. 集約コンポーネントの使用

必要となる3つ目のコンポーネントはアグリゲーターです。これは州別の平均評価を計算します。

  1. デザインワークスペース内をもう一度クリックして「Aggregate」を検索し、新しいコンポーネントを見つけて選択します。
  2. これをtMapに接続し、出力に名前を付けます。

3. ターゲットテーブルの設定

最後に、すべての結果データを格納するターゲットテーブルが必要です。ターゲットテーブルのメタデータを追加し、これをMysqlOutputコンポーネントとして指定して、その他のフローに接続します。

コンポーネントの構成

ジョブのすべての要素を配置して接続したので、データフローを正しく処理するようにコンポーネントを構成する必要があります。

tMapを構成する

まず、Ratings_Inをlkp_Statesに結合することによってtMapを構成します。

  1. Ratings_InテーブルのユーザーIDをlkp_StatesテーブルのIDフィールドにドラッグして、2つのデータセットをリンクします。
  2. テーブルが結合されたら、Ratings_InテーブルのMovie_IdフィールドとRatingフィールドを、そしてlkp_StatesテーブルからStateフィールドを取得し、それらをAg_Outputテーブルにドラッグします。これにより、残りのフローを駆動する出力データセットが作成されます。
  3. [OK]をクリックします。

アグリゲーターを構成する

次に、アグリゲーターを構成します。そのためには、まずアグリゲータースキーマがコンポーネントの定義済み出力と一致することを確認します。Movie_Id列とState列がアグリゲーターの出力に追加されていること、そして列が集約対象データを保持するために使用可能であることを確認します。これにはAverage_Ratingというラベルが付けられています。

この列は計算された平均であるため、小数点以下の桁数を考慮する必要があります。したがって、データ型はFloat、長さは5、精度は3となります。

データ統合ジョブ

正しく設定されていることを確認して、[OK]をクリックします。

これで、スキーマセットを使用して、アグリゲーターが平均評価を計算するように構成できます。

  1. Movie_IdStateでグループ化し、この操作では、Output列をAverage_Ratingに設定します。これは先ほど出力スキーマで確認した列です。
  2. 関数をavgに設定すると、Ratingフィールドが平均化されます。
  3. ターゲットソースは、すでにMySQLターゲットテーブルにマッピングされているので、ジョブの準備ができました。

タイトルを付けてフローを文書化しましょう。フローを選択して[Component]タブに移動し、[Show subjob title]を選択して、「Load Average Rating by State」と指定します。

最初のジョブを実行する

ジョブを実行しましょう。デザインパレットの[Run]タブに移動し、[Basic Run]を選択して開始します。これでスムーズに実行しました。

Studioで最初のジョブを構築する方法の詳細は、上記のビデオをご覧ください。次回は、プロセス(ジョブ)の実行、テスト、デバッグについて説明します。

| 最終更新日時: June 26th, 2019