「マージ」アクティビティー

「マージ」アクティビティーを使用して、ソートされた 2 つの入力を結合します。 左と右の両方の入力は、マージまたは結合する前に、指定されたソート・キーに基づいてソートされている必要があります。 左と右の両方の入力に対して少なくとも 1 つのソート・キーを指定する必要があります。 「マージ」アクティビティーは、すべての重複を解決します。

各入力の繰り返しエレメントを指定するには、XPath 照会を使用します。 マージには、以下の 6 つのタイプがあります。
マージ・タイプ 説明
マージして重複を除去 左と右の両方の入力で発生する重複を除去します。 Studio は、すべての重複を RemainderXML エレメントに送信します。
マージして左の重複を保持 左の入力からの重複を RemainderXML エレメントに送信します。
マージしてすべての重複を保持 両方の入力からの重複を保持します。
内部結合 指定されたキーに基づいて入力を結合します。 結合に参加していないすべての行は、RemainderXML エレメントに送信されます。
左外部結合 指定されたキーに基づいて入力を結合します。 左の入力からの行は、それが結合に参加していない場合でも、マージされる出力に保持されます。 Studio は、結合に参加していない右の入力からのすべての行を、RemainderXML エレメントに送信します。
完全外部結合 指定されたキーに基づいて入力を結合します。 結合に関係がない行も、マージされる出力に保持されます。
マージの例:

表 1 は、この例での左と右の入力を示しています。 表 2 は、「マージ」アクティビティーがサポートする各タイプのマージ操作の、予期される結果です。

以下の例では、x がキー変数です。 Studio は、マージまたは結合された項目を mergeXML エレメントに送信し、マージにも結合にも参加していないすべての項目を RemainderXml エレメントに送信します。

表 1. 左および右の入力
左の入力 右の入力
<entries>
<entry x=”1” y=”10”/>
<entry x=”2” y=”20”/>
<entry x=”2” y=”21”/>
<entry x=”3” y=”30”/>
</entries>
<entries>
<entry x=”0” z=”00”/>
<entry x=”2” z=”22”/>
<entry x=”2” z=”23”/>
<entry x=”4” z=”40”/>
</entries>
表 2. 各マージ・タイプのマージ結果
マージ・タイプ マージ結果
マージして重複を除去
<entries>
<entry x=”0” z=”00”/>
<entry x=”1” y=”10”/>
<entry x=”3” y=”30”/>
<entry x=”4” z=”40”/>
</entries>
マージして左の重複を保持
<entries>
<entry x=”0” z=”00”/>
<entry x=”1” y=”10”/>
<entry x=”2” y=”20”/>
<entry x=”2” y=”21”/>
<entry x=”3” y=”30”/>
<entry x=”4” z=”40”/>
</entries>
マージしてすべての重複を保持
<entries>
<entry x=”0” z=”00”/>
<entry x=”1” y=”10”/>
<entry x=”2” y=”20”/>
<entry x=”2” y=”21”/>
<entry x=”2” z=”22”/>
<entry x=”2” z=”23”/>
<entry x=”3” y=”30”/>
<entry x=”4” z=”40”/>
</entries>
内部結合
<entries>
<entry x=”2” y=”20” z=”22”/>
<entry x=”2” y=”20” z=”23”/>
<entry x=”2” y=”21” z=”22”/>
<entry x=”2” y=”21” z=”23”/>
</entries>
左外部結合
<entries>
<entry x=”1” y=”10”/>
<entry x=”2” y=”20” z=”22”/>
<entry x=”2” y=”20” z=”23”/>
<entry x=”2” y=”21” z=”22”/>
<entry x=”2” y=”21” z=”23”/>
<entry x=”3” y=”30”/>
</entries>
完全外部結合
<entries>
<entry x=”0” z=”00”/>
<entry x=”1” y=”10”/>
<entry x=”2” y=”20” z=”22”/>
<entry x=”2” y=”20” z=”23”/>
<entry x=”2” y=”21” z=”22”/>
<entry x=”2” y=”21” z=”23”/>
<entry x=”3” y=”30”/>
<entry x=”4” z=”40”/>
</entries>