Javaトランスフォーメーションのフィールド Javaトランスフォーメーションには受信フィールドと出力フィールドがあります。受信フィールドと出力フィールドは、[Java] タブで定義しているJavaコードスニペットの変数として使用します。
受信フィールドは
[受信フィールド] タブに表示されます。デフォルトでは、Javaトランスフォーメーションはアップストリームトランスフォーメーションからすべての受信フィールドを継承します。すべての受信フィールドを使用する必要がない場合は、フィールドルールを定義して、特定のフィールドを含めたり除外したりすることができます。フィールドルールの詳細については、
フィールドルール を参照してください。
[出力フィールド] タブで出力フィールドを追加します。ダウンストリームトランスフォーメーションに渡す出力データの出力フィールドを追加します。フィールドを追加するには、[フィールドの追加] をクリックして、フィールド名、データ型、精度、スケール、および説明(オプション)を入力します。説明には最大4000文字を含めることができます。Javaエディタの[出力] タブで[新しいフィールドの作成] をクリックして、出力フィールドを作成することもできます。
Javaトランスフォーメーションは、以下のフィールドデータ型に基づいて出力フィールドの値を初期化します。
• プリミティブデータ型トランスフォーメーションは、フィールド変数の値を0に初期化します。• 複合データ型トランスフォーメーションはフィールド変数をNULLに初期化します。データ型の変換 Javaトランスフォーメーションは、Javaトランスフォーメーションのフィールドタイプに基づいて、データ統合 トランスフォーメーションのデータ型をJavaデータ型に変換します。
Javaトランスフォーメーションは、入力行を読み込むと、入力フィールドデータ型をJavaデータ型に変換します。Javaトランスフォーメーションは、出力行を書き込むと、Javaデータ型を出力フィールドデータ型に変換します。
例えば、Javaトランスフォーメーションのintegerデータ型の入力フィールドに対しては、以下の処理が行われます。
1 Javaトランスフォーメーションは、入力フィールドのintegerデータ型をJavaプリミティブデータ型intに変換します。2 このトランスフォーメーションで、トランスフォーメーションは入力フィールドの値をJavaプリミティブデータ型intとして扱います。3 トランスフォーメーションは、出力行を生成すると、Javaプリミティブデータ型intをintegerデータ型に変換します。以下の表に、Javaトランスフォーメーションがデータ統合 トランスフォーメーションのデータ型をJavaプリミティブデータ型および複合データ型にマッピングする方法を示します。
トランスフォーメーションデータ型
Javaデータ型
bigint
long
binary
byte[]
date/time
BigDecimal
long(1970/01/01 00:00:00.000 GMT以降のミリ秒数)
10進数
ダブル
BigDecimal
double
double
integer
整数型
string
ストリング
text
String
入力Java、String、byte[]、およびBigDecimalデータ型は複合データ型であり、double、intおよびlongデータ型はプリミティブデータ型です。
Javaトランスフォーメーションは、プリミティブデータ型のNULL値をゼロに設定します。Javaエディタの[入力行に達したとき]セクションでは、isNull APIメソッドおよびsetNull APIメソッドを使用して、入力フィールドのNULL値を出力フィールドのNULL値に設定できます。例については、
setNull を参照してください。
Javaトランスフォーメーションを設定するときに、date/timeデータ型をBigDecimalまたはlongに変換できます。BigDecimalの精度はナノ秒で、longの精度はミリ秒です。詳細については、
Javaトランスフォーメーションプロパティの設定 を参照してください。
高精度が有効な場合は、10進データ型はBigDecimalにマッピングされます。BigDecimalは、+ 演算子などの一部の演算子と一緒には使用できません。Javaコードに10進データ型フィールドを使用する式が含まれており、このフィールドでこの演算子のいずれかが使用されていると、Javaコードのコンパイルは失敗します。
ソート条件 詳細モードでは、ソート条件を設定してソートフィールドおよびソート順を指定できます。マッピング タスクは、Javaコードの実行前にソート条件を使用してデータをソートします。
ソートフィールドとは、ソート基準として使用する1つまたは複数のフィールドのことです。ソート順を設定して、データを昇順または降順にソートします。
パーティションにグループ化されているデータのソート条件を設定する場合、マッピング タスクは各パーティションでデータをソートします。
複数のソート条件を指定する場合、マッピング タスクは各条件をシーケンシャルにソートします。マッピング タスクは、連続した各ソート条件を前のソート条件の2番目のソートとして扱います。ソート条件の順序は設定が可能です。
ソート条件のパラメータを使用する場合、マッピングの実行時またはマッピング タスクの設定時にソートフィールドとソート順を定義します。
グループ化フィールド 詳細モードでは、Group Byフィールドを使用して、Javaコードの実行前にデータをパーティションにグループ化する方法を定義できます。
Group Byフィールドを設定すると、マッピング タスクにより、同じデータが含まれる行がパーティションにグループ化されます。その後、トランスフォーメーションの各パーティションについてJavaコードが実行されます。例えば、入力行の動作は各パーティションおよびパーティション内の各行について処理され、データの終わりに達したときの動作はパーティション内のすべての行を処理した後に各パーティションについて処理されます。
複数のGroup Byフィールドを選択すると、タスクはGroup Byフィールドのデータの一意の組み合わせごとにパーティションを作成します。
Group Byフィールドを設定しない場合、Javaコードはデータのデフォルトのパーティション化スキームに基づいて実行されます。
Group Byフィールドのパラメータを使用する場合、マッピングの実行時またはマッピング タスクの設定時にGroup Byフィールドを定義します。