SnowConvert AI - Teradata - MLOAD¶
Références de traduction pour convertir des fichiers Teradata MLOAD en Python
Teradata MultiLoad est un utilitaire piloté par des commandes qui permet d’effectuer une maintenance rapide et en grande quantité sur plusieurs tables et vues de la base de données Teradata.
To simulate the MultiLoad functionality for Teradata in Snowflake, MultiLoad files and commands are transformed to Python code, similar to the transformations performed for BTEQ and FastLoad scripts. The generated code uses the Snowflake Python project called snowconvert.helpers which contains the required functions to simulate the MultiLoad statements in Snowflake.
Traduction des commandes MultiLoad¶
La plupart des commandes MultiLoad sont considérées comme non pertinentes dans Snowflake, ces commandes sont donc commentées. Vous trouverez ci-dessous la liste récapitulative des commandes MultiLoad et leur statut de transformation dans Snowflake :
| Commands | Transformation Status | Note |
|---|---|---|
| ACCEPT | Commented | |
| BEGIN MLOAD | Transformed | The node is commented out since the transformation occurs in other related statements instead. |
| BEGIN DELETE MLOAD | Commented | |
| DATEFORM | Commented | |
| DELETE | Partially transformed | Check known issues. |
| DISPLAY | Commented | |
| DML LABEL | Transformed | |
| END MLOAD | Transformed | Commented out since is not necessary for the transformation of the BEGIN MLOAD. |
| EOC | Commented | |
| FIELD | Transformed | |
| FILLER | Transformed | This command needs to be with a FIELD and LAYOUT command to be converted. |
| IF, ELSE, and ENDIF | Commented | |
| IMPORT | Transformed | |
| INSERT | Transformed | This is taken as a Teradata Statement, so it doesn't appear in this chapter. |
| LAYOUT | Transformed | This command needs to be with a FIELD and FILLER command to be converted. |
| LOGDATA | Commented | |
| LOGMECH | Commented | |
| LOGOFF | Commented | |
| LOGON | Commented | |
| LOGTABLE | Commented | |
| PAUSE ACQUISITION | Commented | |
| RELEASE MLOAD | Commented | |
| ROUTE MESSAGES | Commented | |
| RUN FILE | Commented | |
| SET | Commented | |
| SYSTEM | Commented | |
| TABLE | Commented | |
| UPDATE | Transformed | This is taken as a Teradata Statement, so it doesn't appear in this chapter. |
| VERSION | Commented | |
Cependant, certaines commandes exceptionnelles doivent être converties en code spécifique à Python pour qu’elles fonctionnent comme prévu dans Snowflake. Voir cette section.
Si vous avez d’autres questions concernant cette documentation, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
BEGIN MLOAD¶
La transformation de la commande .BEGIN MLOAD est une transformation en plusieurs parties qui nécessite les commandes .LAYOUT, .FIELD, .FILLER,.DML LABEL et .IMPORT pour simuler correctement son comportement.
Cette transformation est expliquée en détail dans les sous-sections suivantes.
.LAYOUT, .FIELD et .FILLER¶
La transformation des commandes .LAYOUT, .FIELD et .FILLER créera des définitions de variables qui seront utilisées dans un futur appel de fonction de l’IMPORT de cette présentation.
Teradata (MultiLoad)
Snowflake (Python)
.DML LABEL¶
La transformation pour la commande .DML LABELcréera une fonction contenant les instructions après la définition de l’étiquette. Notez qu’après la commande .DML LABEL, il y a généralement une commande Insert, Update ou Delete.
Teradata (MultiLoad)
Snowflake (Python)
.IMPORT¶
La transformation de la commande .IMPORT créera un appel à l’assistant import_file_to_temptablepour charger les données du fichier dans une table temporaire. Ensuite, les appels à toutes les étiquettesAPPLYutilisées dans l’importation originale seront créés. Enfin, les appels à une étiquetteINSERTseront transformés en paramètre de requête et pourront éventuellement être assortis d’une condition de requête.
Teradata (MultiLoad)
Snowflake (Python)
Large exemple¶
Compte tenu des transformations présentées ci-dessus pour diverses commandes, considérez l’exemple suivant.
Avec ces données d’entrée :
Teradata (MultiLoad)
Requête
Résultat
| ROW | ID | NAME | AGE |
|---|---|---|---|
| 1 | NULL | ohn | 25 |
| 2 | 2 | aria | 29 |
| 3 | 3 | arlos | 31 |
| 4 | 4 | ike | 40 |
| 5 | 5 | aura | 27 |
Snowflake (Python)
Requête
Résultat
| ROW | ID | NAME | AGE |
|---|---|---|---|
| 1 | NULL | ohn | 25 |
| 2 | 2 | aria | 29 |
| 3 | 3 | arlos | 31 |
| 4 | 4 | ike | 40 |
| 5 | 5 | aura | 27 |
Problèmes connus¶
1. L’instruction delete est partiellement prise en charge
L’instruction DELETE est partiellement prise en charge car les conditions where, lorsqu’elles sont trouvées, ne sont pas converties correctement si elles pointent vers une colonne définie par LAYOUT.
In the example below, :EmpNo is pointing to a LAYOUT defined column. However, the transformation does not take this into account and thus the code will be referencing a column that does not exist.
Si vous avez d’autres questions concernant cette documentation, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.