XMLでのstaging_to_target要素の使用について - Teradata Data Mover

Teradata® Data Mover ユーザー ガイド

Product
Teradata Data Mover
Release Number
17.10
Published
2021年6月
Language
日本語
Last Update
2021-07-16
dita:mapPath
ja-JP/fcu1619423186706.ditamap
dita:ditavalPath
ja-JP/fcu1619423186706.ditaval
dita:id
B035-4101
Product Category
Analytical Ecosystem

Data Moverは、ターゲット テーブルがすでに存在するときに部分テーブル コピーまたは完全テーブル コピーを実行する場合、ターゲット ステージング テーブルを使用します。staging_to_target要素の値によって、ターゲット ステージング テーブルからターゲット テーブルにデータをコピーする方法が指定されます。これは、Data Moverが通常、ステージング テーブルからターゲット テーブルにデータをコピーする際に使用する方法よりも優先されます。Data Moverの方法では、キー列、データベース バージョンなどの要因に応じてMERGEまたはDELETEINSERT/SELECTとともに使用します。

この優先は、staging_to_target要素にMERGE値を指定していると失敗します。Data Moverは、MERGEメソッドではデータを正常にコピーできないと判断し、エラーが発生します。

MERGE文で要求されるUPDATE権限を所有していない場合は、staging_to_target要素を使用します。ただし、Data Moverはデータをコピーするのに最も効率的な方法を自動的に選択するため、このパラメータは慎重に使用します。

staging_to_target要素はオプションであり、XMLファイルでのみ指定できます。コマンドライン インターフェースへのパラメータとしては指定できません。

staging_to_target要素は、XMLファイルのkey_columns要素の下にあります。次のテーブルに、staging_to_target要素の有効な値を示します。

説明
NOT_SPECIFIED (デフォルト)ターゲット ステージング テーブルからターゲット テーブルにデータをコピーする際、最も効率的な方法をData Moverが選択するため、この値が推奨されます。
MERGE MERGE文を使用してデータをコピーすることを指定します。Data Moverは、MERGE文を使用してデータをコピーできるかどうかを検証します。MERGE文を使用することができない場合、エラーが発生します。MERGE文はマルチセット テーブルのコピーには使用できないことに注意します。
DELETE_INSERT ターゲット テーブルの行がDELETE文で削除され、INSERT/SELECT文でステージング テーブルからターゲット テーブルにコピーされることを指定します。

削除される行はジョブによって異なります。部分テーブル コピーでは、SQLクエリーに一致する行のみが削除されます。完全テーブル コピーでは、すべての行が削除されます。

INSERT_ONLY ターゲット テーブルから行が削除されないように指定します。削除せず、INSERT/SELECT文でステージング テーブルからターゲット テーブルに行をコピーします。
DELETE_DISTINCT_INSERT

ターゲット テーブルの行がDELETE DISTINCT SELECT文で削除され、INSERT/SELECT文でステージング テーブルからターゲット テーブルにコピーされるように指定します。

このメソッドは、部分コピーでのみ、および明示的に指定された場合にのみ使用されます。

このメソッドでは、キー列が非固有キーの場合に削除パフォーマンスが向上します。

staging_to_target要素の機能は個々のテーブルに対して有効なため、次の例のように、staging_to_target機能を適用するテーブルを指定します。

<database selection="unselected">
	<name>srcDatabase</name>
	<table selection="included">
		<name>srcTable</name>
		<sql_where_clause>
			<![CDATA[WHERE colA > 100]]>
		</sql_where_clause>
		<key_columns>
 		<key_column>colA</key_column>
		</key_columns>
		<staging_to_target>insert_only</staging_to_target>
	</table>
</database>