階層出力ストラクチャーエディター - 8.0

Talend Data Mapperユーザーガイド

Version
8.0
Language
日本語
Product
Talend Big Data Platform
Talend Data Fabric
Talend Data Management Platform
Talend Data Services Platform
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Talend Studio
Content
ジョブデザインと開発 > ジョブデザイン
Last publication date
2024-03-28
フラットマッピングから階層マッピングへの変換機能によって、階層出力ストラクチャーを定義できます。

以下のテーブルの例では、フラットストラクチャーから階層マップストラクチャーを作成で提供されたCSVサンプルを入力として使用します。

機能 説明

[Add GroupBy] (GroupByを追加)

選択されたGroupByエレメントの値に基づいて、子エレメントをグループの集合にまとめます。

選択されたエレメントが1つだけの場合は、そのエレメントに対応するすべての一意値が含まれている配列が作成されます。

エレメントが複数選択されている場合は、選択項目にある最初の子エレメントが自動的にGroupByエレメントとして使用されます。これは、子エレメントを右クリックして[Select as GroupBy element] (GroupByエレメントとして選択)をクリックすれば変更できます。

  • Genderエレメントを選択して[Add GroupBy] (GroupByを追加)をクリックした場合、出力は次のようになります。
    "Gender": [
      "female",
      "male"
    ]
  • GenderエレメントとNameエレメントを選択した場合、出力は次のようになります。
    "Oscars": [
      {
        "Gender": "female",
        "Name": "Jessica Tandy"
      },
      {
        "Gender": "male",
        "Name": "Daniel Day-Lewis"
      }
    ]

[Add Array] (配列を追加)

入力rowエレメントが存在する場合はそのエレメントで、存在しない場合は入力rootエレメントでループするエレメントのコレクションを作成します。

選択されたエレメントが1つだけの場合は、そのエレメントの値が含まれているプリミティブ配列が作成されます。エレメントを複数選択した場合は、レコードの配列が作成されます。

GroupBy内のエレメントでこの機能が使われる場合は、グループを作成できます。

  • Movieエレメントを選択して[Add Array] (配列を追加)をクリックした場合、配列は次のようになります。
    "Movie": [
      "Driving Miss Daisy",
      "Misery",
      "The Silence of the Lambs"
    ]
  • MovieエレメントとNameエレメントを選択した場合、配列は次のようになります。
    "Movies": [
      {
        "Name": "Jessica Tandy",
        "Movie": "Driving Miss Daisy"
      },
      {
        "Name": "Kathy Bates",
        "Movie": "Misery"
      }
    ]

[Add Record] (レコードを追加)

選択されたエレメントからレコードを作成します。

MovieエレメントとYearエレメントを選択した場合、レコードは次のようになります。
"Movie_record": {
  "Year": "1990",
  "Movie": " Driving Miss Daisy"
}

[Convert GroupBy/Array Item Type] (GroupBy/配列アイテムタイプを変換)

配列またはグループの集合をプリミティブアイテムタイプからレコードアイテムタイプに(またはその逆に)変更します。
注: このオプションは、レコードに単一のエレメントが含まれている場合にのみレコードアイテムで使用できます。
Movieエレメントから配列を作成して[Convert GroupBy/Array Item Type] (GroupBy/配列アイテムタイプを変換)をクリックした場合、配列は次のようになります。
"Movie_array": [
  {
    "Movie": "Driving Miss Daisy"
  },
  {
    "Movie": "Misery"
  },
  {
    "Movie": "The Silence of the Lambs"
  }
]

[Convert to Array] (配列に変換)

グループの集合を配列に変換します。

Gender別にグループ化されたGenderエレメントとNameエレメントが含まれているグループを配列に変換すると、次のようになります。
"Gender_array": [
  {
    "Gender": "female",  
    "Name": " Jessica Tandy"
  },
  {
    "Gender": "female",
    "Name": " Kathy Bates"
  },
  {
    "Gender": "male",
    "Name": " Daniel Day-Lewis"
  },    
  {
    "Gender": "male",
    "Name": " Jeremy Irons"
  }
]

[Convert to GroupBy] (GroupByに変換)

配列をグループに変換します。

デフォルトでは、配列の最初の子エレメントが自動的にGroupByエレメントとして選択されます。これは、子エレメントを右クリックして[Select as GroupBy element] (GroupByエレメントとして選択)をクリックすれば変更できます。

また、rootエレメントをグループの集合に変換することも可能です。

rootエレメントをグループに変換し、GroupByエレメントとしてYearを選択した場合、出力は次のようになります。
[{
    "row": [
        {
            "Index": "1",
            "Gender": "female",
            "Year": "1990",
            "Age": "80",
            "Name": " Jessica Tandy",
            "Movie": " Driving Miss Daisy"
        },
        {
            "Index": "28",
            "Gender": "male",
            "Year": "1990",
            "Age": "32",
            "Name": " Daniel Day-Lewis",
            "Movie": " My Left Foot"
        }
    ]
}]
ヒント: ドラッグ&ドロップでエレメントを移動させたり、コピー&ペーストで出力ストラクチャー内のエレメントを複製したりできます。問題が発生しないよう、エレメントを追加したり複製したりする時は、エレメント名を必ず一意にしてください。