Teradata - MultiLoad

MultiLoad peut charger plusieurs tables à la fois et il peut également effectuer différents types de tâches telles que INSERT, DELETE, UPDATE et UPSERT. Il peut charger jusqu'à 5 tables à la fois et effectuer jusqu'à 20 opérations DML dans un script. La table cible n'est pas requise pour MultiLoad.

MultiLoad prend en charge deux modes -

  • IMPORT
  • DELETE

MultiLoad nécessite une table de travail, une table de journal et deux tables d'erreurs en plus de la table cible.

  • Log Table - Utilisé pour maintenir les points de contrôle pris pendant le chargement qui seront utilisés pour le redémarrage.

  • Error Tables- Ces tables sont insérées lors du chargement lorsqu'une erreur survient. La première table d'erreurs stocke les erreurs de conversion tandis que la seconde table d'erreurs stocke les enregistrements en double.

  • Log Table - Conserve les résultats de chaque phase de MultiLoad à des fins de redémarrage.

  • Work table- Le script MultiLoad crée une table de travail par table cible. La table de travail est utilisée pour conserver les tâches DML et les données d'entrée.

Limitation

MultiLoad a quelques limitations.

  • Index secondaire unique non pris en charge sur la table cible.
  • L'intégrité référentielle n'est pas prise en charge.
  • Déclencheurs non pris en charge.

Comment fonctionne MultiLoad

L'importation MultiLoad comporte cinq phases -

  • Phase 1 - Phase préliminaire - Exécute les activités de configuration de base.

  • Phase 2 - Phase de transaction DML - Vérifie la syntaxe des instructions DML et les apporte au système Teradata.

  • Phase 3 - Phase d'acquisition - Apporte les données d'entrée dans les tables de travail et verrouille la table.

  • Phase 4 - Phase d'application - Applique toutes les opérations DML.

  • Phase 5 - Phase de nettoyage - Libère le verrouillage de la table.

Les étapes impliquées dans un script MultiLoad sont:

  • Step 1 - Configurez la table des journaux.

  • Step 2 - Connectez-vous à Teradata.

  • Step 3 - Spécifiez les tables Target, Work et Error.

  • Step 4 - Définissez la disposition du fichier INPUT.

  • Step 5 - Définissez les requêtes DML.

  • Step 6 - Nommez le fichier IMPORT.

  • Step 7 - Spécifiez la DISPOSITION à utiliser.

  • Step 8 - Lancez le chargement.

  • Step 9 - Terminez le chargement et terminez les sessions.

Exemple

Créez un fichier texte avec les enregistrements suivants et nommez le fichier comme 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

L'exemple suivant est un script MultiLoad qui lit les enregistrements de la table Employee et se charge dans la table 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;

Exécution d'un script MultiLoad

Une fois que le fichier d'entrée employee.txt est créé et que le script de chargement multiple est nommé EmployeeLoad.ml, vous pouvez exécuter le script de chargement multiple à l'aide de la commande suivante sous UNIX et Windows.

Multiload < EmployeeLoad.ml;