SnowConvert: Guia de conversão do Teradata SQL para Snowflake¶
Esta página fornece um guia para converter as instruções do Teradata SQL para o Snowflake, aproveitando os recursos do SnowConvert. Ele abrange uma variedade de funções, tipos de dados e elementos de sintaxe SQL, destacando as principais diferenças e estratégias de conversão. Este guia tem o objetivo de complementar a documentação oficial do SnowConvert e fornecer uma visão geral de alto nível. Consulte a documentação oficial para obter as informações mais detalhadas e atualizadas.
Mapeamento de tipos de dados:
O Teradata e o Snowflake têm tipos de dados semelhantes, mas não idênticos. O SnowConvert trata o mapeamento automaticamente na maioria dos casos, mas é vantajoso entender as conversões subjacentes. Os mapeamentos comuns incluem:
Mapeamento de tipos de dados:
Tipo de dados Teradata |
Equivalente ao Snowflake |
Notas |
---|---|---|
BYTEINT |
SMALLINT |
|
SMALLINT |
SMALLINT |
|
INTEGER |
INTEGER |
|
BIGINT |
BIGINT |
|
DECIMAL(P,S) |
NUMBER(P,S) |
A precisão e a escala devem ser revisadas. |
FLOAT |
FLOAT / DOUBLE |
Pode ter nuances específicas da plataforma. |
REAL |
FLOAT |
|
CHAR(n) |
CHAR(n) |
As diferenças no conjunto de caracteres devem ser consideradas. |
VARCHAR(n) |
VARCHAR(n) |
As diferenças no conjunto de caracteres devem ser consideradas. |
CLOB |
VARCHAR(16777216) / TEXT |
Requer manuseio cuidadoso e pode envolver diferentes mecanismos de armazenamento. |
BLOB |
VARBINARY |
Requer manuseio cuidadoso e pode envolver diferentes mecanismos de armazenamento. |
DATE |
DATE |
|
TIME |
TIME |
|
TIMESTAMP |
TIMESTAMP_NTZ / TIMESTAMP_TZ |
As considerações sobre o fuso horário devem ser analisadas. |
INTERVAL |
INTERVAL |
Sintaxe e funções SQL:
O SnowConvert automatiza a conversão de muitas construções de SQL. Entretanto, algumas áreas requerem atenção especial:
Instruções DDL: CREATE TABLE, ALTER TABLE, DROP TABLE são geralmente convertidas diretamente. Revise as restrições e os índices quanto à compatibilidade.
Instruções DML: SELECT, INSERT, UPDATE, DELETE são compatíveis em sua maioria. Preste atenção ao uso de funções específicas nessas instruções.
Funções agregadas: SUM, AVG, COUNT, MIN, MAX são normalmente convertidas sem problemas.
Funções de cadeia de caracteres: Embora muitas funções de cadeia de caracteres tenham equivalentes (por exemplo, SUBSTRING, UPPER, LOWER), algumas podem ter nomes ou comportamentos diferentes.
Funções de data/hora: Semelhante às funções de cadeia de caracteres, examine os equivalentes das funções de data e hora para verificar se há discrepâncias.
Funções analíticas: As funções de janela (por exemplo, ROW_NUMBER, RANK, LAG, LEAD) geralmente são compatíveis com ambas as plataformas, mas a sintaxe ou o comportamento específico podem ser diferentes.
Procedimentos armazenados e UDFs: Os procedimentos armazenados e as funções definidas pelo usuário do Teradata (UDFs) exigem conversão. O SnowConvert pode ajudar nesse processo, mas a revisão e os ajustes manuais geralmente são necessários.
Macros: As macros do Teradata precisarão ser reescritas como procedimentos armazenados do Snowflake ou UDFs.
Lógica condicional: Instruções CASE são geralmente compatíveis.
Junções: As junções internas, externas e cruzadas geralmente são convertidas sem problemas.
Transações: O modelo de transação do Snowflake pode ser diferente do Teradata, portanto, revise a lógica da transação.
Recursos específicos do Teradata: Os recursos exclusivos do Teradata (por exemplo, esquemas específicos de particionamento de tabelas e compressões de vários valores) podem não ter equivalentes diretos no Snowflake e exigir abordagens alternativas.