RecordTranspose - レコードの縦横変換

レコードの行と列を入れ替えます。

■ストリーム情報

入力フォーマットRecord,CSV
接続数1
出力フォーマットRecord,CSV
説明 入力のレコードの行と列を入れ替えたストリームを出力します。

■トランザクション処理

コミット何もしません。
ロールバック何もしません。

■エラー処理

タイプパラメーターエラー処理フロー
へのストリーム
エラー
コード
説明
汎用 なし コンポーネントの入力ストリーム1入力ストリームからレコードを取得できなかった場合
レコードが無い なし コンポーネントの入力ストリーム2入力ストリームのレコードが0件の場合

■出力フィールドのデータ型について

例えば次のように、「番号」フィールドのデータ型がIntegerで、「名前」フィールドのデータ型がStringであるストリームを縦横変換したとします。 すると、変換後の出力ストリームは1行目がIntegerの値となり2行目がStringの値となります。

番号名前
1名前1
2名前2
3名前3
field1field2field3
123
名前1名前2名前3

このように出力ストリームの行ごとにデータ型が異なってしまう場合には、出力ストリームのフィールド定義でデータ型をすべて String型にする必要があります。

■入力行数と出力フィールド数の関係について

入力ストリームの行数が事前に分からない場合には、出力ストリームのフィールドが何フィールドになるか分かりませんので、 正確なフィールド定義を行うことができません。このような場合は、想定される最大の行数分のフィールド定義を行います。

もしも入力の行数が定義したフィールド数に満たなかった場合は、余ったフィールドの値は設定されずnullとなります。 逆に入力の行数が定義したフィールド数を超えてしまった場合は、コンポーネント内部で出力フィールドの定義を拡張して 「"field" + "行番号"」というフィールド名で値を保持します。あくまでも内部でフィールド定義を拡張しているだけですので、 直後のMapperコンポーネントでは拡張されたフィールドを扱うことはできません。 しかし、変換後のストリームをFilePutコンポーネントでCSVファイルなどに保存した場合は 拡張されたフィールドの値も保存されます。さらに、VelocityコンポーネントBranchStartコンポーネントなどの直接フィールドの値を操作することができる コンポーネントでは拡張されたフィールドの値を扱うことができます。