結合処理

オペレーション名

結合

機能概要

二つの入力データを結合します。

データモデル

本コンポーネントのデータモデルはテーブルモデル型です。

= 備考 =

入出力のスキーマについては、「テーブルモデル型 」を参照してください。

プロパティ

基本設定

項目名

必須/省略可

変数の使用

説明

備考

名前

必須

使用不可

スクリプトキャンバス上での名前を入力します。

 

入力データ(LEFT)

必須

使用不可

スクリプトキャンバス上にあるコンポーネントを選択します。

 

入力データ(RIGHT)

必須

使用不可

スクリプトキャンバス上にあるコンポーネントを選択します。

 

必須設定

項目名

必須/省略可

変数の使用

説明

備考

処理種別

必須

使用不可

処理の種別を選択します。

[INNER JOIN]

(デフォルト)

[LEFT OUTER JOIN]
[RIGHT OUTER JOIN]

結合キー設定

必須

-

結合キーとなる列を指定します。

各列は以下のボタンで操作することができます。

[追加]

キーを追加します。

[削除]

キーを削除します。

  • キーとなる列を複数指定した場合は、キーとなる列の値を比較してすべて一致したデータを結合します。

結合キー設定/入力データ(LEFT)

必須

使用不可

キーとなる[入力データ(LEFT)]の列名を選択します。

  • 列名の後ろに順序を表すインデックスを表示します。

  • [入力データ(LEFT)]の値を選択・変更した場合、列名は更新されます。

結合キー設定/入力データ(RIGHT)

必須

使用不可

キーとなる[入力データ(RIGHT)]の列名を選択します。

  • 列名の後ろに順序を表すインデックスを表示します。

  • [入力データ(RIGHT)]の値を選択・変更した場合、列名は更新されます。

出力設定

項目名

必須/省略可

変数の使用

説明

備考

出力を手動で設定

省略可

使用不可

出力対象となる列を手動で設定するかどうかを選択します。

[チェックあり]

出力対象を手動で設定します。

[チェックなし]

(デフォルト)

指定済みのプロパティ項目の内容に応じて、出力対象を自動的に設定します。

  • チェックを入れない場合、出力対象は以下の順序になります。

    1. [結合キー設定]の設定順序

    2. [入力データ(LEFT)]の入力スキーマの順序([結合キー設定]で指定した列を除く)

    3. [入力データ(RIGHT)]の入力スキーマの順序([結合キー設定]で指定した列を除く)

出力対象設定

省略可

-

出力対象となる列を指定します。

各列は以下のボタンで操作することができます。

[上へ]

出力対象の出力順を1列分上に移動します。

[下へ]

出力対象の出力順を1列分下に移動します。

[追加]

出力対象を追加します。

[削除]

出力対象を削除します。

  • [出力を手動で設定]にチェックを入れた場合、有効になります。

出力対象設定/データ元

必須

使用不可

出力対象となる列のデータ元を選択します。

[結合キー(LEFT/RIGHT)]
[入力データ(LEFT)]
[入力データ(RIGHT)]

 

出力対象設定/列名

必須

使用不可

出力対象となる列の列名を選択します。

[出力対象/データ元]に指定した値に応じた列名が選択肢として表示されます。

[<入力データ(LEFT)の列名>/<入力データ(RIGHT)の列名>]

[結合キー(LEFT/RIGHT)]を選択した場合に表示されます。

[<入力データ(LEFT)の列名>]

[入力データ(LEFT)]を選択した場合に表示されます。

[<入力データ(RIGHT)の列名>]

[入力データ(RIGHT)]を選択した場合に表示されます。

  • 列名の後ろに順序を表すインデックスを表示します。

  • [出力対象/データ元]の値を選択・変更した場合、列名は更新されます。

  • [結合キー設定]で指定した列を選択したい場合、[出力対象/データ元][結合キー(LEFT/RIGHT)]を選択してください。

コメント

項目名

必須/省略可

変数の使用

説明

備考

コメント

省略可

使用不可

このコネクターの簡単な説明を記述することができます。

 

スキーマ

入力スキーマ

入力元コンポーネントのスキーマと同じです。

出力スキーマ

[出力設定]の設定により、カラム数が異なります。

= 備考 =

スキーマ構造については、「テーブルモデル型 」を参照してください。

Mapperでのスキーマ読み込み

出力スキーマは自動で読み込まれますが、入力スキーマは手動で読み込む必要があります。

読み取りを行うデータのスキーマを指定してください。

= 備考 =

詳細については、「スキーマ編集」を参照してください。

大容量データ処理

大容量データ処理には対応していません。

PSPでの使用について

PSPでは使用できません。

使用できるコンポーネント変数

コンポーネント変数名

説明

備考

message_category

エラー発生時、発生したエラーに対応するメッセージコードのカテゴリが格納されます。

  • デフォルト値はnullです。

message_code

エラー発生時、発生したエラーに対応するメッセージコードのコードが格納されます。

  • デフォルト値はnullです。

message_level

エラー発生時、発生したエラーに対応するメッセージコードの重要度が格納されます。

  • デフォルト値はnullです。

error_type

エラー発生時、発生したエラーの種類が格納されます。

  • デフォルト値はnullです。

  • エラーの種類は、以下のような形式となります。

    例:「java.io.FileNotFoundException」

error_message

エラー発生時、発生したエラーのメッセージが格納されます。

  • デフォルト値はnullです。

error_trace

エラー発生時、発生したエラーのトレース情報が格納されます。

  • デフォルト値はnullです。

入力元コンポーネントのスキーマ変更について

  • [入力データ(LEFT)]または[入力データ(RIGHT)]に指定したコンポーネントのスキーマを変更した場合、結合処理にその変更を反映させるため、結合処理のプロパティ設定ダイアログを開いて[完了]ボタンをクリックしてください。

  • [入力データ(LEFT)]または[入力データ(RIGHT)]に指定したコンポーネントのスキーマ構造を変更(スキーマの要素の順序変更や削除など)した場合、[結合キー設定/入力データ(LEFT)][結合キー設定/入力データ(RIGHT)][出力対象設定/列名]の設定も合わせて変更する必要があります。

    これは、結合処理が列情報を名前ではなく順序(インデックス)で保持しているためです。

nullと空文字について

  • [結合キー設定]で指定した列の値にnullが存在する場合、nullを結合キーの値として処理します。

  • [結合キー設定]で指定した列の値に空文字が存在する場合、指定したもう片方の列のデータ型により動作が異なります。

    • String型の列同士の場合、空文字を結合キーの値として処理します。

    • String型と異なるデータ型の列の場合、エラーが発生します。

処理種別について

処理種別では以下の結合方法を選択します。

項目の説明

項目名

説明

INNER JOIN(デフォルト)

[入力データ(LEFT)][入力データ(RIGHT)]双方のテーブルのキーの値が一致するレコードのみ取得します。

LEFT OUTER JOIN

[入力データ(LEFT)]のテーブルはすべてのレコードを、[入力データ(RIGHT)]のテーブルはキーの値が一致するレコードのみ取得します。

RIGHT OUTER JOIN

[入力データ(RIGHT)]のテーブルはすべてのレコードを、[入力データ(LEFT)]のテーブルはキーの値が一致するレコードのみ取得します。

 

例:以下の二つのテーブル「Products」と「Sales」を、「品番」をキーとして結合します。

Products

Sales

品番

製品名

1

商品A

2

商品B

4

商品D

品番

注文個数

1

10

2

30

3

50

  • [INNER JOIN(デフォルト)]の場合

    品番

    製品名

    注文個数

    1

    商品A

    10

    2

    商品B

    30

  • [LEFT OUTER JOIN]の場合

    品番

    製品名

    注文個数

    1

    商品A

    10

    2

    商品B

    30

    4

    商品D

     

  • [RIGHT OUTER JOIN]の場合

    品番

    製品名

    注文個数

    1

    商品A

    10

    2

    商品B

    30

    3

     

    50

データ型が異なる列の結合について

結合キーに指定された列のデータ型が異なる場合、以下のとおりデータ型の変換を行います。

データ型の変換

入力データ(LEFT)の列のデータ型

入力データ(RIGHT)の列のデータ型

byte

short

int

long

float

double

BigDecimal

boolean

String

Date

byte[]

byte

short

int

long

BigDecimal

BigDecimal

BigDecimal

×

byte

×

×

short

short

int

long

BigDecimal

BigDecimal

BigDecimal

×

short

×

×

int

int

int

long

BigDecimal

BigDecimal

BigDecimal

×

int

×

×

long

long

long

long

BigDecimal

BigDecimal

BigDecimal

×

long

×

×

float

BigDecimal

BigDecimal

BigDecimal

BigDecimal

BigDecimal

BigDecimal

×

BigDecimal

×

×

double

BigDecimal

BigDecimal

BigDecimal

BigDecimal

BigDecimal

BigDecimal

×

BigDecimal

×

×

BigDecimal

BigDecimal

BigDecimal

BigDecimal

BigDecimal

BigDecimal

BigDecimal

×

BigDecimal

×

×

boolean

×

×

×

×

×

×

×

boolean

×

×

String

byte

short

int

long

BigDecimal

BigDecimal

BigDecimal

boolean

×

×

Date

×

×

×

×

×

×

×

×

×

×

×

byte[]

×

×

×

×

×

×

×

×

×

×

×

  • 表の見方

    マーク

    説明

    <内部データ型>

    <内部データ型>に変換を行います。

    同じデータ型のため変換を行いません。

    ×

    指定された列のデータ型の結合に対応していません。

= 備考 =
  • 内部データ型のcharはStringとして扱います。

  • Stringからbooleanに変換する場合、「true」はtrue、それ以外の文字列はfalseに変換します。

仕様制限

  • 並列処理をサポートしています。

    = 備考 =

    並列処理の仕様制限については、「仕様制限」を参照してください。

  • [結合キー設定]および[出力対象設定]を指定する際には、入力元コンポーネントの出力スキーマが設定されている必要があります。

    スキーマを手動で設定するコンポーネントの場合は、Mapperでスキーマを読み込んでください。

  • 結合処理の結果データの順序は保証されません。

  • 入力元のコンポーネントが大容量データ処理を行う場合でも、結合処理では一時的にデータをメモリ中に保持します。

    そのためデータが大きい場合には、大容量データ処理時にもOutOfMemoryErrorが発生する可能性があります。

例外メッセージ

例外名

原因

対策

InputDataNotFoundException

[入力データ]が指定されていません。

[入力データ]を指定する、またはデータフローを引いてください。

InvalidInputTypeException

[入力データ]がテーブルモデル型ではありません。

[入力データ]がテーブルモデル型かどうかを確認してください。

InvalidPropertyConfigurationException

<プロパティ名>に値が指定されていません。

[<プロパティ名>]に値が指定されていません。

[<プロパティ名>]を指定してください。

InvalidPropertyConfigurationException

<プロパティ名1>の[<行番号>]行目の[<プロパティ名2>]に値が指定されていません。

[<プロパティ名2>]に値が指定されていません。

[<プロパティ名2>]を指定してください。

InvalidPropertyConfigurationException

<プロパティ名>の[<行番号>]行目に指定された値が重複しています。

[<プロパティ名>]に指定した値が重複しています。

[<プロパティ名>]に指定した値が適切かどうかを確認してください。

InvalidPropertyConfigurationException

<プロパティ名1>の[<行番号>]行目の[<プロパティ名2>]に指定された値が重複しています。

[<プロパティ名2>]に指定した値が重複しています。

[<プロパティ名2>]に指定した値が適切かどうかを確認してください。

ConversionFailedException

<入力データ>の列の値を結合キーとして処理できません。

[<入力データ>]の内容に、[結合キー設定]に指定したとおりに処理できない値が含まれています。

[<入力データ>][結合キー設定]に指定した内容に適合するかどうか、または空文字が含まれているかどうかを確認してください。