Minimizar problemas de SQL para migrações teradata

Este artigo é a quinta parte de uma série de sete partes que fornece orientações sobre como migrar do Teradata para o Azure Synapse Analytics. O foco deste artigo são as melhores práticas para minimizar os problemas do SQL.

Descrição Geral

Características dos ambientes Teradata

Dica

O Teradata foi pioneiro em bases de dados SQL de grande escala com o MPP nos anos 80.

Em 1984, a Teradata lançou inicialmente o produto da base de dados. Introduziu técnicas de processamento paralelo em massa (MPP) para permitir o processamento de dados a uma escala mais eficiente do que as tecnologias de mainframe existentes disponíveis na altura. Desde então, o produto evoluiu e tem muitas instalações entre grandes instituições financeiras, telecomunicações e empresas de retalho. A implementação original utilizava hardware proprietário e era um canal anexado a mainframes, normalmente processadores compatíveis com IBM ou IBM.

Embora os anúncios mais recentes tenham incluído a conectividade de rede e a disponibilidade da pilha de tecnologia Teradata na cloud (incluindo o Azure), a maioria das instalações existentes estão no local, pelo que muitos utilizadores estão a considerar migrar alguns ou todos os seus dados teradata para o Azure Synapse Analytics para obter os benefícios de uma mudança para um ambiente de cloud moderno.

Dica

Muitas instalações teradata existentes são armazéns de dados que utilizam um modelo de dados dimensional.

A tecnologia Teradata é frequentemente utilizada para implementar um armazém de dados, suportando consultas analíticas complexas em grandes volumes de dados com o SQL. Os modelos de dados dimensionais (esquemas de estrela ou floco de neve) são comuns, assim como a implementação de data marts para departamentos individuais.

Esta combinação de modelos de dados DIMENSIONais e SQL simplifica a migração para Azure Synapse, uma vez que os conceitos básicos e as competências do SQL são transferíveis. A abordagem recomendada é migrar o modelo de dados existente tal como está para reduzir o risco e o tempo desempeizado. Mesmo que a eventual intenção seja fazer alterações ao modelo de dados (por exemplo, mover para um modelo de cofre de dados), efetue uma migração tal como está inicial e, em seguida, faça alterações no ambiente da cloud do Azure, tirando partido do desempenho, escalabilidade elástica e vantagens de custos.

Embora a linguagem SQL tenha sido padronizada, os fornecedores individuais implementaram, em alguns casos, extensões proprietárias. Este documento realça potenciais diferenças de SQL que poderá encontrar ao migrar a partir de um ambiente teradata legado e fornece soluções alternativas.

Utilizar uma instância teradata da VM do Azure como parte de uma migração

Dica

Utilize uma VM do Azure para criar uma instância temporária do Teradata para acelerar a migração e minimizar o impacto no sistema de origem.

Tire partido do ambiente do Azure ao executar uma migração a partir de um ambiente teradata no local. O Azure fornece armazenamento na cloud acessível e escalabilidade elástica para criar uma instância teradata numa VM no Azure, alocada com o ambiente de Azure Synapse de destino.

Com esta abordagem, os utilitários Teradata padrão, como o Teradata Parallel Data Transporter (ou ferramentas de replicação de dados de terceiros, como a Réplica do Attunity) podem ser utilizados para mover eficientemente o subconjunto de tabelas Teradata que devem ser migradas para a instância da VM e, em seguida, todas as tarefas de migração podem ocorrer no ambiente do Azure. Esta abordagem tem vários benefícios:

  • Após a replicação inicial dos dados, o sistema de origem não é afetado pelas tarefas de migração.

  • As interfaces, ferramentas e utilitários do Teradata familiares estão disponíveis no ambiente do Azure.

  • Uma vez no ambiente do Azure, não existem potenciais problemas com a disponibilidade da largura de banda de rede entre o sistema de origem no local e o sistema de destino da cloud.

  • Ferramentas como Azure Data Factory podem chamar de forma eficiente utilitários, como o Teradata Parallel Transporter, para migrar dados de forma rápida e fácil.

  • O processo de migração é orquestrado e controlado inteiramente no ambiente do Azure.

Utilizar Azure Data Factory para implementar uma migração condicionada por metadados

Dica

Automatize o processo de migração com Azure Data Factory capacidades.

Automatize e orquestrar o processo de migração ao utilizar as capacidades no ambiente do Azure. Esta abordagem também minimiza o impacto da migração no ambiente Teradata existente, que pode já estar em execução perto da capacidade total.

Azure Data Factory é um serviço de integração de dados baseado na cloud que permite a criação de fluxos de trabalho orientados por dados na cloud para orquestrar e automatizar o movimento de dados e a transformação de dados. Com o Data Factory, pode criar e agendar fluxos de trabalho orientados por dados, denominados pipelines, que podem ingerir dados de arquivos de dados diferentes. Pode processar e transformar dados através de serviços de computação como o Azure HDInsight Hadoop, Spark, Azure Data Lake Analytics e Azure Machine Learning.

Ao criar metadados para listar as tabelas de dados a migrar e a respetiva localização, pode utilizar as instalações do Data Factory para gerir e automatizar partes do processo de migração. Também pode utilizar Azure Synapse Pipelines.

Diferenças de DDL sql entre Teradata e Azure Synapse

Linguagem DDL (SqL Data Definition Language)

Dica

Os comandos CREATE TABLE DDL do SQL têm CREATE VIEW elementos principais padrão, mas também são utilizados para definir opções específicas da implementação.

A norma ANSI SQL define a sintaxe básica para comandos DDL, como CREATE TABLE e CREATE VIEW. Estes comandos são utilizados no Teradata e no Azure Synapse, mas também foram expandidos para permitir a definição de funcionalidades específicas da implementação, como a indexação, a distribuição de tabelas e as opções de criação de partições.

As secções seguintes abordam as opções específicas de Teradata a considerar durante uma migração para Azure Synapse.

Considerações sobre tabelas

Dica

Utilize índices existentes para dar uma indicação de candidatos para indexação no armazém migrado.

Ao migrar tabelas entre diferentes tecnologias, apenas os dados não processados e os respetivos metadados descritivos são movidos fisicamente entre os dois ambientes. Outros elementos da base de dados do sistema de origem, como índices e ficheiros de registo, não são migrados diretamente, uma vez que estes podem não ser necessários ou podem ser implementados de forma diferente no novo ambiente de destino. Por exemplo, não há equivalente à opção MULTISET na sintaxe de CREATE TABLE Teradata.

É importante compreender onde as otimizações de desempenho ( como índices) foram utilizadas no ambiente de origem. Isto indica onde a otimização do desempenho pode ser adicionada no novo ambiente de destino. Por exemplo, se tiver sido criado um índice secundário não exclusivo (NUSI) no ambiente teradata de origem, tal poderá indicar que deve ser criado um índice não agrupado na base de dados Azure Synapse migrada. Outras técnicas nativas de otimização do desempenho, como a replicação de tabelas, podem ser mais aplicáveis do que a criação de um índice "like-for-like" reto.

Tipos de tabela Teradata não suportados

Dica

As tabelas padrão no Azure Synapse podem suportar tabelas temporais e temporais migradas do Teradata.

O Teradata inclui suporte para tipos de tabela especiais para séries temporais e dados temporais. A sintaxe e algumas das funções para estes tipos de tabela não são suportadas diretamente no Azure Synapse, mas os dados podem ser migrados para uma tabela padrão com tipos de dados adequados e indexação ou criação de partições na coluna de data/hora.

O Teradata implementa a funcionalidade de consulta temporal através da reescrita de consultas para adicionar filtros adicionais numa consulta temporal para limitar o intervalo de datas aplicável. Se esta funcionalidade estiver atualmente a ser utilizada no ambiente teradata de origem e for migrada, esta filtragem adicional terá de ser adicionada às consultas temporais relevantes.

O ambiente do Azure também inclui funcionalidades específicas para análises complexas em dados de série temporal em escala denominados informações de série temporal— isto destina-se a aplicações de análise de dados IoT e pode ser mais adequado para este caso de utilização.

Tipos de dados Teradata não suportados

Dica

Avalie o impacto dos tipos de dados não suportados como parte da fase de preparação.

A maioria dos tipos de dados Teradata tem um equivalente direto no Azure Synapse. A tabela seguinte mostra os tipos de dados Teradata que não são suportados no Azure Synapse juntamente com o mapeamento recomendado. Na tabela, o tipo de coluna Teradata é o tipo armazenado no catálogo do sistema, por exemplo, em DBC.ColumnsV.

Tipo de coluna teradata Tipo de dados Teradata Azure Synapse tipo de dados
++ TD_ANYTYPE Não suportado no Azure Synapse
A1 MATRIZ Não suportado no Azure Synapse
AN MATRIZ Não suportado no Azure Synapse
AT HORA HORA
BF BYTE BINÁRIO
BO BLOB O tipo de dados BLOB não é suportado diretamente, mas pode ser substituído por BINÁRIO.
BV VARBYTE BINÁRIO
CF VARCHAR CARÁTER
CO CLOB O tipo de dados CLOB não é suportado diretamente, mas pode ser substituído por VARCHAR.
CV VARCHAR VARCHAR
D DECIMAL DECIMAL
DA DATA DATA
DH INTERVALO DIA A HORA Os tipos de dados INTERVAL não são suportados em Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de datas (por exemplo, DATEDIFF e DATEADD).
DM INTERVALO DIA A MINUTO Os tipos de dados INTERVAL não são suportados em Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de datas (por exemplo, DATEDIFF e DATEADD).
DS INTERVALO DIA A SEGUNDO Os tipos de dados INTERVAL não são suportados em Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de datas (por exemplo, DATEDIFF e DATEADD).
DT CONJUNTO DE DADOS O tipo de dados CONJUNTO DE DADOS é suportado no Azure Synapse.
DY DIA DO INTERVALO Os tipos de dados INTERVAL não são suportados em Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de datas (por exemplo, DATEDIFF e DATEADD).
F FLOAT FLOAT
HM INTERVALO DE HORA A MINUTO Os tipos de dados INTERVAL não são suportados em Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de datas (por exemplo, DATEDIFF e DATEADD).
HR HORA DE INTERVALO Os tipos de dados INTERVAL não são suportados em Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de datas (por exemplo, DATEDIFF e DATEADD).
HS INTERVALO DE HORA PARA SEGUNDO Os tipos de dados INTERVAL não são suportados em Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de datas (por exemplo, DATEDIFF e DATEADD).
I1 BYTEINT TINYINT
I2 SMALLINT SMALLINT
I8 BIGINT BIGINT
I INTEGER INT
JN JSON O tipo de dados JSON não é atualmente suportado diretamente no Azure Synapse, mas os dados JSON podem ser armazenados num campo VARCHAR.
MI MINUTO DE INTERVALO Os tipos de dados INTERVAL não são suportados em Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de datas (por exemplo, DATEDIFF e DATEADD).
MO MÊS DE INTERVALO Os tipos de dados INTERVAL não são suportados em Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de datas (por exemplo, DATEDIFF e DATEADD).
MS INTERVALO MINUTO A SEGUNDO Os tipos de dados INTERVAL não são suportados em Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de datas (por exemplo, DATEDIFF e DATEADD).
N NÚMERO NUMERIC
PD PONTO FINAL(DATA) Pode ser convertido em VARCHAR ou dividido em duas datas separadas
PM PONTO FINAL (CARIMBO DE DATA/HORA COM FUSO HORÁRIO) Pode ser convertido em VARCHAR ou dividido em dois carimbos de data/hora separados (DATETIMEOFFSET)
PS PERIOD(TIMESTAMP) Pode ser convertido em VARCHAR ou dividido em dois carimbos de data/hora separados (DATETIMEOFFSET)
PT PERIOD(TIME) Pode ser convertido em VARCHAR ou dividido em duas vezes separadas
PZ PONTO FINAL (TEMPO COM FUSO HORÁRIO) Pode ser convertido em VARCHAR ou dividido em duas horas separadas, mas COM FUSO HORÁRIO não é suportado para TIME
SC SEGUNDO INTERVALO Os tipos de dados INTERVAL não são suportados em Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de datas (por exemplo, DATEDIFF e DATEADD).
SZ CARIMBO DE DATA/HORA COM FUSO HORÁRIO DATETIMEOFFSET
TS CARIMBO DE DATA/HORA DATETIME ou DATETIME2
TZ HORA COM FUSO HORÁRIO TIME WITH TIME ZONE não é suportado porque a HORA é armazenada com a hora do "relógio de parede" apenas sem um desvio de fuso horário.
XM XML O tipo de dados XML não é atualmente suportado diretamente no Azure Synapse, mas os dados XML podem ser armazenados num campo VARCHAR.
YM INTERVALO ANO A MÊS Os tipos de dados INTERVAL não são suportados no Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de datas (por exemplo, DATEDIFF e DATEADD).
YR ANO DE INTERVALO Os tipos de dados INTERVAL não são suportados no Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de datas (por exemplo, DATEDIFF e DATEADD).

Utilize os metadados das tabelas do catálogo Teradata para determinar se algum destes tipos de dados deve ser migrado e permitir isso no plano de migração. Por exemplo, utilize uma consulta SQL como esta para encontrar ocorrências de tipos de dados não suportados que precisem de atenção.

SELECT
ColumnType, CASE
WHEN ColumnType = '++' THEN 'TD_ANYTYPE' 
WHEN ColumnType = 'A1' THEN 'ARRAY' WHEN 
ColumnType = 'AN' THEN 'ARRAY' WHEN 
ColumnType = 'BO' THEN 'BLOB'
WHEN ColumnType = 'CO' THEN 'CLOB'
WHEN ColumnType = 'DH' THEN 'INTERVAL DAY TO HOUR' WHEN 
ColumnType = 'DM' THEN 'INTERVAL DAY TO MINUTE' WHEN 
ColumnType = 'DS' THEN 'INTERVAL DAY TO SECOND' WHEN
ColumnType = 'DT' THEN 'DATASET'
WHEN ColumnType = 'DY' THEN 'INTERVAL DAY'
WHEN ColumnType = 'HM' THEN 'INTERVAL HOUR TO MINUTE' WHEN
ColumnType = 'HR' THEN 'INTERVAL HOUR'
WHEN ColumnType = 'HS' THEN 'INTERVAL HOUR TO SECOND' WHEN
ColumnType = 'JN' THEN 'JSON'
WHEN ColumnType = 'MI' THEN 'INTERVAL MINUTE' WHEN 
ColumnType = 'MO' THEN 'INTERVAL MONTH'
WHEN ColumnType = 'MS' THEN 'INTERVAL MINUTE TO SECOND' WHEN
ColumnType = 'PD' THEN 'PERIOD(DATE)'
WHEN ColumnType = 'PM' THEN 'PERIOD (TIMESTAMP WITH TIME ZONE)'
WHEN ColumnType = 'PS' THEN 'PERIOD(TIMESTAMP)' WHEN 
ColumnType = 'PT' THEN 'PERIOD(TIME)'
WHEN ColumnType = 'PZ' THEN 'PERIOD (TIME WITH TIME ZONE)' WHEN
ColumnType = 'SC' THEN 'INTERVAL SECOND'
WHEN ColumnType = 'SZ' THEN 'TIMESTAMP WITH TIME ZONE' WHEN
ColumnType = 'XM' THEN 'XML'
WHEN ColumnType = 'YM' THEN 'INTERVAL YEAR TO MONTH' WHEN
ColumnType = 'YR' THEN 'INTERVAL YEAR'
END AS Data_Type,
COUNT (*) AS Data_Type_Count FROM
DBC.ColumnsV
WHERE DatabaseName IN ('UserDB1', 'UserDB2', 'UserDB3') -- select databases to be migrated
GROUP BY 1,2
ORDER BY 1;

Dica

Ferramentas e serviços de terceiros podem automatizar tarefas de mapeamento de dados.

Existem fornecedores de terceiros que oferecem ferramentas e serviços para automatizar a migração, incluindo o mapeamento de tipos de dados. Se uma ferramenta ETL de terceiros, como a Informatica ou o Talend, já estiver a ser utilizada no ambiente Teradata, essas ferramentas podem implementar as transformações de dados necessárias.

Geração de Linguagem de Definição de Dados (DDL)

Dica

Utilize metadados Teradata existentes para automatizar a geração de CREATE TABLE e CREATE VIEW DDL para Azure Synapse.

Edite teradata CREATE TABLE e CREATE VIEW scripts existentes para criar as definições equivalentes com tipos de dados modificados, conforme descrito anteriormente, se necessário. Normalmente, isto envolve remover cláusulas adicionais específicas de Teradata, como FALLBACK ou MULTISET.

No entanto, todas as informações que especificam as definições atuais de tabelas e vistas no ambiente Teradata existente são mantidas nas tabelas de catálogo do sistema. Esta é a melhor origem destas informações, uma vez que é garantido que estão atualizadas e concluídas. Tenha em atenção que a documentação mantida pelo utilizador pode não estar sincronizada com as definições atuais da tabela.

Aceda a estas informações através de vistas para o catálogo, como DBC.ColumnsV e gere as instruções DDL equivalentes CREATE TABLE para as tabelas equivalentes no Azure Synapse.

Dica

Ferramentas e serviços de terceiros podem automatizar tarefas de mapeamento de dados.

Existem parceiros da Microsoft que oferecem ferramentas e serviços para automatizar a migração, incluindo o mapeamento de tipos de dados. Além disso, se uma ferramenta ETL de terceiros, como a Informatica ou o Talend, já estiver a ser utilizada no ambiente Teradata, essa ferramenta pode implementar quaisquer transformações de dados necessárias.

Diferenças de DML do SQL entre Teradata e Azure Synapse

Linguagem de Manipulação de Dados SQL (DML)

Dica

Os comandos SELECTDML do SQL , INSERTe UPDATE têm elementos principais padrão, mas também podem implementar diferentes opções de sintaxe.

A norma ANSI SQL define a sintaxe básica para comandos DML, tais como SELECT, INSERT, UPDATEe DELETE. Tanto o Teradata como o Azure Synapse utilizam estes comandos, mas em alguns casos existem diferenças de implementação.

As secções seguintes abordam os comandos DML específicos do Teradata que deve considerar durante uma migração para Azure Synapse.

Diferenças de sintaxe da DML SQL

Tenha em atenção estas diferenças na sintaxe da Linguagem DML (SqL Data Manipulation Language) entre o Teradata SQL e o Azure Synapse (T-SQL) ao migrar:

  • QUALIFY: o Teradata suporta o QUALIFY operador . Por exemplo:

    SELECT col1
    FROM tab1
    WHERE col1='XYZ'
    QUALIFY ROW_NUMBER () OVER (PARTITION by
    col1 ORDER BY col1) = 1;
    

    A sintaxe Azure Synapse equivalente é:

    SELECT * FROM (
    SELECT col1, ROW_NUMBER () OVER (PARTITION by col1 ORDER BY col1) rn
    FROM tab1 WHERE col1='XYZ'
    ) WHERE rn = 1;
    
  • Aritmética de data: Azure Synapse tem operadores como DATEADD e DATEDIFF que podem ser utilizados em DATE ou DATETIME campos. O Teradata suporta subtração direta em datas como SELECT DATE1 - DATE2 FROM...

  • Em GROUP BY ordinal, forneça explicitamente o nome da coluna T-SQL.

  • LIKE ANY: o Teradata suporta LIKE ANY sintaxe como:

    SELECT * FROM CUSTOMER
    WHERE POSTCODE LIKE ANY
    ('CV1%', 'CV2%', 'CV3%');
    

    O equivalente na sintaxe Azure Synapse é:

    SELECT * FROM CUSTOMER
    WHERE
    (POSTCODE LIKE 'CV1%') OR (POSTCODE LIKE 'CV2%') OR (POSTCODE LIKE 'CV3%');
    
  • Consoante as definições do sistema, as comparações de carateres no Teradata podem não ser sensíveis a maiúsculas e minúsculas por predefinição. No Azure Synapse, as comparações de carateres são sempre sensíveis às maiúsculas e minúsculas.

Utilizar EXPLAIN para validar o SQL legado

Dica

Utilize consultas reais dos registos de consultas do sistema existentes para encontrar potenciais problemas de migração.

Uma forma de testar o Teradata SQL legado para compatibilidade com o Azure Synapse é capturar algumas instruções SQL representativas dos registos de consultas do sistema legados, prefixar essas consultas com EXPLAIN e (assumindo um modelo de dados migrado "like-for-like" no Azure Synapse com os mesmos nomes de tabela e coluna) executar essas EXPLAIN instruções no Azure Synapse. Qualquer SQL incompatível gerará um erro. Utilize estas informações para determinar a escala da tarefa de recodificação. Esta abordagem não requer que os dados sejam carregados para o ambiente do Azure, apenas que as tabelas e vistas relevantes tenham sido criadas.

Funções, procedimentos armazenados, acionadores e sequências

Dica

Como parte da fase de preparação, avalie o número e o tipo de objetos que não são de dados que estão a ser migrados.

Ao migrar a partir de um ambiente de armazém de dados legado maduro, como o Teradata, existem, muitas vezes, elementos diferentes de tabelas e vistas simples que precisam de ser migradas para o novo ambiente de destino. Alguns exemplos incluem funções, procedimentos armazenados, acionadores e sequências.

Como parte da fase de preparação, crie um inventário dos objetos que precisam de ser migrados e defina os métodos para os processar. Em seguida, atribua uma alocação adequada de recursos no plano do projeto.

Podem existir instalações no ambiente do Azure que substituem a funcionalidade implementada como funções ou procedimentos armazenados no ambiente Teradata. Neste caso, muitas vezes, é mais eficiente utilizar as instalações incorporadas do Azure em vez de recodificar as funções Teradata.

Dica

Os produtos e serviços de terceiros podem automatizar a migração de elementos não dados.

Os parceiros da Microsoft oferecem ferramentas e serviços que podem automatizar a migração.

Consulte as secções seguintes para obter mais informações sobre cada um destes elementos.

Funções

Tal como acontece com a maioria dos produtos de base de dados, o Teradata suporta funções do sistema e funções definidas pelo utilizador na implementação do SQL. Ao migrar para outra plataforma de base de dados, como Azure Synapse, as funções comuns do sistema estão disponíveis e podem ser migradas sem alterações. Algumas funções do sistema podem ter uma sintaxe ligeiramente diferente, mas as alterações necessárias podem ser automatizadas. As funções do sistema em que não existem equivalentes, como funções arbitrárias definidas pelo utilizador, poderão ter de ser recodificadas com os idiomas disponíveis no ambiente de destino. Azure Synapse utiliza a popular linguagem Transact-SQL para implementar funções definidas pelo utilizador.

Procedimentos armazenados

A maioria dos produtos de base de dados modernos permitem que os procedimentos sejam armazenados na base de dados. O Teradata fornece o idioma SPL para este fim. Normalmente, um procedimento armazenado contém instruções SQL e alguma lógica processual e pode devolver dados ou um estado.

Os conjuntos de SQL dedicados do Azure Synapse Analytics também suportam procedimentos armazenados através do T-SQL, pelo que, se tiver de migrar procedimentos armazenados, recodificá-los em conformidade.

Acionadores

Azure Synapse não suporta a criação de acionadores, mas pode implementá-los no Azure Data Factory.

Sequências

Azure Synapse sequências são processadas de forma semelhante ao Teradata, utilizando IDENTITY para criar chaves de substituição ou identidade gerida.

Mapeamento de Teradata para T-SQL

Esta tabela mostra o Teradata para t-SQL em conformidade com Azure Synapse mapeamento do tipo de dados SQL:

Tipo de Dados Teradata Azure Synapse Tipo de Dados SQL
 bigint  bigint
 bool  bit
 boolean  bit
 byteint  tinyint
 char [(p)]  char [(p)]
 char varying [(p)]  varchar [(p)]
 caráter [(p)]  char [(p)]
 carateres que variam [(p)]  varchar [(p)]
 data  data
 datetime  datetime
 dec [(p[,s])]  decimal [(p[,s])]
 decimal [(p[,s])]  decimal [(p[,s])]
 double  float(53)
 precisão dupla  float(53)
 float [(p)]  float [(p)]
 float4  float(53)
 float8  float(53)
 int  int
 int1 tinyint
 int2 smallint
 int4 int
 int8 bigint
 número inteiro número inteiro
 interval Não suportado
 caráter nacional variando [(p)] nvarchar [(p)]
 caráter nacional [(p)] nchar [(p)]
 carateres nacionais variando [(p)]  nvarchar [(p)]
 nchar [(p)]  nchar [(p)]
 numérico [(p[,s])]  numérico [(p[,s])
 nvarchar [(p)]  nvarchar [(p)]
 real  real
 smallint  smallint
 hora  hora
 hora com fuso horário  datetimeoffset
 tempo sem fuso horário  hora
 timespan  Não suportado
 carimbo de data/hora  datetime2
 timetz  datetimeoffset
 varchar [(p)]  varchar [(p)]

Resumo

As instalações teradata legadas típicas são implementadas de forma a facilitar a migração para Azure Synapse. Utilizam o SQL para consultas analíticas em grandes volumes de dados e estão numa forma de modelo de dados dimensional. Estes fatores tornam-nos bons candidatos à migração para Azure Synapse.

Para minimizar a tarefa de migrar o código SQL real, siga estas recomendações:

  • A migração inicial do armazém de dados deve ser igual à de minimizar o risco e o tempo decorrido, mesmo que o ambiente final eventual incorpore um modelo de dados diferente, como o cofre de dados.

  • Considere utilizar uma instância teradata numa VM do Azure como um passo em frente como parte do processo de migração.

  • Compreenda as diferenças entre a implementação do TERadata SQL e Azure Synapse.

  • Utilize metadados e registos de consultas da implementação teradata existente para avaliar o impacto das diferenças e planear uma abordagem para mitigar.

  • Automatize o processo sempre que possível para minimizar erros, riscos e tempo para a migração.

  • Considere utilizar parceiros e serviços especializados da Microsoft para simplificar a migração.

Passos seguintes

Para saber mais sobre as ferramentas da Microsoft e de terceiros, consulte o próximo artigo desta série: Ferramentas para migração do armazém de dados Teradata para o Azure Synapse Analytics.