17.10 - Acerca de la copia de datos de vista - 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 puede copiar datos de vista cuando se copian datos subyacentes de una vista a otra entre sistemas y tablas de Teradata. Al copiar datos de una vista, especifique el atributo copyData="true" junto con el elemento view.

El atributo copyData es opcional, y tiene un valor predeterminado de false. Cuando copyData se establece como true, puede estar seguido del elemento opcional view_data_table.

Si no se especifica view_data_table, Data Mover copiará los datos de la vista a una vista de destino. El elemento view selection = ”included” se debe especificar para evitar una excepción en el momento de la creación del trabajo. Por ejemplo:
<views>
	<view selection="included" copyData="true">
		<name>deptsals</name>
		<database>MyDb</database>
	</view>
</views>
En el ejemplo anterior, los datos de la vista deptSals se seleccionan mediante "SELECT *from MyDb.deptSals" y se cargan en la vista MyDb.deptSals en el destino. Si la vista MyDB.deptSals no existe en el destino, se creará con la definición de la vista de origen. Si la vista MyDB.deptSals existe en el destino, se sobrescribirá con la definición de la vista de origen.
Si se especifica view_data_table, target_table indica la tabla en la que se copian los datos de la vista subyacentes y target_database indica la base de datos en la que existe la tabla de destino. Si la tabla no existe en el destino, Data Mover la creará. Si la tabla ya existe en el destino, los datos de la vista se cargarán en ella. Por ejemplo:
<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>

En el ejemplo anterior, los datos de la vista deptSals se seleccionan con "SELECT * from MyDb.deptSals" y se cargan en la tabla TargetDb.TargetTable. Si TargetDb.TargetTable no existe en el destino, Data Mover creará la tabla de destino.

Cuando Data Mover crea una tabla de destino, la tabla tiene las siguientes características:
  • Es una tabla de conjunto múltiple
  • Se crea con los mismos nombres de columna y los mismos tipos de columna que la vista
  • Es una tabla del tipo no reserva sin creación de diario
  • No contiene un índice secundario
Además, si la vista cuyos datos se copian contiene una columna de índice principal, esa columna se elige como el índice principal de la tabla de destino. Si la vista no contiene una columna de índice principal, se elegirá la primera columna de la vista como el índice principal.
Al copiar datos de la vista en una vista de destino, se aplica lo siguiente:
  • La vista de origen no debe hacer referencia a más de una tabla. Si la vista tiene varias tablas de referencia, se produce una excepción en tiempo de ejecución.
  • Cualquier elemento compare_ddl se omite porque Data Mover crea la definición de la vista de destino mediante la definición de la vista de origen.
  • La tabla a la que hace referencia la vista de origen debe existir en el destino o debe moverse con el trabajo.
Al copiar datos de la vista en un destino, los datos de la vista de origen se copian primero en una tabla provisional de destino y la vista de destino, si existe, se sobrescribe con la definición de la vista de origen. A continuación, se copian los datos de la vista de origen de la tabla de transferencia provisional en la vista de destino. Es posible que la tabla de referencia de destino incluya valores nulos si la vista no incluye todas las columnas de esa tabla de referencia. Por lo tanto, hay que tener cuidado al usar esta característica.
Las siguientes reglas se aplican al uso de utilidades de carga al copiar datos de la vista en una tabla o vista de destino:
  • No utilice DSA como la utilidad de carga si no se utiliza una tabla provisional de origen.
  • Si se especifica DSA sin utilizar una tabla provisional de origen o TPTAPI_LOAD como el valor de force_utility cuando se copian datos de la vista, se produce un error en el momento de la creación.
  • Los datos de la vista se copian mediante el operador TPTAPI_UPDATE, salvo que force_utility se especifique como TPTAPI_STREAM, JDBC o DSA con una tabla provisional de origen.
  • Cuando se copian datos de la vista junto con otras tablas, los datos de la vista se copian utilizando el operador TPTAPI_UPDATE, pero las otras tablas de datos se pueden copiar mediante el operador TPTAPI_LOAD. Esto ocurre cuando no se especifica force_utility y no se utiliza una tabla provisional de origen, o si se especifica force_utility como TPTAPI.