メイン コンテンツをスキップする 補完的コンテンツへスキップ

シナリオを実装するジョブをデザイン

このシナリオは次の4つのステップで構成されています:
  • ジョブの作成、入力ファイルパラメーターの設定、入力ファイルの読み取り
  • データのマッピングと変換
  • 参照ファイルパラメーターの定義、tMapコンポーネントを使用した関連マッピング、内部結合モードの選択
  • MySQLテーブルへの出力のリダイレクト

ステップ1: ジョブを作成、入力を定義、ファイルを読み取り

Procedure

  1. Talend Studioを起動してローカルプロジェクトを作成するか、Talend Studioの初回起動時は、デモプロジェクトをインポートします。
  2. ジョブを作成するには、[Repository] (リポジトリー)ツリービューで[Job Designs] (ジョブデザイン)を右クリックし、[Create Job] (ジョブを作成) を選択します。
  3. 表示されるダイアログボックスでは、最初のフィールド[Name] (名前)のみが必須です。California1と入力し、[Finish] (終了)をクリックします。

    空のジョブがメインウィンドウに表示され、機能別コンポーネントの[Palette] (パレット)が(デフォルトではTalend Studioの右側に)現れ、12のコンポーネントファミリー(Databases (データベース)、Files (ファイル)Internet (インターネット)Data Quality (データクオリティ)など)が表示されます。何百ものコンポーネントが利用可能です。

  4. California_Clientsファイルを読み取るために、tFileInputDelimitedコンポーネントが使われます。このコンポーネントは、[Palette] (パレット)[File] (ファイル) > [Input] (入力)グループにあります。このコンポーネントをクリックし、さらにデザインワークスペースの左側をクリックして、それをデザインエリアに配置します。
  5. Metadata Managerを使って、tFileInputDelimitedコンポーネントの読み取りプロパティ(ファイルパス、カラムデ区切り、エンコーディングなど)を定義します。
    このツールにはパラメーター設定用のウィザードが数多く備わっています。これらのプロパティは保存され、将来のジョブでもワンクリックで再利用できるようになります。
  6. 入力ファイルは区切り付きフラットファイルであるため、[Repository] (リポジトリー)ツリービューのMetadataフォルダーを右クリックして、[File Delimited] (区切り付きファイル)を選択します。次に、[Create file delimited] (区切り付きファイルの作成)を選択します。

    区切り付きファイル専用のウィザードが開き、以下の内容が表示されます。

    • ステップ1では、[Name] (名前)フィールドのみが必須です。California_clientsと入力し、次のステップに進みます。

    • ステップ2では、[Browse...] (参照)ボタンをクリックし、入力ファイル(California_Clients.csv)を選択します。画面下部の[Preview] (プレビュー)にファイルの抜粋が表示されるので、ファイルの内容をすぐに確認できます。[Next] (次へ)をクリックします。

      この例では、California_Clients.csvファイルはC:/talend/Inputの下に保存されています。

    • ステップ3では、ファイルパラメーター(ファイルのエンコーディング、行とカラムの区切りなど)を定義します。入力ファイルは標準的なものであるため、大半はデフォルト値で問題ありません。ファイルの最初の行は、カラム名が含まれているヘッダーです。そのようなカラム名を自動的に取得するためには、[Set heading row as column names] (先頭行をカラム名に設定) > [Refresh Preview] (プレビューを更新) > [Next] (次へ)とクリックします。

    • ステップ4では、ファイルの各カラムを設定します。ウィザードには、ファイルの最初のデータ行に基づいて、カラムの型と長さを推定するアルゴリズムが組み込まれています。提示されたデータ記述(Talend Studioではスキーマと呼ばれます)はいつでも変更できます。このシナリオではそのまま使用されます。

    以上の4ステップが完了すると、California_clientsメタデータが作成されます。

  7. 先にデザインワークスペースにドロップしたtFileInputDelimitedを選択し、ウィンドウ下部に位置する[Component] (コンポーネント)ビューを選択します。
  8. 縦に並んだタブの[Basic settings] (基本設定)を選択します。このタブには、コンポーネントを動作させるために必要なすべての技術的なプロパティが含まれています。
  9. リストで、[Property Type] (プロパティタイプ)として[Repository] (リポジトリー)を選択します。新しいフィールドが表示されます。[Repository] (リポジトリー)[...]ボタンをクリックし、関連するメタデータエントリーであるCalifornia_clientsをリストから選択します。

    tFileInputDelimitedコンポーネントのパラメーターがすべて自動的に入力されます。

    コンポーネントの基本設定のスクリーンショット。
  10. tLogRowコンポーネントを([Logs & Errors] (ログ&エラー)グループから)追加します。両方のコンポーネントをリンクするため、入力コンポーネントを右クリックして、Row > Mainを選択します。次に、出力コンポーネントのtLogRowをクリックします。
  11. 下部のパネルで[Run] (実行)タブを選択します。
  12. [Run] (実行)ビューの縦に並んだタブの[Advanced Settings] (詳細設定)[Statistics] (統計)チェックボックスをオンにして統計を有効にしてから、[Basic Run] (基本実行)タブで[Run] (実行)をクリックしてジョブを実行します。
    ジョブの実行に成功した後のコンソールのスクリーンショット。

    入力ファイルのコンテンツがコンソールに出力されます。

ステップ2: マッピングおよび変換

このステップでは、tMapコンポーネントを使って入力ファイルからのデータを変換します。

tMapコンポーネントが処理できる操作は次のとおりです。

  • 複数の入力および出力
  • 参照の検索(単純、直積集合、前方一致、後方一致など)
  • 結合(内部、外部)
  • 変換
  • リジェクト
  • その他

Procedure

  1. リンクを右クリックし、[Delete] (削除)オプションを選択して、2つのコンポーネント間のリンクを削除します。次に、ProcessingコンポーネントグループのtMapをその間に配置し、その後に入力コンポーネントをtMapにリンクさせます。
  2. [Row] (行) > [Main] (メイン)リンクを使い、tFileInputDelimitedコンポーネントをtMapコンポーネントに接続させます。
  3. tMapコンポーネントを右クリックし、[Row] (行) > [*New Output* (Main)] (*新規出力* (メイン))を選択して、tLogRowコンポーネントをクリックします。ダイアログボックスにout1と入力して、リンクを実装します。
    論理的には(スキーマのバックプロパゲーションのため)ここでメッセージボックスが表示されますが、[No] (いいえ)をクリックして無視します。
  4. 次にtMapをダブルクリックし、そのインターフェイスにアクセスします。
    左側には、入力ファイル(row1)のスキーマ(説明)が表示されます。右側には、出力スキーマ(out1)が表示されます。
  5. [Firstname] (名)カラムと[Lastname] (姓)カラムを、画面下部に示された[Name] (名前)カラムに配置します。次に、[Address] (住所)カラムと[City] (都市)カラムを各行に配置します。
    カラムのマッピングの結果。
  6. カラムで次の変換を実行します:
    • [Name] (名前)カラムの式をrow1.Firstname + " " + row1.LastNameに変更します。これによって、FirstnameカラムとLastnameカラムが連結します。
    • [Address] (住所)カラムの式をrow1.Address.toUpperCase()に変更します。これによって、住所テキストが大文字に変換されます。
  7. out1テーブルから[Lastname] (姓)カラムを削除し、残りのカラムの長さを増やします。それには、tMapエディターの下部にある[Schema Editor] (スキーマエディター)に移動し、以下のようにします:
    [Schema Editor] (スキーマエディター)のスクリーンショット。
    1. スキーマから削除するカラムを選択し、十字アイコンをクリックします。

    2. 長さのサイズを増やす必要のあるカラムを選択します。

    3. [Length] (長さ)カラムに、長さサイズを入力します。この例では、残りの各カラムの長さを40に変更します。

    情報メモNote: 顧客の名と姓が連結されるため、フルネームのサイズに適合するように、名前カラムの長さを伸ばす必要があります。[City] (都市)カラムでは変換が行われません。
  8. [OK]をクリックして変更を確認し、マップエディターインターフェイスを閉じます。
  9. ジョブを実行します。
    ジョブの実行に成功した後のコンソールのスクリーンショット。

Results

住所は大文字で表示され、名と姓が同じカラムに一緒に表示されています。

ステップ3: 参照ファイルを定義、再マッピング、内部結合モードを選択

Procedure

  1. ウィザードを使い、ステップ1: ジョブの作成、入力定義、ファイルの読み取りステップ6に説明されている方法で、LosAngelesandOrangeCounties.txtファイルに対応するメタデータを定義します。

    ウィザードのステップ1で、このメタデータエントリーにLA_Orange_citiesという名前を付けます。

  2. 新しく作成されたこのメタデータをデザインエリアにドロップすると、そのメタデータをポイントする読み取りコンポーネントが自動的に作成されます。
  3. このコンポーネントをtMapコンポーネントにリンクさせます。
    Designerでのジョブのスクリーンショット。
  4. tMapコンポーネントを再度ダブルクリックして、このコンポーネントのインターフェイスを開きます。ウィンドウ左側のメイン入力(row1)の下に、ロサンゼルス郡とオレンジ郡のファイルに対応する参照入力テーブル(row2)が表示されます。
  5. メインフローと参照フローの間の結合を定義します。

    2つのファイルを結合させるためには、最初の入力テーブルの[City] (都市)カラムを参照テーブルの[City] (都市)カラムに配置します。紫色のリンクが表示され、この結合が実体化されます。

    tMapインターフェイスで作成した結合のスクリーンショット。
  6. 右側のセクション(row2)のCountyカラムを、同じく右側にあるセクション(out1)の[County] (国)カラムの[Expression] (式)フィールドに配置します。
    マッピングのスクリーンショット。
  7. OKをクリックして変更を確定し、新しいジョブを実行します。

    次のような出力がコンソールに表示されます。

    ジョブの実行に成功した後のコンソールのスクリーンショット。

    一部のレコードの最後のカラムにはLos AngelesOrangeが入力され、他のレコードは空白になります。これは、デフォルトで、tMapが左側外部結合モードになっているからです。データをフィルタリングしてtMapによって一致が見つかった行のみ表示する場合は、tMapを再度開き、[tMap settings] (tMap設定)ボタンをクリックして、参照テーブル(row2)の[Join Model] (結合モデル)リストで、[Inner Join] (内部結合)を選択します。

ステップ4: MySQLテーブルに出力

この部分では、MySQLテーブルへの出力フローを指示します。

Procedure

  1. MySQLデータベースへの接続を説明するメタデータを作成します。デモプロジェクトが適切にインポートされたものと仮定し、[Repository] (リポジトリー)ビューでMetadata > MySQLノードを展開して、DemoMySQLをダブルクリックします。メタデータウィザードが開きます。
  2. ウィザードのステップ2で、関連する接続パラメーターを入力します。[Check] (チェック)ボタンをクリックし、この接続の有効性を確認します。最後に変更を確認し、[Finish] (終了)をクリックします。
  3. Ctrlキーを押したまま、このメタデータをデザインワークスペースの右側に配置します。tMysqlOutputコンポーネントが自動的に作成されます。
  4. tLogRowコンポーネントをジョブから削除します。
  5. tMapからのout1出力フローを、新しいコンポーネントのtMysqlOutputに再接続します。
    Designerでのジョブのスクリーンショット。
  6. tMysqlOutputコンポーネントの[Basic settings] (基本設定)タブで、次の操作を行います。
    1. [Table] (テーブル)フィールドにLA_Orange_Clientsと入力し、オンザフライで作成されるターゲットテーブルに名前を付けます。
    2. [Action on table] (テーブルでのアクション)フィールドで[Drop table if exists and create] (テーブルが存在する場合、削除してから作成)オプションを選択します。
    3. 必要に応じて、[Edit Schema] (スキーマを編集)をクリックし、[Reset DB type] (DBタイプのリセット)ボタン(ツールバーのDBボタン)をクリックして、DBタイプを自動的に入力します。
  7. ジョブを再度実行します。

Results

ターゲットテーブルが自動的に作成され、データが入力されます。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。