17.10 - Acerca del uso del elemento staging_to_target en XML - Teradata Data Mover

Teradata® Data Mover Guía del usuario

Product
Teradata Data Mover
Release Number
17.10
Release Date
Junio de 2021
Content Type
Guía del usuario
Publication ID
B035-4101-061K-ESN
Language
Español (España)

Data Mover usa tablas provisionales de destino cuando lleva a cabo copias parciales o completas de tablas donde la tabla de destino ya existe. El valor del elemento staging_to_target especifica cómo se deben copiar los datos de una tabla provisional de destino a una tabla de destino, en sustitución del método que Data Mover suele usar para copiar datos de una tabla provisional a una de destino. El método de Data Mover usa MERGE o DELETE junto con INSERT/SELECT, dependiendo de factores tales como las columnas de claves, la versión de la base de datos, etc.

El reemplazo genera un error si se especifica el valor MERGE para el elemento staging_to_target. Data Mover determina que el método MERGE no ha copiado correctamente los datos, lo que produce un error.

Utilice el elemento staging_to_target si no tiene el permiso UPDATE requerido por la sentencia MERGE. Sin embargo, utilice el parámetro con cuidado porque Data Mover elige automáticamente el modo más eficiente de copiar datos.

El elemento staging_to_target es opcional y solo se puede especificar en el archivo XML, no como un parámetro en la interfaz de línea de comandos.

El elemento staging_to_target está en el elemento key_columns del archivo XML. La siguiente tabla enumera los valores válidos del elemento staging_to_target.

Valor Descripción
NOT_SPECIFIED (Predeterminado) Se recomienda porque especifica que Data Mover elige la manera más eficiente de copiar datos de la tabla provisional de destino en la tabla de destino.
MERGE Especifica el uso de la sentencia MERGE para copiar datos. Data Mover comprueba si la sentencia MERGE se puede utilizar para copiar datos. Si no se puede utilizar la sentencia MERGE, se producirá un error. Tenga en cuenta que la sentencia MERGE no se puede utilizar para copiar tablas de multiconjunto.
DELETE_INSERT Especifica las filas de la tabla de destino que se eliminan con la sentencia DELETE y que luego se copian de la tabla de transferencia provisional a la tabla de destino con la sentencia INSERT/SELECT.

Las filas que se eliminarán dependen del trabajo. Con una copia de tabla parcial, solo se eliminan las filas que coinciden con la consulta SQL. Con una copia de tabla completa, se eliminan todas las filas.

INSERT_ONLY Especifica que no se eliminen filas de la tabla de destino. En su lugar, la sentencia INSERT/SELECT copia las filas de la tabla de transferencia provisional en la tabla de destino.
DELETE_DISTINCT_INSERT

Especifica las filas de la tabla de destino que se eliminan con la sentencia DELETE DISTINCT SELECT y que luego se copian de la tabla de transferencia provisional a la tabla de destino con la sentencia INSERT/SELECT.

Este método solo se utiliza con copia parcial, y solo cuando se especifica expresamente.

Este método mejora el rendimiento de eliminación cuando las columnas de claves no son claves únicas

Debido a que la funcionalidad del elemento staging_to_target es válida para tablas individuales, se debe especificar la tabla a la que se aplicará la característica staging_to_target, como en el siguiente ejemplo.

<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>