Accueil

Fastload Teradata

… c’est possible sur Windows

Pour les aficionados de la performance brute, voici un petit exposé qui vous ravira, sans doute.

Contexte: Imaginons que vous désiriez transférer le contenu d’une table de 170080 lignes d’un serveur Teradata à 64 noeuds bien réels à votre petite machine à 2 noeuds virtuels appellé ysdemo, par exemple.

Contraintes: Imaginons que vous n’avez pas accès via un réseau entre les deux machines pour de sombres histoires de sécurité, par exemple.

Premiere partie : L’export

  • Armé d’une bonne clé USB, vous exportez vos données via Queryman (jusque là rien de plus facile, en 6 minutes, le temps d’un café, c’est fait)
  • Armé de courage, vous lisez la doc pour faire un fastexport …

Seconde partie : L’oeil hagard le tein livide devant votre PC, vous vous attaquez à l’import.

  • Armé de votre bonne clé USB pleine à craquer, vous importez par Queryman : comptez approximativement trois click souris et 2h36 minutes d’attente …
  • Armé de tenacité, vous importez par un fastload : comptez approximativement un mal de tête et 0.310446 secondes …
  • Armé d’une douce folie, vous gravez sur DVD un fichier dans un format Excel, puis transferez via Access et un lien ODBC : ne comptez plus …

Conclusion :

  • les programmeurs de Queryman sont nuls (l’ai-je déjà dit?)
  • pour le fastload :
    • passez par une table intermediaire avec des champs en varchar ou char et un set record vartex. Cela vous évite des problemes d’interprétation des champs numériques (entre autre)
    • n’oubliez pas le end loading; sous peine de vérouiller la table et de ne plus pouvoir y accéder
    • vous pouvez indiquer le délimiteur sous la forme d’une tabulation entre guillemets

Voici un exemple simple de fichier de configuration mon_fichier_config qui fonctionne pour le fastload

sessions 2; errlimit 25; logon terasrvr/dbc, dbc; create table ma_database.ma_table_intermediaire (       CODE_ORGN_FINN CHAR(5),       NUMR_CONT CHAR(27),       SGK_CONT VARCHAR(10) ) UNIQUE PRIMARY INDEX (SGK_CONT); set record vartext "	"; define       CODE_ORGN_FINN (VARCHAR(5)),       NUMR_CONT (VARCHAR(27)),       SGK_CONT (VARCHAR(10)) file=ma_table_donnees.txt; show; begin loading ma_database.ma_table_intermediaire errorfiles ma_database.error_1, ma_database.error_2; insert into ma_database.ma_table_intermediaire ( :CODE_ORGN_FINN, :NUMR_CONT, :SGK_CONT ); end loading; logoff

Pour lancer ce script :

  • ouvrez Teradata Command Prompt (dans Menu Demarrer\Teradata\Teradata Database 5.0\ )
  • cd le repertoire contenant mon_fichier_config et ma_table_donnees.txt
  • executez fastload < mon_fichier_config

Voici un exemple du fichier de données : (ma_table_donnees.txt, export de Queryman dans lequel on a supprimé les entetes sur la premiere ligne)

15965	1596500520F109089604       	864020 15965	1596500950M855231046       	3143892 15965	1596500600Y116493504       	1977431

L’exercice suivant, ce sera de ne plus avoir le temps de boire de café en utilisant un fastexport …

1 Comment so far

  1. laurent mars 24th, 2006 23:46

    Et ben MySQL … c’est plus simple ! na !

Leave a reply