SnowConvert AI - Teradata

O que é o SnowConvert AI para Teradata?

O SnowConvert AI é um software que entende o Teradata SQL, BTEQ, e outros scripts específicos do Teradata (como Fastload, Multiload, TPump e arquivos TPT) e converte esse código-fonte em código [Snowflake] funcionalmente equivalente (https://www.snowflake.com/).

Tipos de conversão

Especificamente, o SnowConvert AI para Teradata realiza as seguintes conversões:

Teradata SQL para Snowflake SQL

O SnowConvert AI entende o código-fonte do Teradata e converte a linguagem de definição de dados (DDL), a linguagem de manipulação de dados (DML) e as funções no código-fonte para o SQL correspondente no destino: o Snowflake. O SnowConvert AI pode migrar o código-fonte em qualquer uma destas três extensões: .sql, .dml, .ddl.

Procedimentos armazenados do Teradata para JavaScript incorporados no Snowflake SQL

O SnowConvert AI recebe procedimentos armazenados Teradata (geralmente escritos em SQL) e os converte em JavaScript incorporado no Snowflake SQL. As linguagens CREATE PROCEDURE e REPLACE PROCEDURE do Teradata são substituídas pelas linguagens CREATE OR REPLACE PROCEDURE do Snowflake. OJavaScript é chamado como uma linguagem de script e todas as instruções internas são convertidas em JavaScript.

Teradata BTEQ, Fastload, Multiload e TPT para Python

Basic Teradata Query (BTEQ) é a linguagem de script proprietária do Teradata. Todos os arquivos de script BTEQserão convertidos em scripts Python. Uma classe auxiliar será chamada a partir dos scripts convertidos para criar a equivalência funcional entre a origem e o destino. Mais informações sobre os Auxiliares do Python podem ser encontradas em nossa página de Referência de conversão. BTEQ pode ser executado em lote de fora do ambiente Snowflake. Saiba mais sobre como você pode conectar scripts Python diretamente ao Snowflake.

Arquivos BTEQ são também a base para vários outros tipos de dados proprietários que o Teradata criou:

  • Fastload

  • Multiload

  • TPUMP

Cada um destes tipos de arquivos é extensão de BTEQ. OSnowConvert AI converte cada um desses tipos de arquivo em Python.

Cada uma dessas conversões é otimizada para fornecer a saída mais funcionalmente equivalente pronta para uso no Snowflake. Para obter mais informações sobre o poder do tipo de conversão que o SnowConvert AI pode oferecer, você pode saber mais sobre nossa ferramenta visitando nosso completo Guia de referência de SQL.

Terminologia do SnowConvert AI

Antes de nos perdermos na mágica dessas conversões de código, aqui estão alguns termos/definições para que você saiba o que queremos dizer quando começarmos a usá-los em toda a documentação:

  • SQL (Structured Query Language): a linguagem padrão para armazenar, manipular e recuperar dados na maioria das arquiteturas modernas de banco de dados.

  • BTEQ (Basic Teradata Query): BTEQ foi a primeira ferramenta utilitária e de consulta para Teradata.

  • TPT (Teradata Parallel Transporter): TPT é uma ferramenta utilitária de nova geração que tem como objetivo criar uma ferramenta única para todas as atividades relacionadas ao carregamento e à exportação de dados de/para bancos de dados Teradata.

  • SnowConvert AI: o software que converte, de forma segura e automática, seus arquivos Teradata para a plataforma de dados em nuvem Snowflake.

  • Regra de conversão ou regra de transformação: regras que permitem ao SnowConvert AI converter uma parte do código-fonte para o código de destino esperado.

  • Análise: análise ou parsing é um processo inicial feito pelo SnowConvert AI para entender o código-fonte e criar uma estrutura de dados interna necessária para processar as regras de conversão.

Nas próximas páginas, você aprenderá mais sobre os tipos de conversões que oSnowConvert AI para Teradata pode realizar. Se estiver pronto para começar, visite a página Getting Started nesta documentação. Se você tiver interesse em obter mais informações sobre o SnowConvert AI em geral, visite nossa página de informações SnowConvert AI para Teradata.

Amostra de conversão

Teradata SQL Statement

-- CREATE TABLE DDL
CREATE SET TABLE TABLE1,
    NO BEFORE JOURNAL,
    NO AFTER JOURNAL,
    CHECKSUM = DEFAULT,
    DEFAULT MERGEBLOCKRATIO
(
    COL1 VARCHAR(15) CHARACTER SET LATIN NOT CASESPECIFIC,
    Col2 BYTEINT CHECK ( CurrentFlag  IN (0 ,1 ) ) NOT NULL,
    COL3 DATE FORMAT 'yyyy-mm-dd',
    COL4 BLOB(2097088000),
    COL5 BYTEINT,
    COL7 INTEGER NOT NULL COMPRESS (1 ,2 ,3 ,4),
    COL8 INTERVAL HOUR(2) TO MINUTE
);

-- REPLACE VIEW DDL
REPLACE VIEW VIEW1 AS
SELECT * FROM TABLE1
UNION ALL
SELECT MAX(COL1) FROM TABLE1;
Copy

The Converted Snowflake SQL Code:

-- CREATE TABLE DDL
--** SSC-FDM-TD0024 - SET TABLE FUNCTIONALITY NOT SUPPORTED. TABLE MIGHT HAVE DUPLICATE ROWS **
CREATE OR REPLACE TABLE TABLE1
(
    COL1 VARCHAR(15) COLLATE 'en-cs',
    Col2 BYTEINT
                 !!!RESOLVE EWI!!! /*** SSC-EWI-0035 - CHECK STATEMENT NOT SUPPORTED ***/!!!
 CHECK ( CurrentFlag  IN (0 ,1 ) ) NOT NULL,
    COL3 DATE,
    COL4 BINARY /*** SSC-FDM-TD0001 - COLUMN CONVERTED FROM BLOB DATA TYPE ***/,
    COL5 BYTEINT,
    COL7 INTEGER NOT NULL,
    COL8 VARCHAR(21) !!!RESOLVE EWI!!! /*** SSC-EWI-0036 - INTERVAL HOUR(2) TO MINUTE DATA TYPE CONVERTED TO VARCHAR ***/!!!
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"teradata"}}'
;

-- REPLACE VIEW DDL
CREATE OR REPLACE VIEW VIEW1
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"teradata"}}'
AS
SELECT
    * FROM
    TABLE1
    UNION ALL
    SELECT
    MAX(COL1) FROM
    TABLE1;
Copy

Neste SQL convertido, você vê que estamos convertendo muitas coisas, como:

  • Adicionar PUBLIC Schema por padrão para todos os nomes de tabelas e exibições se o usuário não especificar um (consulte como especificar um esquema).

  • CREATESETTABLE para CREATETABLE

  • REPLACEVIEW para CREATEORREPLACEVIEW

  • Tipos de dados: BLOB para BINARY e INTERVAL para VARCHAR

  • Atributos de tipo de dados: NOT CASESPECIFIC para COLLATE

  • Remoção de partes do Teradata SQL que não são necessárias no Snowflake devido à arquitetura do Snowflake, como NO BEFORE JOURNAL, NO AFTER JOURNAL, CHECKSUM, COMPRESS e DEFAULT MERGEBLOCKRATIO.