Teradata - MultiLoad

MultiLoad può caricare più tabelle alla volta e può anche eseguire diversi tipi di attività come INSERT, DELETE, UPDATE e UPSERT. Può caricare fino a 5 tabelle alla volta ed eseguire fino a 20 operazioni DML in uno script. La tabella di destinazione non è richiesta per MultiLoad.

MultiLoad supporta due modalità:

  • IMPORT
  • DELETE

MultiLoad richiede una tabella di lavoro, una tabella di registro e due tabelle di errori oltre alla tabella di destinazione.

  • Log Table - Usato per mantenere i checkpoint presi durante il caricamento che verranno usati per il riavvio.

  • Error Tables- Queste tabelle vengono inserite durante il caricamento quando si verifica un errore. La prima tabella degli errori memorizza gli errori di conversione mentre la seconda tabella degli errori memorizza i record duplicati.

  • Log Table - Mantiene i risultati di ogni fase di MultiLoad a scopo di riavvio.

  • Work table- Lo script MultiLoad crea una tabella di lavoro per tabella di destinazione. La tabella di lavoro viene utilizzata per conservare le attività DML ei dati di input.

Limitazione

MultiLoad ha alcune limitazioni.

  • Indice secondario univoco non supportato sulla tabella di destinazione.
  • Integrità referenziale non supportata.
  • Trigger non supportati.

Come funziona MultiLoad

L'importazione di MultiLoad prevede cinque fasi:

  • Phase 1 - Fase preliminare: esegue le attività di configurazione di base.

  • Phase 2 - Fase di transazione DML: verifica la sintassi delle istruzioni DML e le porta al sistema Teradata.

  • Phase 3 - Fase di acquisizione: porta i dati di input nelle tabelle di lavoro e blocca la tabella.

  • Phase 4 - Fase di applicazione: applica tutte le operazioni DML.

  • Phase 5 - Fase di pulizia: rilascia il blocco della tabella.

I passaggi coinvolti in uno script MultiLoad sono:

  • Step 1 - Imposta la tabella di registro.

  • Step 2 - Accedi a Teradata.

  • Step 3 - Specificare le tabelle Target, Lavoro ed Errore.

  • Step 4 - Definisce il layout del file INPUT.

  • Step 5 - Definisci le query DML.

  • Step 6 - Assegna un nome al file IMPORT.

  • Step 7 - Specificare il LAYOUT da utilizzare.

  • Step 8 - Avvia il caricamento.

  • Step 9 - Termina il caricamento e termina le sessioni.

Esempio

Creare un file di testo con i seguenti record e denominare il file come dipendente.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

L'esempio seguente è uno script MultiLoad che legge i record dalla tabella dei dipendenti e li carica nella tabella 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;

Esecuzione di uno script MultiLoad

Dopo aver creato il file di input employee.txt e lo script multiload è denominato EmployeeLoad.ml, è possibile eseguire lo script Multiload utilizzando il seguente comando in UNIX e Windows.

Multiload < EmployeeLoad.ml;