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

補足データを結合するためにルックアップフローを起動

このシナリオでは、前のシナリオに基づいて、ルックアップフローを使用してXMLファイルUSState.xml内の目的のデータをメインフローに結合する方法を示します。ルックアップファイルUSState.xmlから処理コンポーネントtXMLMapにデータをロードするために、もう1つのtFileInputXMLコンポーネントがジョブに追加されます。

XMLファイルUSState.xmlのコンテンツは以下のとおりです。

<?xml version="1.0" encoding="ISO-8859-15"?>
      <USStates>
      <States>
      <idState>1</idState>
      <LabelState>Alabama</LabelState>
      </States> 
      <States>
      <idState>2</idState>
      <LabelState>Connecticut</LabelState>
      </States>
      <States>
      <idState>3</idState>
      <LabelState>Ohio</LabelState>
      </States>  
      <States>
      <idState>4</idState>
      <LabelState>Wyoming</LabelState>
      </States>
      <States>
      <idState>5</idState>
      <LabelState>Hawaii</LabelState>
      </States>
      </USStates>

別の入力コンポーネントを追加してリンク

Procedure

  1. Talend Studioで、前のシナリオで使用されているジョブを開いてデザインワークスペースに表示します。
  2. 名前をデザインワークスペースに入力するか、または[Palette] (パレット)からドロップすることにより、別のtFileInputXMLコンポーネントをジョブに追加します。コンポーネントUSStatesに機能がわかるような名前を付けます。
  3. [Row] (行) > [Main] (メイン)接続を使って、USStatesという名前のtFileInputXMLコンポーネントをtXMLMapコンポーネントにリンクさせます。この接続は自動的にルックアップフローに変わります。

入力フローをルックアップ用に設定

Procedure

  1. USStatesという名前のtFileInputXMLコンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
  2. [Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックし、[Schema] (スキーマ)ダイアログボックスで[Document] (ドキュメント)タイプのカラムUSStateを1つ追加することで、スキーマを定義します。
  3. [OK]をクリックして変更を有効にし、ダイアログボックスを閉じます。[Mapping] (マッピング)テーブルに1行が自動的に追加されます。
  4. [File name/Stream] (ファイル名/ストリーム)フィールドで、補足データを持つXMLソースファイルへのパスを参照するか、二重引用符で囲んで入力します。このシナリオではE:/USState.xmlです。
  5. [Loop XPath query] (ループXPathクエリー)フィールドに、XPath式を二重引用符で囲んで入力して、ループの基になるノードを指定します。このシナリオでは/です。これは、ルッククエリーをルートから実行することを意味します。
  6. [Mapping] (マッピング)テーブルのXPath queryカラムで、クエリーするフィールドを二重引用符で囲んで入力します。このシナリオでは.です。これは、現在のノード(ルート)の下のすべてのフィールドが抽出されることを意味します。
  7. [Mapping] (マッピング)テーブルの[Get Nodes] (ノードを取得)カラムで、チェックボックスをオンにします。これにより、 [Document] (ドキュメント)タイプデータのXMLストラクチャーが取得されます。

ルックアップでXML変換を設定する

Procedure

  1. tXMLMapコンポーネントをダブルクリックして、[Map Editor] (マップエディター)を開きます。
    入力エリアには定義済みの入力テーブルが既に入力されており、一番上のテーブルがメインの入力テーブルです。
  2. row2入力テーブルでUSStateノードを右クリックし、コンテキストメニューから[Import From File] (ファイルからインポート)を選択します。ポップアップダイアログボックスでXMLソースファイルを参照して、tXMLMapが受信するデータが使うXMLツリーストラクチャーをインポートします。このシナリオでは、XMLソースファイルはUSState.xmlで、これはUSStatesという名前のtFileInputXMLへの入力データです。
  3. インポートしたXMLツリーでStatesノードを右クリックし、コンテキストメニューから[As loop element] (ループエレメントとして)を選択して、ループエレメントとして設定します。
  4. row1メイン入力テーブルでidStateノードをクリックし、row2ルックアップ入力テーブルのidStateノードの行のExp.keyカラムにドロップします。これにより、idStateデータの2つの入力テーブル間に結合が作成され、メインフローのidStateノードがルックアップキーを提供します。
  5. row2ルックアップ入力テーブルでLabelStateノードをクリックし、Customer出力テーブルのcustomerノードにドロップします。ダイアログボックスが表示されます。
  6. ポップアップダイアログボックスで[Create as sub-element of target node] (ターゲットノードのサブエレメントとして作成)を選択し、[OK]をクリックします。新しいLabelStateサブエレメントが出力XMLツリーに追加され、ルックアップ入力テーブルのLabelStateノードにマッピングされます。
  7. [OK]をクリックしてマッピングを確定し、[Map Editor] (マップエディター)を閉じます。

ジョブを開始

Procedure

  1. Ctrl + Sを押してジョブを保存します。
  2. [F6]を押してジョブを実行します。
    上記のように、メイン入力ファイルの州IDと一致する州IDを持つルックアップファイルの州名がデータフローに追加され、結合された情報がコンソールに表示されます。

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

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