Teradata - MultiLoad

MultiLoad puede cargar varias tablas a la vez y también puede realizar diferentes tipos de tareas como INSERT, DELETE, UPDATE y UPSERT. Puede cargar hasta 5 tablas a la vez y realizar hasta 20 operaciones DML en un script. La tabla de destino no es necesaria para MultiLoad.

MultiLoad admite dos modos:

  • IMPORT
  • DELETE

MultiLoad requiere una mesa de trabajo, una tabla de registro y dos tablas de errores además de la tabla de destino.

  • Log Table - Se usa para mantener los puntos de control tomados durante la carga que se usarán para reiniciar.

  • Error Tables- Estas tablas se insertan durante la carga cuando ocurre un error. La primera tabla de errores almacena errores de conversión, mientras que la segunda tabla de errores almacena registros duplicados.

  • Log Table - Mantiene los resultados de cada fase de MultiLoad con el propósito de reiniciar.

  • Work table- El script MultiLoad crea una tabla de trabajo por tabla de destino. La tabla de trabajo se utiliza para mantener las tareas DML y los datos de entrada.

Limitación

MultiLoad tiene algunas limitaciones.

  • El índice secundario único no es compatible con la tabla de destino.
  • No se admite la integridad referencial.
  • No se admiten activadores.

Cómo funciona MultiLoad

La importación de MultiLoad tiene cinco fases:

  • Phase 1 - Fase preliminar: realiza actividades básicas de configuración.

  • Phase 2 - Fase de transacción DML: verifica la sintaxis de las declaraciones DML y las lleva al sistema Teradata.

  • Phase 3 - Fase de adquisición: trae los datos de entrada a las tablas de trabajo y bloquea la mesa.

  • Phase 4 - Fase de aplicación: aplica todas las operaciones de DML.

  • Phase 5 - Fase de limpieza: libera el bloqueo de la mesa.

Los pasos involucrados en un script MultiLoad son:

  • Step 1 - Prepara la mesa de registro.

  • Step 2 - Inicie sesión en Teradata.

  • Step 3 - Especifique las tablas de destino, trabajo y error.

  • Step 4 - Definir el diseño del archivo INPUT.

  • Step 5 - Definir las consultas DML.

  • Step 6 - Nombre el archivo IMPORT.

  • Step 7 - Especifique el DISEÑO que se utilizará.

  • Step 8 - Iniciar la carga.

  • Step 9 - Finalizar la carga y finalizar las sesiones.

Ejemplo

Cree un archivo de texto con los siguientes registros y asigne un nombre al archivo employee.txt.

101,Mike,James,1980-01-05,2010-03-01,1  
102,Robert,Williams,1983-03-05,2010-09-01,1 
103,Peter,Paul,1983-04-01,2009-02-12,2 
104,Alex,Stuart,1984-11-06,2014-01-01,2 
105,Robert,James,1984-12-01,2015-03-09,3

El siguiente ejemplo es un script MultiLoad que lee registros de la tabla de empleados y los carga en la tabla Employee_Stg.

.LOGTABLE tduser.Employee_log;  
.LOGON 192.168.1.102/dbc,dbc; 
   .BEGIN MLOAD TABLES Employee_Stg;  
      .LAYOUT Employee;  
      .FIELD in_EmployeeNo * VARCHAR(10);  
      .FIELD in_FirstName * VARCHAR(30); 
      .FIELD in_LastName * VARCHAR(30);  
      .FIELD in_BirthDate * VARCHAR(10); 
      .FIELD in_JoinedDate * VARCHAR(10);  
      .FIELD in_DepartmentNo * VARCHAR(02);

      .DML LABEL EmpLabel; 
      INSERT INTO Employee_Stg (
         EmployeeNo,
         FirstName,
         LastName,
         BirthDate,
         JoinedDate,
         DepartmentNo
      )  
      VALUES (
         :in_EmployeeNo,
         :in_FirstName,
         :in_Lastname,
         :in_BirthDate,
         :in_JoinedDate,
         :in_DepartmentNo
      );
      .IMPORT INFILE employee.txt  
      FORMAT VARTEXT ','
      LAYOUT Employee
      APPLY EmpLabel;  
   .END MLOAD;  
LOGOFF;

Ejecución de un script de carga múltiple

Una vez que se crea el archivo de entrada employee.txt y el script multiload se denomina EmployeeLoad.ml, puede ejecutar el script Multiload utilizando el siguiente comando en UNIX y Windows.

Multiload < EmployeeLoad.ml;