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
varcharoucharet unset 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
- passez par une table intermediaire avec des champs en
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\ )
cdle repertoire contenantmon_fichier_configetma_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
Leave a reply
Et ben MySQL … c’est plus simple ! na !