SnowConvert AI – Teradata – DDL¶
Nesta seção, você encontrará a documentação para a referência de tradução de Elementos de linguagem de definição de dados.
Índice¶
Referência de tradução para converter a instrução INDEX para o Snowflake
Aviso
Atualmente, a instrução _ Create Index _ não está sendo convertida, mas está sendo analisada. Além disso, se o seu código-fonte tiver instruções Create index, elas serão contabilizadas no _ Relatório de avaliação. _
Exemplo de criação de índice
Entrada do Teradata¶
Nota
Por razões arquitetônicas, o Snowflake não oferece suporte a índices, então a SnowConvert AI removerá todo o código relacionado à criação de índices. O Snowflake automaticamente cria micropartições para cada tabela. Isso ajuda a acelerar o desempenho das operações DML, e o usuário não precisa se preocupar em criar ou gerenciar essas micropartições.
Normalmente, isso é suficiente para ter um desempenho de consulta muito bom; no entanto, há maneiras de melhorá-lo criando chaves de clustering de dados. A página oficial do Snowflake fornece mais informações sobre micropartições e clustering de dados.
Índice de junção¶
Descrição ¶
No SnowConvert AI, os índices de junção do Teradata são transformados em tabelas dinâmicas do Snowflake. Para configurar corretamente as tabelas dinâmicas, dois parâmetros essenciais devem ser definidos: TARGET_LAG e WAREHOUSE. Se esses parâmetros não forem especificados nas opções de configuração, o SnowConvert AI usará os valores pré-atribuídos por padrão durante a conversão, conforme demonstrado no exemplo abaixo.
For more information, see the Teradata Join Indexes documentation.
For details on the necessary parameters, see the Snowflake CREATE DYNAMIC TABLE documentation.
Amostra de padrões da origem¶
Teradata
Índice de junção
Snowflake
Tabela dinâmica
Problemas conhecidos¶
Nenhum erro conhecido foi detectado até o momento.
Esquema¶
Descrição ¶
A conversão da instrução CREATE SCHEMA do Teradata para o Snowflake é simples, pois a sintaxe básica permanece a mesma.
Amostra de padrões da origem¶
Teradata
Índice de junção
Snowflake
Tabela dinâmica
Problemas conhecidos¶
Propriedades WITH de CREATE SCHEMA¶
As propriedades WITH associadas à instrução CREATE SCHEMA no Teradata não são compatíveis com o Snowflake, pois não há funcionalidade equivalente disponível.
Teradata
Índice de junção
Snowflake
Tabela dinâmica
EWIs relacionados¶
SSC-EWI-0073: Revisão de equivalência funcional pendente.
Exibições¶
Referência de tradução para converter a instrução Teradata VIEW para o Snowflake
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição ¶
A instrução VIEW do Teradata é convertida para a sintaxe do Snowflake VIEW.
For more information, see the Teradata VIEW documentation.
Amostra de padrões da origem¶
Criar transformação de visualização¶
Teradata
Exibição¶
Snowflake
Exibição¶
Tag de esquema personalizado¶
O esquema personalizado é especificado na seção de comentários antes da especificação da visualização, com uma tag XML chamada «sc-view» que contém apenas o valor do esquema e o nome da visualização separados por um ponto «.», conforme mostrado abaixo: <sc-view>SCHEMANAME.VIEWNAME</sc-view>
O esquema personalizado será usado como um qualificador de visualização e, em seguida, o nome da visualização e todos os objetos mencionados nas consultas FROM e nas consultas internas usarão esse esquema personalizado. Portanto, pode haver várias exibições com o mesmo nome, mas com diferentes tags personalizadas. Exemplo: duas exibições com o mesmo nome usarão as informações da tag de esquema personalizado para realizar a conversão.
Teradata¶
Exibição¶
Snowflake¶
A transformação para o Snowflake variará dependendo do nome do esquema personalizado MySchema, do nome do banco de dados personalizado MyDatabase ou da não seleção de um banco de dados ou esquema personalizado nas configurações de conversão.
Custom Schema¶
Custom Database¶
Non selected¶
Problemas conhecidos¶
1. Locking row for access logic difference¶
No Snowflake, o acesso a objetos e elementos é baseado em usuários e privilégios.
EWIs relacionados¶
SSC-FDM-0007: Elemento com dependências ausentes.
SSC-FDM-0019: Semantic information could not be loaded.
Tabelas¶
Referência de tradução para converter a instrução Teradata TABLE para o Snowflake
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição ¶
A instrução TABLE do Teradata é convertida para a sintaxe do Snowflake TABLE.
For more information, see the Teradata CREATE TABLE documentation.
Amostra de padrões da origem¶
Criação simples Tabela¶
Teradata
Tabela¶
Snowflake
Tabela¶
Cláusula de tipo de tabela - SET e MULTISET¶
A cláusula kind do Teradata determina se as linhas duplicadas são permitidas (MULTISET) ou não (SET).
Teradata¶
Tabela¶
Snowflake¶
Tabela¶
Tabelas temporárias voláteis e globais¶
As tabelas Volatile e Global Temporary do Teradata são usadas para o armazenamento temporário de dados. A diferença está no fato de que a definição da tabela (DDL) das tabelas Global Temporary é mantida no Data Dictionary, enquanto a definição das tabelas Volatile não é armazenada.
Teradata¶
Tabela¶
Snowflake¶
Tabela¶
Com opção de dados e sem dados¶
Teradata
Tabela¶
Snowflake
Tabela¶
Palavras-chave reservadas e limitadas do Snowflake¶
SnowConvert AI facilita o sem interrupções SQL Migrações de para Snowflake abordando desafios associados a palavras-chave reservadas. De acordo com a documentação de palavras-chave reservadas e limitadas, certas palavras-chave não podem ser usadas como nomes de colunas, nomes de tabelas ou aliases sem tratamento especial. SnowConvert AI inclui funcionalidade para garantir SQL compatibilidade de código nesses casos.
Palavras-chave ANSI reservadas como nomes de colunas
Para nomes de colunas que correspondam a ANSI ou Snowflake palavras-chave reservadas, o SnowConvert AI envolve automaticamente o nome da coluna entre aspas duplas (") para cumprir as regras de sintaxe do Snowflake. Esse ajuste garante que as consultas com esses nomes de coluna sejam compiladas corretamente no Snowflake sem exigir intervenção manual.
Exemplo:
Tabela¶
Snowflake
Tabela¶
Palavras-chave reservadas específicas do Snowflake
Columns that match Snowflake-specific reserved keywords (for example, CONSTRAINT, CURRENT_DATE, CURRENT_TIME) may still cause compilation issues even when wrapped in quotes. SnowConvert AI detects these instances and generates a warning with code SSC-EWI-0045, prompting users to review and potentially rename these columns for compatibility.
Exemplo:
Tabela¶
Snowflake
Tabela¶
Problemas conhecidos¶
1. Create table options not supported¶
Conforme mostrado no exemplo «Simple Create Table», o Snowflake não oferece suporte às opções de criação de tabela do Teradata. Eles são removidos.
2. Partition by performance issues¶
No exemplo «Simple Create Table», a instrução partition by foi removida devido a considerações de desempenho.
3. Primary Index moved¶
No Teradata, a restrição de índice primário é declarada fora da instrução create table, mas no Snowflake é necessário que ela esteja dentro, conforme mostrado no exemplo «Simple Create Table».
4. SET semantics not supported¶
Conforme mostrado no exemplo «Cláusula de tipo de tabela - SET e MULTISET», o Snowflake não oferece suporte à semântica SET do Teradata. Eles são removidos.
5. Global Temporary table option not supported¶
Conforme mostrado no exemplo «Tabela temporária volátil e global», o Snowflake não oferece suporte à opção de tabela temporária global do Teradata. Ela será removido.
6. Compress unsupported¶
COMPRESS (value1. value2, value3) foi removido por não ser suportado.
7. On commit unsupported¶
On commit é removido por não ter suporte.
8. Block compression unsupported¶
Block compression foi removido por não ser suportado.
9. Normalize unsupported¶
Normalize foi removido por não ser suportado.
EWIs relacionados¶
SSC-FDM-0009: GLOBAL TEMPORARY TABLE functionality not supported.
SSC-FDM-0019: Semantic information could not be loaded.
SSC-FDM-TD0024: A funcionalidade de tabela definida não é compatível.
SSC-PRF-0007: CLUSTER BY performance review.
SSC-EWI-0045: O nome da coluna é Snowflake Reserved Keyword.
WITH DEFAULT¶
Referência de tradução para converter a cláusula Teradata WITH DEFAULT em definições de coluna para Snowflake
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição ¶
A cláusula WITH DEFAULT do Teradata define um valor padrão do sistema para as colunas que são inseridas sem valores. Esse valor é normalmente equivalente a zero ou vazio.
Sintaxe:¶
A tabela a seguir mostra os tipos de dados do Teradata, seu tipo correspondente no Snowflake e o valor padrão a ser definido, se suportado.
| Teradata | Snowflake | Default Value |
|---|---|---|
| BLOB[(n)] | BYTE | NOT SUPPORTED |
| BYTE[(n)] | BYTE | NOT SUPPORTED |
| VARBYTE[(n)] | BYTE | NOT SUPPORTED |
| BIGINT | BIGINT | 0 |
| BYTEINT | BYTEINT | 0 |
| DECIMAL [(n[,m])] | DECIMAL | 0 |
| DOUBLE PRECISION | DOUBLE PRECISION | 0 |
| FLOAT | FLOAT | 0 |
| INTEGER | INTEGER | 0 |
| NUMBER(n[,m]) | NUMBER | 0 |
| NUMBER[(*[,m])] | NUMBER | 0 |
| NUMERIC [(n[,m])] | NUMERIC | 0 |
| REAL | REAL | 0 |
| SMALLINT | SMALLINT | 0 |
| DATE | DATE | CURRENT_DATE |
| TIME [(n)] | TIME | CURRENT_TIME |
| TIMESTAMP [(n)] | TIMESTAMP | CURRENT_TIMESTAMP |
| TIMESTAMP WITH TIME ZONE | TIMESTAMP_TZ | LOCALTIMESTAMP |
| INTERVAL DAY [(n)] | VARCHAR(21) | '0DAY' |
| INTERVAL DAY [(n)] TO HOUR | VARCHAR(21) | '0DAY' |
| INTERVAL DAY [(n)] TO MINUTE | VARCHAR(21) | '0DAY' |
| INTERVAL DAY [(n)] TO SECOND | VARCHAR(21) | '0DAY' |
| INTERVAL HOUR [(n)] | VARCHAR(21) | '0HOUR' |
| INTERVAL HOUR [(n)] TO MINUTE | VARCHAR(21) | '0HOUR' |
| INTERVAL HOUR [(n)] TO SECOND | VARCHAR(21) | '0HOUR' |
| INTERVAL MINUTE [(n)] | VARCHAR(21) | '0MINUTE' |
| INTERVAL MINUTE [(n)] TO SECOND [(m)] | VARCHAR(21) | '0MINUTE' |
| INTERVAL MONTH | VARCHAR(21) | '0MONTH' |
| INTERVAL SECOND [(n,[m])] | VARCHAR(21) | '0SECOND' |
| INTERVAL YEAR [(n)] | VARCHAR(21) | '0YEAR' |
| INTERVAL YEAR [(n)] TO MONTH | VARCHAR(21) | '0YEAR' |
| CHAR[(n)] | CHAR | '' |
| CHARACTER(n) CHARACTER SET GRAPHIC | - | NOT SUPPORTED |
| CLOB | - | NOT SUPPORTED |
| CHAR VARYING(n) | VARCHAR | '' |
| LONG VARCHAR | - | NOT SUPPORTED |
| LONG VARCHAR CHARACTER SET GRAPHIC | - | NOT SUPPORTED |
| VARCHAR(n) | VARCHAR | '' |
| VARCHAR(n) CHARACTER SET GRAPHIC | - | NOT SUPPORTED |
| PERIOD(DATE) | VARCHAR(24) | NOT SUPPORTED |
| PERIOD(TIME [(n)]) | VARCHAR(24) | NOT SUPPORTED |
| PERIOD(TIMESTAMP [(n)]) | VARCHAR(24) | NOT SUPPORTED |
Amostra de padrões da origem¶
Teradata¶
Consulta¶
Snowflake ¶
Consulta¶
Problemas conhecidos¶
1. Unsupported types¶
Conforme mostrado na tabela de descrição, alguns tipos não são compatíveis e nenhum valor padrão será definido ao transformar a cláusula WITH DEFAULT.
EWIs relacionados¶
SSC-EWI-0021: Não compatível com a do Snowflake.
SSC-EWI-0036: Tipo de dados convertido em outro tipo de dados.
CREATE MACRO¶
Referência de tradução para converter Teradata CREATE MACRO para Script Snowflake
Descrição ¶
O Teradata CREATE MACRO define uma ou mais instruções que são comumente usadas ou que executam uma operação complexa, evitando assim escrever a mesma sequência de instruções várias vezes. A macro é executada quando é chamada pela instrução EXECUTE.
For more information, see the Teradata CREATE MACRO documentation.
Amostra de padrões de origem ¶
Dados de configuração¶
O código a seguir é necessário para executar os padrões de amostra apresentados nesta seção.
Teradata¶
Snowflake¶
Macro básica ¶
Como não há nenhum objeto de macro no Snowflake, a ferramenta de conversão transforma as macros do Teradata em procedimentos armazenados do Snowflake Scripting. Além disso, para replicar a funcionalidade do conjunto de resultados retornado, no Snowflake Scripting, a consulta que deve retornar um conjunto de dados de uma macro é atribuída a uma variável RESULTSET que será então retornada.
Teradata ¶
Consulta¶
Resultado¶
Snowflake Scripting ¶
Consulta¶
Resultado¶
Macro chama outra macro ¶
O SnowConvert AI oferece suporte ao cenário em que uma macro chama outra macro e, por transitividade, um conjunto de resultados é retornado obtendo os resultados das do Snowflake RESULT_SCAN(LAST_QUERY_ID()).
Teradata¶
Consulta¶
Resultado¶
Snowflake Scripting ¶
Consulta¶
Resultado¶
Macro sem conjunto de resultados¶
Nem todas as macros têm a intenção de retornar um conjunto de resultados. O cenário mencionado também é suportado.
Teradata¶
Consulta¶
Resultado¶
Snowflake Scripting ¶
Consulta¶
Resultado¶
A macro retorna vários conjuntos de resultados¶
No Teradata, as macros podem retornar mais de um conjunto de resultados de uma única macro.
Os procedimentos do Snowflake Scripting permitem que apenas um conjunto de resultados seja retornado por procedimento. Para replicar o comportamento do Teradata, quando há dois ou mais conjuntos de resultados a serem retornados, eles são armazenados em tabelas temporárias. O procedimento Snowflake Scripting retornará uma matriz contendo o nome das tabelas temporárias.
Teradata¶
Consulta¶
Result Set 1¶
Result Set 2¶
Snowflake Scripting ¶
Consulta¶
Result Set 1¶
Visualize Result Sets¶
Ao executar o procedimento acima no Snowflake, será retornado uma matriz com nomes de tabelas temporárias:
[ «RESULTSET_93D50CBB_F22C_418A_A88C_4E1DE101B500», «RESULTSET_6BDE39D7_0554_406E_B52F_D9E863A3F15C»]
É necessário executar as seguintes consultas para exibir os conjuntos de resultados como no Teradata.
Consulta¶
Result Set 1¶
Result Set 2¶
Problemas conhecidos ¶
Não foram encontrados problemas.
EWIs relacionados¶
CREATE PROCEDURE¶
Referência de tradução para converter Teradata CREATE PROCEDURE para Script Snowflake
Descrição
A instrução do Teradata CREATE PROCEDURE e REPLACE PROCEDURE gera ou substitui uma implementação de procedimento armazenado e a compila.
For more information, see the Teradata CREATE PROCEDURE and REPLACE PROCEDURE documentation.
Amostra de padrões de origem ¶
Dados de configuração¶
O código a seguir é necessário para executar os padrões de amostra apresentados nesta seção.
Teradata¶
Snowflake¶
Procedimento básico ¶
Teradata ¶
Consulta¶
Resultado¶
Snowflake Scripting ¶
Consulta¶
Resultado¶
Parâmetro isolado ¶
Teradata¶
Consulta¶
Resultado¶
Snowflake Scripting ¶
Consulta¶
Resultado¶
Parâmetro de saída múltipla ¶
Teradata¶
Consulta¶
Resultado¶
Snowflake Scripting ¶
Consulta¶
Resultado¶
Parâmetro de saída múltipla com conjuntos de resultados dinâmicos ¶
Teradata¶
Consulta¶
Resultado¶
 (1).png)
Snowflake Scripting ¶
Consulta¶
Problemas conhecidos ¶
1. SQL Data Access
Por padrão, os procedimentos do Snowflake suportam a execução de qualquer tipo de instrução SQL, incluindo instruções de leitura ou modificação de dados, tornando a cláusula de acesso a dados SQL irrelevante. Essa cláusula será ignorada ao converter o procedimento.
2. Objetos de nível superior no relatório de avaliação
Os elementos (tabelas temporais ou exibições) dentro dos procedimentos armazenados estão sendo contados no relatório de avaliação como objetos de nível superior. A equipe do SnowConvert AI está trabalhando agora em uma correção para este cenário.
EWIs relacionados¶
SSC-EWI-0073: Revisão de equivalência funcional pendente.
SSC-FDM-0020: Vários conjuntos de resultados são retornados em tabelas temporárias.