トランスフォーメーション > Javaトランスフォーメーション > Javaトランスフォーメーションのフィールド
  

Javaトランスフォーメーションのフィールド

Javaトランスフォーメーションには受信フィールドと出力フィールドがあります。受信フィールドと出力フィールドは、[Java]タブで定義しているJavaコードスニペットの変数として使用します。
受信フィールドは[受信フィールド]タブに表示されます。デフォルトでは、Javaトランスフォーメーションはアップストリームトランスフォーメーションからすべての受信フィールドを継承します。すべての受信フィールドを使用する必要がない場合は、フィールドルールを定義して、特定のフィールドを含めたり除外したりすることができます。フィールドルールの詳細については、フィールドルールを参照してください。
[出力フィールド]タブで出力フィールドを追加します。ダウンストリームトランスフォーメーションに渡す出力データの出力フィールドを追加します。フィールドを追加するには、[フィールドの追加]をクリックして、フィールド名、データ型、精度、スケール、および説明(オプション)を入力します。説明には最大4000文字を含めることができます。Javaエディタの[出力]タブで[新しいフィールドの作成]をクリックして、出力フィールドを作成することもできます。
Javaトランスフォーメーションは、以下のフィールドデータ型に基づいて出力フィールドの値を初期化します。

データ型の変換

Javaトランスフォーメーションは、Javaトランスフォーメーションのフィールドタイプに基づいて、データ統合トランスフォーメーションのデータ型をJavaデータ型に変換します。
Javaトランスフォーメーションは、入力行を読み込むと、入力フィールドデータ型をJavaデータ型に変換します。Javaトランスフォーメーションは、出力行を書き込むと、Javaデータ型を出力フィールドデータ型に変換します。
例えば、Javaトランスフォーメーションのintegerデータ型の入力フィールドに対しては、以下の処理が行われます。
  1. 1Javaトランスフォーメーションは、入力フィールドのintegerデータ型をJavaプリミティブデータ型intに変換します。
  2. 2このトランスフォーメーションで、トランスフォーメーションは入力フィールドの値をJavaプリミティブデータ型intとして扱います。
  3. 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フィールドを定義します。