DataStageでステージに参加する
Join ステージは、ステージに入力された 2 つ以上のデータ・セットに対して結合操作を実行してから、結果のデータ・セットを出力します。
Join ステージは処理ステージです。 ステージに入力される 2 つ以上のデータ・セットの結合処理を実行し、結果のデータ・セットを出力します。 Join ステージは、キー列の値に基づいて表を結合する 3 つのステージの 1 つです。 ほかに次の 2 つのステージがあります。
3 つのステージの主な相違点は、使用するメモリー、キーが一致しない行の処理、入力データに対する要件 (ソートするかどうかなど) です。 どのステージを使用するのかの判断については、「統合とルックアップの違い」を参照してください。
Join ステージでは、入力データ・セットは、「右」セットと「左」セット、および「中間」セットとして識別されません。 どの入力データ・セットがどの位置のセットに当たるかを指定できます。 これには、複数の入力リンクと 1 つの出力リンクがあります。
このステージでは、4 つの結合処理のうちの 1 つを実行できます。
- Inner (内部) は、キー列に等しい値が含まれている入力データ・セットのレコードを出力データ・セットに転送します。 キー列の値が異なるレコードはドロップされます。 内部結合の異なる入力リンクから同じ名前の列を伝搬しようとすると、ステージはコンパイルされません。 Join ステージの前に Modify ステージまたは Transformer ステージを配置して、列の名前を変更できます。 完全外部結合に切り替えることもできます。
- Left outer (左外部) は、左のデータ・セットからすべての値を転送しますが、キー列が一致する場合にのみ右のデータ・セットおよび中間データ・セットから値を転送します。 右および中間のデータ・セットのキー列はステージでドロップされます。
- Right outer (右外部) は、右のデータ・セットからすべての値を転送し、キー列が一致する場合のみ左のデータ・セットおよび中間データ・セットから値を転送します。 左および中間のデータ・セットのキー列はステージでドロップされます。
- Full outer (外部全体) は、キー列の内容が等しいレコードを左右の入力データセットから出力データセットに転送します。 また、キー列が等しくない値を含むレコードを、両方の入力データセットから出力データセットに転送します。 (完全な外部結合は、2 つを超える入力リンクをサポートしません。)
- 入力リンクの列のメタデータは、データベース表の値と一致している必要があります。
- Join ステージに入力されるデータ・セットは、キーに基づいたパーティションおよび昇順でのソートが必要です。 こうすることで、キー列に同じ値を持つすべての行が同じパーティションに配置され、 同じノードで処理されることが保証されます。 また、メモリーに一度に格納される行が少なくなるためにメモリー所要量が最小限になります。 「自動」パーティション方式を選択すると、パーティションおよびソートが確実に行われます。 ソートおよびパーティション化が Join ステージの前の別個のステージで実行される場合、自動モードの IBM® DataStage® はこれを検出し、再パーティション化は行いません (代わりに、同じパーティション化方式を明示的に指定することもできます)。
この Join ステージ・エディターには次の 3 つのページがあります。
- ステージ。 常に表示され、ステージの全般的な情報を指定するために使用します。
- 入力。 ここで、結合されるデータ・セットに関する詳細を指定します。
- 出力。 ここで、ステージから出力される結合データに関する詳細を指定します。
DataStage Join ステージの操作方法の例については、以下のビデオをご覧ください。
このビデオは、この資料の概念とタスクを学習するための視覚的な方法を提供します。
「入力」タブ
「列」 セクションは、受信データの列定義を指定します。 「拡張」セクションでは、入力リンクのデフォルトのバッファリング設定を変更することができます。
「出力」タブ
Join ステージに設定できる出力リンクは 1 つだけです。
「列」セクションは、データの列定義を指定します。 「列」セクションで「編集」をクリックすると表示される「列入力からのマップ」列セクションでは、Join ステージと出力列に入力される列の間の関係を指定できます。 「拡張」セクションでは、出力リンクのデフォルトのバッファリング設定を変更することができます。