トランスフォーメーション > 階層ビルダートランスフォーメーション > 階層ビルダトランスフォーメーションの例
  

階層ビルダトランスフォーメーションの例

リレーショナルデータを階層データに変換し、そのデータをターゲットファイルに階層形式で書き込むとします。
階層ビルダトランスフォーメーションを使用してデータを変換するには、次の手順を実行します。
  1. 1階層スキーマを作成します。
  2. 2マッピングを作成します。
  3. 3階層ビルダトランスフォーメーションを設定します。
  4. 4ターゲットを設定します。
  5. 5マッピングを実行します。

手順1.階層スキーマの作成

スキーマファイルを使用して出力データの階層を定義する階層スキーマを設定する必要があります。
次の例は、使用するスキーマ階層を示しています。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.itemfield.com" targetNamespace="http://www.itemfield.com" elementFormDefault="qualified">
<xs:element name="Employees">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" minOccurs="0"/>
<xs:element name="Address" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Employee" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="EmployeeID" type="xs:string" minOccurs="0"/>
<xs:element name="Department" type="xs:string" minOccurs="0"/>
<xs:element name="Subdivision" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Building" type="xs:string" minOccurs="0"/>
<xs:element name="Room" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
次の例は、使用する1つ目の入力ファイルデータを示しています。
CompanyName,Address
First National Bank,874 Louis Road
Jackson Industry,13 Sydney Drive
次の例は、使用する2つ目の入力ファイルデータを示しています。
Name,EmployeeID,Department,Building,Room
First National Bank,122,Credit,6,1532
First National Bank,261,Credit,6,2251
First National Bank,431,Credit,6,5312
Jackson Industry,3875,Manufacture,C,673
Jackson Industry,2837,Manufacture,B,211
データ統合で、使用するスキーマ階層を持つ階層スキーマを作成します。

手順2.マッピングの作成

入力データを解析するには、マッピングで階層ビルダートランスフォーメーションを使用して階層入力のデータを変換します。
Mapping Designerで、2つのソースオブジェクトを追加します。これらのオブジェクトは、解析するデータファイルへのパスが格納されたフラットファイルです。次の図に、ソーストランスフォーメーションの1つを示します。
ソースオブジェクトの詳細には、接続、ソースのタイプ、入力ファイルが表示されます。

手順3.階層ビルダトランスフォーメーションの設定

階層ビルダートランスフォーメーションを追加し、NewHierarchyBuilderという名前を使用します。作成した階層スキーマを使用するようにこのトランスフォーメーションを設定します。
NewHierarchyBuilderトランスフォーメーションにソースオブジェクトを接続します。受信データをトランスフォーメーションの各フィールドにマッピングするには、NewHierarchyBuilderトランスフォーメーションを選択します。[受信フィールド]タブで、フィールド名の競合がないことを確認します。次の図に、入力フィールド選択を示します。
[フィールドマッピング]タブに、構造パーサー入力フィールドにマッピングできる受信フィールドが表示されます。
リレーショナルフィールドを階層出力にマッピングするには、[フィールドマッピング]タブでプライマリキーおよび外部キーを選択します。次に、階層出力のスキーマ要素にリンクするリレーショナルフィールドを選択します。
次の図に、フィールドマッピング選択を示します。

手順4.ターゲットを設定します

フィールドのファイルターゲットオブジェクトを追加します。
次の画像に、最終のマッピングを示します。
マッピングに、SourceLogFileソースからLogParser構造パーサートランスフォーメーションへのデータフローが表示されます。構造パーサートランスフォーメーションはターゲットTargetFileにリンクされています。

手順5.マッピングを実行します

マッピングを実行して、階層形式のデータをターゲットトランスフォーメーションに書き込みます。
次の例は、階層出力を示しています。
<Employees>
<Name>First National Bank</Name>
<Address>874 Louis Road</Address>
<Employee>
<EmployeeID>122</EmployeeID>
<Department>Credit</Department>
<Subdivision>
<Building>6</Building>
<Room>1532</Room>
</Subdivision>
</Employee>
<Employee>
<EmployeeID>261</EmployeeID>
<Department>Credit</Department>
<Subdivision>
<Building>6</Building>
<Room>2251</Room>
</Subdivision>
</Employee>
<Employee>
<EmployeeID>431</EmployeeID>
<Department>Credit</Department>
<Subdivision>
<Building>6</Building>
<Room>5312</Room>
</Subdivision>
</Employee>
</Employees>
<Employees>
<Name>Jackson Industry</Name>
<Address>13 Sydney Drive</Address>
<Employee>
<EmployeeID>3875</EmployeeID>
<Department>Manufacture</Department>
<Subdivision>
<Building>C</Building>
<Room>673</Room>
</Subdivision>
</Employee>
<Employee>
<EmployeeID>2837</EmployeeID>
<Department>Manufacture</Department>
<Subdivision>
<Building>B</Building>
<Room>211</Room>
</Subdivision>
</Employee>
</Employees>