ビュー データのコピーについて - Teradata Data Mover

Teradata® Data Mover ユーザー ガイド

Product
Teradata Data Mover
Release Number
17.11
Published
2021年10月
Language
日本語
Last Update
2021-11-08
dita:mapPath
ja-JP/cai1626458602965.ditamap
dita:ditavalPath
ja-JP/mpm1591127278842.ditaval
dita:id
B035-4101
Product Category
Analytical Ecosystem

Data Moverでは、基礎となるデータをTeradataシステムとTeradataテーブルのビュー間でコピーするときに、ビュー データをコピーできます。ビューからデータをコピーする場合は、copyData="true"属性をview要素とともに指定します。

copyData属性はオプションで、デフォルト値はfalseです。copyDatatrueに設定した場合は、この属性の後にオプションのview_data_table要素を指定できます。

view_data_tableが指定されない場合、Data Moverはビュー データをターゲット ビューにコピーします。また、ジョブ作成時の例外を回避するため、view selection = ”included”要素を指定する必要があります。例:
<views>
	<view selection="included" copyData="true">
		<name>deptsals</name>
		<database>MyDb</database>
	</view>
</views>
上記の例では、"SELECT * from MyDb.deptSals"を使用してビューdeptSalsのデータを選択し、ターゲット上のビューMyDb.deptSalsにロードしています。ビューMyDB.deptSalsがターゲットに存在しない場合は、ソース ビュー定義を使用して作成されます。ビューMyDB.deptSalsがターゲットに存在する場合は、ソース ビュー定義を使用して上書きされます。
view_data_tableを指定する場合は、target_tableで基礎となるビュー データのコピー先テーブルを示し、target_databaseでターゲット テーブルが存在するデータベースを示します。テーブルがターゲットにまだ存在しない場合は、Data Moverによってテーブルが作成されます。ターゲットにテーブルがすでに存在する場合は、そのテーブルにビュー データがロードされます。例:
<views>
	<view selection="included" copyData="true">
		<name>deptsals</name>
		<database>MyDb</database>
		<view_data_table>
			<target_table>TargetTable</target_table>
			<target_database>TargetDb</target_database>
		</view_data_table>
	</view>
</views>

上記の例では、"SELECT * from MyDb.deptSals"を使用してビューdeptSalsのデータを選択し、TargetDb.TargetTableテーブルにロードしています。TargetDb.TargetTableがターゲットに存在しない場合は、Data Moverによってターゲット テーブルが作成されます。

Data Moverによって作成されたターゲット テーブルには次のような特性があります。
  • マルチセット テーブルである。
  • ビューと同じ列名および列タイプで作成される。
  • ジャーナルを持たないNO FALLBACKテーブルである。
  • セカンダリ インデックスは含まれない。
また、データがコピーされるビューにプライマリ インデックス列が含まれる場合は、その列がターゲット テーブルのプライマリ インデックスとして選択されます。ビューにプライマリ インデックス列が含まれない場合、ビューの最初の列がプライマリ インデックスに選択されます。
ビュー データをターゲット ビューにコピーする場合は、次のルールが適用されます。
  • ソース ビューで複数のテーブルを参照することはできません。ビューに複数の参照テーブルがある場合、実行時例外が発生します。
  • Data Moverはソース ビュー定義を使用してターゲット ビュー定義を作成するため、compare_ddl要素は無視されます。
  • ソース ビューで参照されるテーブルは、ターゲットに存在する必要があるか、ジョブによって移動させる必要があります。
ビュー データをターゲット ビューにコピーする場合は、最初にソース ビュー データがターゲット ステージング テーブルにコピーされ、ビュー データがターゲット ビューに存在する場合は、ソース ビュー定義を使用してターゲット ビューが上書きされます。次に、ソース ビュー データがステージング テーブルからターゲット ビューにコピーされます。ビューにターゲット参照テーブルのすべての列が含まれていない場合は、ターゲット参照テーブルにnull値が含まれている可能性があります。そのため、この機能の使用には注意が必要です。
ビュー データをターゲット テーブルまたはターゲット ビューにコピーする場合は、ロード ユーティリティの使用について次のルールが適用されます。
  • ソース ステージング テーブルを使用しない場合は、DSAをロード ユーティリティとして使用しません。
  • ビュー データをコピーするときに、force_utilityの値としてソース ステージング テーブルを使用せずにDSAを指定するか、またはTPTAPI_LOADを指定すると、作成時エラーが発生します。
  • force_utilityにソース ステージング テーブルとともにTPTAPI_STREAM、JDBC、またはDSAが指定されていない限り、ビュー データはTPTAPI_UPDATEオペレータを使用してコピーされます。
  • ビュー データを他のテーブルとともにコピーする場合、ビュー データはTPTAPI_UPDATEオペレータを使用してコピーされますが、他のデータ テーブルをTPTAPI_LOADオペレータを使用してコピーすることができます。このようなコピーは、force_utilityを指定しないで、かつソース ステージング テーブルを使用していない場合、またはforce_utilityをTPTAPIとして指定している場合に実行されます。