Minimizar os problemas de SQL em migrações do Teradata

Este artigo é a quinta parte de uma série de sete partes que oferece diretrizes de como fazer a migração do Teradata para o Azure Synapse Analytics. O foco deste artigo são as melhores práticas para minimizar problemas de SQL.

Visão geral

Características de ambientes do Teradata

Dica

A Teradata foi a empresa pioneira em bancos de dados SQL em grande escala usando MPP nos anos 80.

Em 1984, a Teradata lançou seu primeiro produto de banco de dados. Ela introduziu técnicas de MPP (processamento massivamente paralelo) para habilitar o processamento de dados em uma escala mais eficiente do que as oferecidas pelas tecnologias de mainframe que existiam no momento. Desde então, o produto evoluiu e tem muitas instalações entre grandes instituições financeiras, telecomunicações e empresas de varejo. A implementação original usava hardware proprietário e era um canal anexado a mainframes, normalmente processadores IBM ou compatíveis com a IBM.

Embora anúncios mais recentes tenham incluído a conectividade de rede e a disponibilidade da pilha de tecnologia da Teradata na nuvem (incluindo o Azure), a maioria das instalações existentes é local. Portanto, muitos usuários estão considerando migrar alguns dados do Teradata ou todos eles para o Azure Synapse Analytics a fim de obter os benefícios de um ambiente de nuvem moderno.

Dica

Muitas instalações existentes do Teradata são data warehouses que usam um modelo de dados dimensional.

A tecnologia do Teradata costuma ser usada para implementar um data warehouse, dando suporte a consultas analíticas complexas em grandes volumes de dados usando SQL. 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.

Essa combinação de modelos de dados SQL e dimensionais simplifica a migração para o Azure Synapse, já que os conceitos básicos e as habilidades de SQL são transferíveis. A abordagem recomendada é migrar o modelo de dados existente como está para reduzir o risco e o tempo necessário. Mesmo que a intenção eventual seja fazer alterações no modelo de dados (por exemplo, migrar para um modelo de cofre de dados), execute uma migração inicial como está e faça alterações no ambiente de nuvem do Azure, aproveitando o desempenho, a escalabilidade elástica e as vantagens de custo dele.

Embora a linguagem SQL tenha sido padronizada, os fornecedores individuais implementaram, em alguns casos, extensões proprietárias. Este documento destaca possíveis diferenças de SQL que podem ser encontradas durante a migração de um ambiente herdado do Teradata e oferece soluções alternativas.

Usar uma instância do Teradata de VM do Azure durante a migração

Dica

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

Aproveite o ambiente do Azure ao executar uma migração de um ambiente local do Teradata. O Azure oferece armazenamento em nuvem acessível e escalabilidade elástica para criar uma instância do Teradata dentro de uma VM no Azure, localizada no mesmo ambiente do Azure Synapse de destino.

Com essa abordagem, utilitários padrão do Teradata, como o Teradata Parallel Data Transporter (ou ferramentas de replicação de dados de terceiros, como o Attunity Replicate) podem ser usados para mover com eficiência o subconjunto de tabelas do Teradata que deve ser migrado para a instância da VM e, depois, todas as tarefas de migração poderão ocorrer no ambiente do Azure. Essa abordagem tem vários benefícios:

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

  • Há interfaces, ferramentas e utilitários conhecidos do Teradata disponíveis no ambiente do Azure.

  • Após a migração para o ambiente do Azure, não haverá nenhum problema potencial com a disponibilidade de largura de banda de rede entre o sistema de origem local e o sistema de destino na nuvem.

  • Ferramentas como o Azure Data Factory chamam utilitários como o Teradata Parallel Transporter de maneira eficiente para migrar dados com rapidez e facilidade.

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

Usar o Azure Data Factory para implementar uma migração controlada por metadados

Dica

Automatize o processo de migração usando recursos do Azure Data Factory.

Automatize e orquestre o processo de migração usando os recursos do ambiente do Azure. Essa abordagem também minimiza o efeito da migração no ambiente existente do Teradata, que já pode estar se aproximando da capacidade total.

O Azure Data Factory é um serviço de integração de dados baseado em nuvem que permite a criação de fluxos de trabalho controlados por dados na nuvem para orquestrar e automatizar a movimentação e a transformação de dados. Com o Data Factory, é possível criar e agendar fluxos de trabalho controlados por dados, chamados de pipelines, que podem ingerir dados de diferentes armazenamentos de dados. Ele é capaz de processar e transformar dados usando 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 serem migradas e sua localização, você pode usar as instalações do Data Factory para gerenciar e automatizar partes do processo de migração. Você também pode usar Pipelines do Azure Synapse.

Diferenças de DDL de SQL entre o Teradata e o Azure Synapse

DDL (linguagem de definição de dados) de SQL

Dica

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

O padrão ANSI SQL define a sintaxe básica para comandos DDL, como CREATE TABLE e CREATE VIEW. Esses comandos são usados no Teradata e no Azure Synapse, mas também foram estendidos para permitir a definição de recursos específicos da implementação, como indexação, distribuição de tabela e opções de particionamento.

As seções a seguir discutem as opções específicas do Teradata a serem consideradas durante uma migração para o Azure Synapse.

Considerações sobre tabela

Dica

Use índices existentes para fornecer uma indicação de candidatos para indexação no warehouse migrado.

Ao migrar tabelas entre diferentes tecnologias, somente os dados brutos e seus metadados descritivos são movidos fisicamente entre os dois ambientes. Outros elementos de banco de dados do sistema de origem, como índices e arquivos de log, não são migrados diretamente, pois talvez não sejam necessários ou possam ser implementados de forma diferente dentro do novo ambiente de destino. Por exemplo, não há um equivalente à opção MULTISET na sintaxe CREATE TABLE do Teradata.

É importante entender onde as otimizações de desempenho, como índices, foram usadas no ambiente de origem. Isso indica onde a otimização de desempenho pode ser adicionada no novo ambiente de destino. Por exemplo, se um NUSI (índice secundário não exclusivo) foi criado no ambiente do Teradata de origem, isso indica que um índice não clusterizado deve ser criado banco de dados do Azure Synapse migrado. Outras técnicas nativas de otimização de desempenho, como a replicação de tabela, podem ser mais aplicáveis do que uma criação de índice por semelhança.

Tipos de tabela do Teradata sem suporte

Dica

As tabelas padrão no Azure Synapse podem dar suporte a séries temporais e a tabelas temporais do Teradata migradas.

O Teradata dá suporte a tipos de tabelas especiais para séries temporais e dados temporais. A sintaxe e algumas das funções desses tipos de tabela não compatíveis diretamente com o Azure Synapse, mas os dados podem ser migrados para uma tabela padrão com tipos de dados apropriados e indexação ou particionamento na coluna data/hora.

O Teradata implementa a funcionalidade de consulta temporal usando a reescrita de consulta para adicionar filtros a uma consulta temporal a fim de limitar o intervalo de datas aplicável. Se essa funcionalidade estiver em uso no ambiente do Teradata de origem e for migrada, essa filtragem adicional precisará ser adicionada às consultas temporais relevantes.

O ambiente do Azure também inclui um recurso específico para análises complexas em dados de série temporal em escala chamado Time Series Insights. Ele é usado em aplicativos de análise de dados de IoT e pode ser mais apropriado para esse caso de uso.

Tipos de dados do Teradata sem suporte

Dica

Avalie o impacto dos tipos de dados sem suporte como parte da fase de preparação.

A maioria dos tipos de dados do Teradata tem equivalentes diretos no Azure Synapse. A tabela a seguir mostra os tipos de dados do Teradata sem suporte no Azure Synapse junto com o mapeamento recomendado. Na tabela, o tipo de coluna do Teradata é o tipo armazenado no catálogo do sistema (por exemplo, em DBC.ColumnsV).

Tipo de coluna do Teradata Tipo de dados Teradata Tipo de dados do Azure Synapse
++ TD_ANYTYPE Sem suporte no Azure Synapse
A1 ARRAY Sem suporte no Azure Synapse
AN ARRAY Sem suporte no Azure Synapse
AT TIME TIME
BF BYTE BINARY
BO BLOB Não há suporte direto para o tipo de dados BLOB, mas ele pode ser substituído por BINARY.
BV VARBYTE BINARY
CF VARCHAR CHAR
CO CLOB Não há suporte direto para o tipo de dados CLOB, mas ele pode ser substituído por VARCHAR.
CV VARCHAR VARCHAR
D DECIMAL DECIMAL
DA DATE DATE
DH INTERVAL DAY TO HOUR Não há suporte para tipos de dados INTERVAL no Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de data (por exemplo, DATEDIFF e DATEADD).
DM INTERVAL DAY TO MINUTE Não há suporte para tipos de dados INTERVAL no Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de data (por exemplo, DATEDIFF e DATEADD).
DS INTERVAL DAY TO SECOND Não há suporte para tipos de dados INTERVAL no Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de data (por exemplo, DATEDIFF e DATEADD).
DT CONJUNTO DE DADOS Há suporte para o tipo de dados DATASET no Azure Synapse.
DY INTERVAL DAY Não há suporte para tipos de dados INTERVAL no Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de data (por exemplo, DATEDIFF e DATEADD).
F FLOAT FLOAT
HM INTERVAL HOUR TO MINUTE Não há suporte para tipos de dados INTERVAL no Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de data (por exemplo, DATEDIFF e DATEADD).
HR INTERVAL HOUR Não há suporte para tipos de dados INTERVAL no Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de data (por exemplo, DATEDIFF e DATEADD).
HS INTERVAL HOUR TO SECOND Não há suporte para tipos de dados INTERVAL no Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de data (por exemplo, DATEDIFF e DATEADD).
I1 BYTEINT TINYINT
I2 SMALLINT SMALLINT
I8 bigint bigint
I INTEGER INT
JN JSON No momento, não há suporte direto para o tipo de dados JSON no Azure Synapse, mas os dados JSON podem ser armazenados em um campo VARCHAR.
MI INTERVAL MINUTE Não há suporte para tipos de dados INTERVAL no Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de data (por exemplo, DATEDIFF e DATEADD).
MO INTERVAL MONTH Não há suporte para tipos de dados INTERVAL no Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de data (por exemplo, DATEDIFF e DATEADD).
MS INTERVAL MINUTE TO SECOND Não há suporte para tipos de dados INTERVAL no Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de data (por exemplo, DATEDIFF e DATEADD).
N NUMBER NUMERIC
PD PERIOD(DATE) Pode ser convertido em VARCHAR ou dividido em duas datas separadas
PM PERIOD (TIMESTAMP WITH TIME ZONE) 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 dois horários separados
PZ PERIOD (TIME WITH TIME ZONE) Pode ser convertido em VARCHAR ou dividido em dois horários separados, mas WITH TIME ZONE não é compatível com TIME
SC INTERVAL SECOND Não há suporte para tipos de dados INTERVAL no Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de data (por exemplo, DATEDIFF e DATEADD).
SZ TIMESTAMP WITH TIME ZONE DATETIMEOFFSET
TS timestamp DATETIME ou DATETIME2
TZ TIME WITH TIME ZONE Não há suporte para TIME WITH TIME ZONE porque TIME é armazenado usando o horário do "relógio de parede" somente sem um deslocamento de fuso horário.
XM XML No momento, não há suporte direto para o tipo de dados XML no Azure Synapse, mas os dados XML podem ser armazenados em um campo VARCHAR.
YM INTERVAL YEAR TO MONTH Não há suporte para tipos de dados INTERVAL no Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de data (por exemplo, DATEDIFF e DATEADD).
YR INTERVAL YEAR Não há suporte para tipos de dados INTERVAL no Azure Synapse, mas os cálculos de data podem ser feitos com as funções de comparação de data (por exemplo, DATEDIFF e DATEADD).

Use os metadados das tabelas do catálogo do Teradata para determinar se algum desses tipos de dados deve ser migrado e inclua isso no plano de migração. Por exemplo, use uma consulta SQL como essa para encontrar ocorrências de tipos de dados sem suporte que precisam 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 as tarefas de mapeamento de dados.

Há 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 a Talend, já estiver em uso no ambiente do Teradata, elas poderão implementar todas as transformações de dados necessárias.

Geração de DLL (linguagem de definição de dados)

Dica

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

Edite os scripts CREATE TABLE e CREATE VIEW do Teradata para criar as definições equivalentes com tipos de dados modificados, como já descrito, se necessário. Normalmente, isso envolve a remoção de cláusulas extras específicas do Teradata, como FALLBACK ou MULTISET.

No entanto, todas as informações que especificam as definições atuais de tabelas e exibições no ambiente do Teradata existente são mantidas nas tabelas do catálogo do sistema. Essa é a melhor fonte para essas informações, pois há a garantia de estarem atualizadas e completas. Lembre-se de que a documentação mantida pelo usuário pode não estar sincronizada com as definições de tabela atuais.

Acesse essas informações por meio de exibições no 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 as tarefas de mapeamento de dados.

parceiros da Microsoft que oferecem ferramentas e serviços para automatizar a migração, incluindo mapeamento de tipo de dados. Além disso, se uma ferramenta de ETL de terceiros, como a Informatica ou a Talend, já estiver em uso no ambiente do Teradata, ela poderá implementar todas as transformações de dados necessárias.

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

DML (linguagem de manipulação de dados) SQL

Dica

Os comandos DML de SQL SELECT, INSERT e UPDATE têm elementos básicos padrão, mas também podem implementar diferentes opções de sintaxe.

O padrão ANSI SQL define a sintaxe básica para comandos de DDL, tais como SELECT, INSERT, UPDATE e DELETE. O Teradata e o Azure Synapse usam esses comandos, mas em alguns casos há diferenças de implementação.

As seções a seguir discutem os comandos DML específicos do Teradata que você deve considerar durante a migração para o Azure Synapse.

Diferenças de sintaxe de DML SQL

Atente para essas diferenças na sintaxe de DML (linguagem de manipulação de dados) de SQL entre o Teradata SQL e o Azure Synapse (T-SQL) ao migrar:

  • QUALIFY: o Teradata dá suporte ao operador QUALIFY. Por exemplo:

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

    A sintaxe equivalente no Azure Synapse é:

    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: o Azure Synapse tem operadores como DATEADD e DATEDIFF que podem ser usados em campos DATE ou DATETIME. O Teradata dá suporte à 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 dá suporte à sintaxe LIKE ANY, como:

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

    O equivalente na sintaxe do Azure Synapse é:

    SELECT * FROM CUSTOMER
    WHERE
    (POSTCODE LIKE 'CV1%') OR (POSTCODE LIKE 'CV2%') OR (POSTCODE LIKE 'CV3%');
    
  • Dependendo das configurações do sistema, as comparações de caracteres no Teradata podem não diferenciar maiúsculas de minúsculas por padrão. No Azure Synapse, as comparações de caracteres sempre diferenciam maiúsculas de minúsculas.

Use EXPLAIN para validar o SQL herdado

Dica

Use consultas reais dos logs de consulta do sistema existentes para encontrar possíveis problemas de migração.

Uma forma de testar a compatibilidade do Teradata SQL herdado com o Azure Synapse é capturar algumas instruções SQL representativas dos logs de consulta do sistema herdado, prefixar essas consultas com EXPLAIN e (considerando um modelo de dados migrado por semelhança no Azure Synapse com os mesmos nomes de tabela e coluna), execute estas instruções EXPLAIN no Azure Synapse. Todo SQL incompatível vai gerar um erro: use essas informações para determinar a escala da tarefa de recodificação. Essa abordagem não exige que os dados sejam carregados no ambiente do Azure, apenas que as tabelas e as exibições relevantes sejam criadas.

Funções, procedimentos armazenados, gatilhos 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 dados a serem migrados.

Ao fazer a migração de um ambiente de data warehouse herdado maduro, como o Teradata, geralmente há outros elementos além das simples tabelas e exibições que precisam ser migrados para o novo ambiente de destino. Exemplos disso incluem funções, procedimentos armazenados e sequências.

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

Pode haver recursos no ambiente do Azure que substituem a funcionalidade implementada como funções ou procedimentos armazenados no ambiente do Teradata. Nesse caso, costuma ser mais eficiente usar os recursos internos do Azure em vez de recodificar as funções do Teradata.

Dica

Produtos e serviços de terceiros podem automatizar a migração de elementos que não são dados.

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

Confira as seções a seguir para saber mais sobre cada um desses elementos.

Funções

Como a maioria dos produtos de banco de dados, o Teradata dá suporte a funções do sistema e a funções definidas pelo usuário em uma implementação SQL. Ao migrar para outra plataforma de banco de dados, como o Azure Synapse, as funções do sistema comuns ficam disponíveis e podem ser migradas sem alterações. Algumas funções do sistema podem ter sintaxes ligeiramente diferentes, mas as alterações necessárias podem ser automatizadas. Talvez seja necessário recodificar as funções do sistema quando não houver uma equivalência, como no caso de funções arbitrárias definidas pelo usuário, usando as linguagens disponíveis no ambiente de destino. O Azure Synapse usa a linguagem popular Transact-SQL para implementar funções definidas pelo usuário.

Procedimentos armazenados

A maioria dos produtos de banco de dados modernos permite que os procedimentos sejam armazenados no banco de dados. O Teradata oferece a linguagem SPL para essa finalidade. Um procedimento armazenado normalmente contém instruções SQL e alguma lógica de procedimento, e podem retornar dados ou um status.

Os pools de SQL dedicados do Azure Synapse Analytics também dão suporte a procedimentos armazenados usando t-SQL, portanto, se você precisar migrar procedimentos armazenados, decodifique-os corretamente.

Gatilhos

O Azure Synapse não dá suporte à criação de gatilhos, mas você pode implementá-los no Azure Data Factory.

Sequências

As sequências do Azure Synapse são processadas de maneira semelhante às do Teradata, usando IDENTITY para criar chaves alternativas ou identidade gerenciada.

Mapeamento do Teradata para T-SQL

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

Tipo de dados do Teradata Tipo de Dados do SQL do Azure Synapse
 BIGINT  BIGINT
 bool  bit
 booleano  bit
 byteint  TINYINT
 char [(p)]  char [(p)]
 char varying [(p)]  varchar [(p)]
 character [(p)]  char [(p)]
 character varying [(p)]  varchar [(p)]
 date  date
 DATETIME  DATETIME
 dec [(p[,s])]  decimal [(p[,s])]
 decimal [(p[,s])]  decimal [(p[,s])]
 double  float(53)
 double precision  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
 intervalo Sem suporte
 national char varying [(p)] nvarchar [(p)]
 national character [(p)] nchar [(p)]
 national character varying [(p)]  nvarchar [(p)]
 nchar [(p)]  nchar [(p)]
 numeric [(p[,s])]  numeric [(p[,s])
 nvarchar [(p)]  nvarchar [(p)]
 real  real
 SMALLINT  SMALLINT
 time  time
 hora com fuso horário  datetimeoffset
 hora sem fuso horário  time
 TimeSpan  Sem suporte
 timestamp  datetime2
 timetz  datetimeoffset
 varchar [(p)]  varchar [(p)]

Resumo

As instalações típicas herdadas do Teradata existentes são implementadas de uma forma que facilita a migração para o Azure Synapse. Elas usam SQL para consultas analíticas em grandes volumes de dados e estão em alguma forma de modelo de dados dimensional. Esses fatores as tornam boas candidatas à migração para o Azure Synapse.

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

  • A migração inicial do data warehouse deve ser como está para minimizar o risco e o tempo necessário, mesmo que o ambiente final eventual incorpore um modelo de dados diferente, como o cofre de dados.

  • Considere usar uma instância do Teradata em uma VM do Azure como um trampolim para o processo de migração.

  • Entenda as diferenças entre a implementação do Teradata SQL e do Azure Synapse.

  • Use os metadados e os logs de consulta da implementação existente do Teradata para avaliar o impacto das diferenças e planejar uma abordagem de atenuação.

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

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

Próximas etapas

Para saber mais sobre as ferramentas da Microsoft e de terceiros, confira o próximo artigo nesta série: Ferramentas para migração de data warehouse do Teradata para o Azure Synapse Analytics.