Teradata - FastLoad

L'utilitaire FastLoad est utilisé pour charger des données dans des tables vides. Puisqu'il n'utilise pas de journaux temporaires, les données peuvent être chargées rapidement. Il ne charge pas les lignes dupliquées même si la table cible est une table MULTISET.

Limitation

La table cible ne doit pas avoir d'index secondaire, d'index de jointure et de référence de clé étrangère.

Fonctionnement de FastLoad

FastLoad est exécuté en deux phases.

La phase 1

  • Les moteurs d'analyse lisent les enregistrements du fichier d'entrée et envoient un bloc à chaque AMP.

  • Chaque AMP stocke les blocs d'enregistrements.

  • Ensuite, les AMP hachent chaque enregistrement et les redistribuent vers l'AMP approprié.

  • À la fin de la phase 1, chaque AMP a ses lignes mais elles ne sont pas dans la séquence de hachage des lignes.

Phase 2

  • La phase 2 démarre lorsque FastLoad reçoit l'instruction END LOADING.

  • Chaque AMP trie les enregistrements sur le hachage de ligne et les écrit sur le disque.

  • Les verrous sur la table cible sont libérés et les tables d'erreur sont supprimées.

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

Voici un exemple de script FastLoad pour charger le fichier ci-dessus dans la table Employee_Stg.

LOGON 192.168.1.102/dbc,dbc;  
   DATABASE tduser;  
   BEGIN LOADING tduser.Employee_Stg  
      ERRORFILES Employee_ET, Employee_UV  
      CHECKPOINT 10;  
      SET RECORD VARTEXT ",";  
      DEFINE in_EmployeeNo (VARCHAR(10)), 
         in_FirstName (VARCHAR(30)), 
         in_LastName (VARCHAR(30)), 
         in_BirthDate (VARCHAR(10)), 
         in_JoinedDate (VARCHAR(10)), 
         in_DepartmentNo (VARCHAR(02)), 
         FILE = employee.txt;
      INSERT INTO Employee_Stg (
         EmployeeNo,
         FirstName,
         LastName,
         BirthDate,
         JoinedDate, 
         DepartmentNo
      ) 
      VALUES (  
         :in_EmployeeNo, 
         :in_FirstName, 
         :in_LastName, 
         :in_BirthDate (FORMAT 'YYYY-MM-DD'), 
         :in_JoinedDate (FORMAT 'YYYY-MM-DD'),
         :in_DepartmentNo
      ); 
   END LOADING;  
LOGOFF;

Exécution d'un script FastLoad

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

FastLoad < EmployeeLoad.fl;

Une fois la commande ci-dessus exécutée, le script FastLoad s'exécutera et produira le journal. Dans le journal, vous pouvez voir le nombre d'enregistrements traités par FastLoad et le code d'état.

**** 03:19:14 END LOADING COMPLETE 
   Total Records Read              =  5 
   Total Error Table 1             =  0  ---- Table has been dropped 
   Total Error Table 2             =  0  ---- Table has been dropped 
   Total Inserts Applied           =  5 
   Total Duplicate Rows            =  0 
   Start:   Fri Jan  8 03:19:13 2016 
   End  :   Fri Jan  8 03:19:14 2016 
**** 03:19:14 Application Phase statistics: 
              Elapsed time: 00:00:01 (in hh:mm:ss) 
0008  LOGOFF; 
**** 03:19:15 Logging off all sessions

Conditions de FastLoad

Voici la liste des termes courants utilisés dans le script FastLoad.

  • LOGON - Se connecte à Teradata et lance une ou plusieurs sessions.

  • DATABASE - Définit la base de données par défaut.

  • BEGIN LOADING - Identifie la table à charger.

  • ERRORFILES - Identifie les 2 tables d'erreurs qui doivent être créées / mises à jour.

  • CHECKPOINT - Définit quand prendre le point de contrôle.

  • SET RECORD - Spécifie si le format du fichier d'entrée est formaté, binaire, texte ou non formaté.

  • DEFINE - Définit la disposition du fichier d'entrée.

  • FILE - Spécifie le nom et le chemin du fichier d'entrée.

  • INSERT - Insère les enregistrements du fichier d'entrée dans la table cible.

  • END LOADING- Lance la phase 2 du FastLoad. Distribue les enregistrements dans la table cible.

  • LOGOFF - Met fin à toutes les sessions et met fin à FastLoad.