17.10 - Acerca de la copia de índices de hash y de unión - 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)

La copia de índices de hash y de unión entre versiones de Teradata Database tiene ciertas restricciones:

Para copiar un índice de unión o hash de una base de datos de origen a una de destino, especifique el atributo selection="included" del elemento index al definir el índice de unión o hash, como se muestra en el siguiente ejemplo:

<indices>
	<index selection= "included">
		<name>Orders_HI</name>
		<index_database>west1000</index_database>
		<map>sparsemap4amps1</map> 
		<colocate>sparsecol2</colocate>
		<index_type>HASH_INDEX</index_type>
	</index>
</indices>

Los parámetros y los valores posibles para los índices de unión y de hash se describen en la tabla siguiente.

Parámetro Descripción
colocate Nombre de la ubicación, solo para mapa disperso.
index_database Nombre de base de datos en la cual reside el índice de hash o de unión.
index_type Tipo de índice.
Los valores válidos son:
  • HASH_INDEX
  • JOIN_INDEX
mapa Nombre del mapa del objeto.
name Nombre del índice de unión o de hash.
selection El elemento que indica si el índice de unión o hash se ha copiado.
Los valores válidos son:
  • included para copiar el índice de unión o hash
  • unselected para excluir el índice de unión o hash de la copia
Los parámetros de la función MAPS, map y colocate, solo se admiten en sistemas de destino que utilicen Teradata Database 16.10 o posterior.

Si está copiando un índice de combinación o hash junto con las tablas asociadas y las tablas asociadas se van a cambiar de nombre o reubicar, el índice join o hash se crea en el tabla renombrado o reubicado en el destino.

El ejemplo de código siguiente crea un índice de unión de varias tablas comprimidas, Cust_Ord_JI.

CREATE JOIN INDEX west1000.Cust_Ord_JI ,NO FALLBACK ,CHECKSUM = DEFAULT AS
SELECT (west1000.C.c_custid ,west1000.C.c_lname ),(west1000.O.o_orderid ,
west1000.O.o_orderstatus ,west1000.O.o_orderdate ) FROM
west1000.Customer C INNER JOIN west1000.Orders O ON west1000.C.c_custid = west1000.O.o_custid )
PRIMARY INDEX ( c_custid );

El ejemplo de código siguiente crea un índice de unión de varias tablas sin comprimir, Cust_Ord_J2.

CREATE JOIN INDEX west1000.Cust_Ord_JI2 ,NO FALLBACK ,CHECKSUM = DEFAULT AS
SELECT west1000.C.c_custid ,west1000.C.c_lname,west1000.O.o_orderid ,
west1000.O.o_orderstatus ,west1000.O.o_orderdate FROM
west1000.Customer C INNER JOIN west1000.Orders O ON west1000.C.c_custid = west1000.O.o_custid )
PRIMARY INDEX ( c_custid );

El ejemplo de código siguiente crea un índice de unión agregado, Monthly_Sales_JI.

CREATE JOIN INDEX west1000.Monthly_Sales_JI ,NO FALLBACK ,CHECKSUM = DEFAULT AS
SELECT COUNT( * ) (FLOAT, NAMED CountStar ),west1000.Daily_Sales.item_id (NAMED Item ),
EXTRACT(YEAR FROM (west1000.Daily_Sales.sales_date ))(NAMED Yr ),
EXTRACT(MONTH FROM (west1000.Daily_Sales.sales_date ))(NAMED Mon ),
SUM(west1000.Daily_Sales.sales )(FLOAT, NAMED Sum_of_Sales )
FROM west1000.Daily_Sales GROUP BY west1000.Daily_Sales.item_id (NAMED Item ),
EXTRACT(YEAR FROM (west1000.Daily_Sales.sales_date ))(NAMED Yr ), 
EXTRACT(MONTH FROM (west1000.Daily_Sales.sales_date ))(NAMED Mon ) 
PRIMARY INDEX ( Item );

El ejemplo de código siguiente crea un índice de hash, Orders_HI.

CREATE HASH INDEX west1000.Orders_HI ,NO FALLBACK ,CHECKSUM = DEFAULT
(o_custid ,o_totalprice ,o_orderdate )
ON west1000.Orders ;
Al copiar índices de unión o hash, se debe tener en cuenta lo siguiente:
  • Si el objeto que se está copiando no existe en la base de datos de destino, se crea. Si el objeto existe en la base de datos de destino, se sobrescribe, a menos que la propiedad overwrite_existing_objects se establezca como false. En ese caso, se producirá un error en el momento de la creación.
  • Copiar una tabla que existe en el destino con un índice de unión o hash asociado sobrescribirá la tabla de destino y volverá a crear el índice de unión o hash en la tabla recién copiada.