Teradata – estrategias JOIN

Este capítulo analiza las diversas estrategias JOIN disponibles en Teradata.

Métodos de conexión

Teradata utiliza diferentes métodos de combinación para realizar operaciones de combinación. Algunos de los métodos de unión más utilizados son:

  • Fusionar unión
  • Conexión anidada
  • Uniéndose al producto

Fusionar unión

El método Merge Join se produce cuando la combinación se basa en una condición de igualdad. Merge join requiere que las cadenas se concatenen para que estén en el mismo AMP. Las cadenas se concatenan en función de su hash. Merge join utiliza diferentes estrategias de combinación para traer filas al mismo AMP.

Estrategia # 1

Si las columnas que se unirán son los índices principales de las tablas correspondientes, las filas que se unirán ya están en el mismo AMP. En este caso, no se requiere distribución.

Considere las siguientes tablas de empleados y salarios.

CREATE SET TABLE EMPLOYEE,FALLBACK ( 
   EmployeeNo INTEGER, 
   FirstName VARCHAR(30) , 
   LastName VARCHAR(30) , 
   DOB DATE FORMAT 'YYYY-MM-DD', 
   JoinedDate DATE FORMAT 'YYYY-MM-DD', 
   DepartmentNo BYTEINT 
) 
UNIQUE PRIMARY INDEX ( EmployeeNo );
CREATE SET TABLE Salary ( 
   EmployeeNo INTEGER, 
   Gross INTEGER,  
   Deduction INTEGER, 
   NetPay INTEGER 
) 
UNIQUE PRIMARY INDEX(EmployeeNo); 

Cuando estas dos tablas se unen en la columna EmployeeNo, no se produce ninguna reasignación porque EmployeeNo es el índice principal de ambas tablas que se unen.

Estrategia # 2

Considere las siguientes tablas de empleados y departamentos.

CREATE SET TABLE EMPLOYEE,FALLBACK (
   EmployeeNo INTEGER, 
   FirstName VARCHAR(30) , 
   LastName VARCHAR(30) , 
   DOB DATE FORMAT 'YYYY-MM-DD', 
   JoinedDate DATE FORMAT 'YYYY-MM-DD', 
   DepartmentNo BYTEINT 
) 
UNIQUE PRIMARY INDEX ( EmployeeNo );
CREATE SET TABLE DEPARTMENT,FALLBACK ( 
   DepartmentNo BYTEINT, 
   DepartmentName CHAR(15) 
) 
UNIQUE PRIMARY INDEX ( DepartmentNo );

Si las dos tablas están unidas en la columna DeparmentNo, las filas deben reasignarse porque DepartmentNo es el índice principal en una tabla y el índice secundario en la otra tabla. En este caso, las cadenas adjuntas pueden no ser del mismo AMP. En tal caso, Teradata puede dividir la tabla de empleados en la columna DepartmentNo.

Estrategia # 3

Para las tablas de empleados y departamentos anteriores, Teradata podría duplicar la tabla de departamentos en todos los AMP si la tabla de departamentos es pequeña.

Conexión anidada

La conexión anidada no usa todos los AMP. Para que se produzca una combinación anidada, una de las condiciones debe ser que el índice principal único de una tabla sea igual y, luego, esa columna debe unirse a cualquier índice de otra tabla.

En este escenario, el sistema recuperará una fila usando el índice primario único de una tabla y usará ese hash de fila para recuperar registros coincidentes de otra tabla. La combinación anidada es el más eficaz de todos los métodos de combinación.

Uniéndose al producto

La combinación de productos compara cada fila coincidente de una tabla con cada fila coincidente de otra tabla. La fijación del producto puede ocurrir debido a algunos de los siguientes factores:

  • Donde falta la condición.
  • La condición de unión no se basa en una condición de igualdad.
  • Los alias de la tabla son incorrectos.
  • Múltiples condiciones de unión.

🚫