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.