可変フォーマット ファイルへのフラット データの書き出し

Spectrum™ Technology Platformデータフローでは、各レコードは同じフィールドを持ちます。ただし、可変フォーマット ファイルでは、すべてのレコードが同じフィールドを含むわけではありません。データフローのフラット データを可変フォーマット ファイルに書き出すには、データフロー内の各レコードを分割し、各レコードのフィールドを可変フォーマット ファイルで使用するレコード タイプに対応するリスト フィールドにグループ化します。リスト フィールドは、フィールドのコレクションです。例えば、フィールド FirstName、LastName、Gender、Address、および Phone は、AccountOwner というリスト フィールドにグループ化できます。

フラット データを可変フォーマット ファイルに書き出すには、Aggregator ステージを使用して、可変フォーマット ファイルに書き出すレコード タイプに対応するリスト フィールドにフィールドをグループ化します。これを行うには、次の手順を実行します。

  1. データフロー内の Write to Variable Format File ステージより上流の任意の場所に Aggregator ステージを配置します。
  2. Aggregator ステージをダブルクリックして、オプション ウィンドウを開きます。
  3. [グループ化方法] を選択し、[追加] をクリックします。
  4. [グループ化方法] フィールドで、関連データの識別に使用できる一意の識別子を含むフィールドを選択します。このフィールドの値は、フラット データ内のレコード間で一意でなければなりません。例えば、アカウント番号、社会保障番号、または電話番号などです。
    注: 選択したフィールドはソートされている必要があります。ソートされていない場合は、Sorter ステージを使用して、レコードをそのフィールドでソートします。
  5. [OK] をクリックします。
  6. [出力リスト] を選択し、[追加] をクリックします。

    各出力リストは、可変フォーマット ファイル内の 1 つのレコード タイプを表します。

  7. [新しいデータ タイプ] を選択し、[タイプ名] フィールドに、このデータ タイプに含める情報のタイプを指定します。これが可変フォーマット ファイル内のレコード タイプになります。例えば、このデータ タイプがアカウント トランザクションに関連するレコードを含む場合、タイプに "AccountTransaction" という名前を付けることができます。
  8. [名前] フィールドに、このフィールドに付与する名前を入力します。これは、[タイプ名] フィールドで指定した名前と同じ名前にすることができます。
  9. [OK] をクリックします。
  10. 作成したデータ タイプを選択し、[追加] をクリックします。
  11. [既存フィールド] オプションをオンのままにして、このデータ タイプに含めるいずれかのフィールドを選択し、[OK] をクリックします。これが可変フォーマット ファイル内のレコード タイプになることに注意してください。この操作を繰り返して、その他のフィールドをこのレコード タイプに追加します。
  12. 可変フォーマット ファイルに含めるレコード タイプごとに、追加の出力リストを作成します。完了したら、[OK] をクリックして Aggregator オプションを閉じます。

Aggregator ステージから出力されるフィールドが、可変フォーマット ファイル出力に含めるレコード タイプに対応するリスト フィールドにグループ化されるようになります。

例えば、次のフラット データがあるとします。

FIRSTNAME,LASTNAME,ADDRESS,ACCOUNTNUMBER,DATE_OPENED,TRANSACTION_NUMBER,TRANSACTION_DATE,AMOUNT
Joe,Smith,100 Main St,CHK12904567,12/2/2007,1000567,1/5/2012,323.12

このデータを、可変フォーマット ファイル内で次のように変換するものとします。

AccountOwner        Joe,Smith,100 Main St
AccountInformation  CHK12904567,12/2/2007
Transaction         1000567,1/5/2012,323.12

この処理を行うには、次のように設定された Aggregator ステージを作成します。