SnowConvert AI – Teradata – MLOAD¶
Referências de tradução para converter arquivos Teradata MLOAD para Python
O Teradata MultiLoad é um utilitário orientado por comandos para manutenção rápida e de alto volume em várias tabelas e visualizações no banco de dados 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.
Conversão de comandos do MultiLoad¶
A maioria dos comandos do MultiLoad é considerada irrelevante no Snowflake, e esses comandos são comentados. Abaixo está a lista resumida dos comandos do MultiLoad e seu status de transformação no 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 | |
No entanto, há alguns comandos excepcionais que devem ser convertidos em código específico do Python para que funcionem como pretendido no Snowflake. Consulte esta seção.
Se você tiver alguma dúvida adicional sobre esta documentação, envie um e-mail para snowconvert-support@snowflake.com.
BEGIN MLOAD¶
A transformação para o comando .BEGIN MLOAD é uma transformação de várias partes que requer os comandos .LAYOUT, .FIELD, .FILLER,.DML LABEL e .IMPORT para simular seu comportamento corretamente.
Essa transformação é explicada detalhadamente nas subseções a seguir.
.LAYOUT, .FIELD e .FILLER¶
A transformação para os comandos .LAYOUT, .FIELD e .FILLER criará definições de variáveis a serem usadas em uma futura chamada de função do IMPORT desse layout.
Teradata (MultiLoad)
Snowflake (Python)
.DML LABEL¶
A transformação para o comando .DML LABELcriará uma função contendo as instruções após a definição do rótulo. Observe que, após o comando .DML LABEL, geralmente há um comando Insert, Update ou Delete.
Teradata (MultiLoad)
Snowflake (Python)
.IMPORT¶
A transformação do comando .IMPORT criará uma chamada para o auxiliarimport_file_to_temptablepara carregar os dados do arquivo em uma tabela temporária. Em seguida, serão criadas as chamadas para todos os rótulosAPPLYusados na importação original. Por fim, as chamadas para um rótuloINSERTserão transformadas em um parâmetro de consulta e, opcionalmente, poderão ter uma condição de consulta.
Teradata (MultiLoad)
Snowflake (Python)
Exemplo grande¶
Dadas as transformações mostradas acima para uma variedade de comandos, considere o exemplo a seguir.
Com esses dados de entrada:
Teradata (MultiLoad)
Query
Result
| 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)
Query
Result
| ROW | ID | NAME | AGE |
|---|---|---|---|
| 1 | NULL | ohn | 25 |
| 2 | 2 | aria | 29 |
| 3 | 3 | arlos | 31 |
| 4 | 4 | ike | 40 |
| 5 | 5 | aura | 27 |
Problemas conhecidos¶
1. A instrução Delete é parcialmente suportada
A instrução DELETE é parcialmente compatível, pois as condições where, quando encontradas, não estão sendo convertidas corretamente se apontarem para uma coluna definida em 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.
Se você tiver alguma dúvida adicional sobre esta documentação, envie um e-mail para snowconvert-support@snowflake.com.