DataStageのマージステージ
Merge ステージは、キー列の値に基づいて表を結合します。 複数の入力リンク、1 つの出力リンク、および更新入力リンクと同数のリジェクト・リンクを設定できます。
3 つのステージの主な相違点は、使用するメモリー、キーが一致しない行の処理、入力データに対する要件 (ソートするかどうかなど) です。
Merge ステージは、1 つのマスター・データ・セットと 1 つ以上の更新データ・セットを結合します。 マスター・データ・セットおよび更新データ・セットのレコードの列がマージされ、出力レコードには、マスター・レコードのすべての列と、各更新レコードからの必要な追加の列が格納されます。 マスター・レコードおよび更新レコードは、指定した同じマージ・キー列の値が双方にある場合だけマージされます。 マージ・キー列はマスター・レコードと更新レコードの両方に存在する、1 つ以上の列です。
Merge ステージに入力されるデータ・セットは、キーに基づいたパーティションおよびソートが必要です。 こうすることで、キー列に同じ値を持つすべての行が同じパーティションに配置され、 同じノードで処理されることが保証されます。 また、メモリーに一度に格納される行が少なくなるためにメモリー所要量が最小限になります。 「自動」パーティション方式を選択すると、パーティションおよびソートが確実に行われます。 ソートとパーティション化が Merge ステージの前の別々のステージで実行される場合、自動パーティション・モードの IBM® DataStage® はこれを検出し、再パーティション化しません (代わりに、同じパーティション方式を明示的に指定することもできます)。
Merge ステージ用のデータの前処理の一部として、マスター・データ・セットから重複するレコードを削除する必要があります。 複数の更新データ・セットがある場合、同様に、更新データ・セットからも重複するレコードを削除する必要があります。 重複削除ステージについては、重複削除ステージ (DataStage)を参照してください。
Join ステージや Lookup ステージとは異なり、Merge ステージでは複数のリジェクト・リンクを指定できます。 マスター行に一致しない更新リンク行をそのリンク固有のリジェクト・リンクに送ることができます。 更新リンクと同じ数のリジェクト・リンクが必要です。 「ステージ」タブの「リンクの順序」セクションでは、リジェクトされた行をリジェクト・リンクに送信する更新リンクを指定できます。 また、一致しないマスター行をドロップするか、または出力データ・リンクに出力するかを指定できます。
ステージ・エディターには以下の 3 つのタブがあります。
- ステージ。 常に表示され、ステージの全般的な情報を指定するために使用します。
- 入力。 マージするデータ・セットの 詳細を指定します。
- 出力。 ステージから出力される マージ済みデータの詳細とリジェクト・リンクの詳細を指定します。
「入力」タブ
「列」 セクションは、受信データの列定義を指定します。 「拡張」セクションでは、入力リンクのデフォルトのバッファリング設定を変更することができます。
「出力」タブ
Merge ステージには、マージ済みデータを送信する マスター出力リンクを 1 つだけと、任意の数のリジェクト・リンクを設定できます。 各リジェクト・リンクは、いずれかの更新リンクからのリジェクト・レコードを処理します。 「出力名」ドロップダウン・リストから出力リンクを選択して、処理するリンクを指定します。
「列」セクションは、データの列定義を指定します。 「列」セクションで「編集」をクリックすると表示される「列入力からのマップ」 列セクションでは、Merge ステージに入力される列と出力列の間の関係を指定できます。 また、出力列の取得方法、すなわち、どの入力列を出力列にマップするか、またはそれらがどのように生成されるかを指定することもできます。 「拡張」セクションでは、出力リンクのデフォルトのバッファリング設定を変更することができます。