Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Usando o Babelfish como alvo para AWS Database Migration Service

Modo de foco
Usando o Babelfish como alvo para AWS Database Migration Service - AWS Database Migration Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Você pode migrar dados de um banco de dados de origem do Microsoft SQL Server para um destino do Babelfish usando o. AWS Database Migration Service

O Babelfish for Aurora PostgreSQL amplia seu banco de dados Amazon Aurora, edição compatível com PostgreSQL, com a capacidade de aceitar conexões de banco de dados provenientes de clientes Microsoft SQL Server. Fazer isso permite que aplicações originalmente criadas para o SQL Server funcionem diretamente com o Aurora PostgreSQL, com poucas alterações de código em comparação com uma migração tradicional e sem alterar drivers de bancos de dados.

Para obter informações sobre as versões do Babelfish que são AWS DMS suportadas como alvo, consulte. Metas para AWS DMS As versões anteriores do Babelfish no Aurora PostgreSQL exigem um upgrade antes de utilizar o endpoint do Babelfish.

nota

O endpoint de destino do Aurora PostgreSQL é a forma preferida de migrar dados para o Babelfish. Para obter mais informações, consulte Utilizar o Babelfish para Aurora PostgreSQL como destino.

Para obter informações sobre como utilizar o Babelfish como um endpoint de banco de dados, consulte Babelfish para Aurora PostgreSQL no Guia do usuário do Amazon Aurora para Aurora

Pré-requisitos para usar o Babelfish como alvo para AWS DMS

Você deve criar suas tabelas antes de migrar dados para se certificar de que AWS DMS usa os tipos de dados e metadados de tabela corretos. Se você não criar suas tabelas no destino antes de executar a migração, AWS DMS poderá criar as tabelas com tipos de dados e permissões incorretos. Por exemplo, AWS DMS cria uma coluna de timestamp como binária (8) em vez disso e não fornece a funcionalidade esperada de timestamp/rowversion.

Como preparar e criar as tabelas antes da migração
  1. Execute as instruções DDL de criação de tabela que incluam quaisquer restrições exclusivas, chaves primárias ou restrições padrão.

    Não inclua restrições de chave estrangeira nem instruções DDL para objetos, como visualizações, procedimentos armazenados, perfis ou acionadores. É possível aplicá-las depois de migrar o banco de dados de origem.

  2. Identifique quaisquer colunas de identidade, colunas computadas ou colunas contendo tipos de dados rowversion ou timestamp nas tabelas. Crie as regras de transformação necessárias para lidar com problemas conhecidos ao executar a tarefa de migração. Para ter mais informações, consulte Regras de transformação e ações.

  3. Identifique colunas com tipos de dados não compatíveis com o Babelfish. Altere as colunas afetadas na tabela de destino para utilizar os tipos de dados compatíveis ou crie uma regra de transformação que os remova durante a tarefa de migração. Para ter mais informações, consulte Regras de transformação e ações.

    A tabela a seguir lista os tipos de dados de origem não compatíveis com o Babelfish e o tipo de dados de destino recomendado correspondente a ser utilizado.

    Tipo de dados de origem

    Tipo de dados do Babelfish recomendado

    HEIRARCHYID

    NVARCHAR(250)

    GEOMETRY

    VARCHAR(MÁXIMO)

    GEOGRAPHY

    VARCHAR(MÁXIMO)

Para definir o nível de unidades de capacidade do Aurora (ACUs) para seu banco de dados de origem do Aurora PostgreSQL Serverless V2

Você pode melhorar o desempenho da sua tarefa de AWS DMS migração antes de executá-la definindo o valor mínimo de ACU.

Depois de executar sua tarefa de AWS DMS migração, você pode redefinir o valor mínimo ACUs para um nível razoável para seu banco de dados de origem do Aurora PostgreSQL Serverless V2.

Requisitos de segurança ao usar o Babelfish como alvo para AWS Database Migration Service

O seguinte descreve os requisitos de segurança para uso AWS DMS com um alvo Babelfish:

  • O nome de usuário do administrador (o usuário administrador) utilizado para criar o banco de dados.

  • Login e usuário do PSQL com permissões suficientes para SELECT, INSERT, UPDATE, DELETE e REFERENCES.

Permissões de usuário para usar o Babelfish como alvo para AWS DMS

Importante

Para fins de segurança, a conta de usuário utilizada para a migração de dados deve ser um usuário registrado em qualquer banco de dados Babelfish que você utilize como destino.

O endpoint de destino do Babelfish requer permissões mínimas de usuário para executar uma migração do AWS DMS .

Como criar um login e um usuário do Transact-SQL (T-SQL) com poucos privilégios
  1. Crie um login e uma senha a serem utilizados ao se conectar ao servidor.

    CREATE LOGIN dms_user WITH PASSWORD = 'password'; GO
  2. Crie o banco de dados virtual para o cluster do Babelfish.

    CREATE DATABASE my_database; GO
  3. Crie o usuário T-SQL para o banco de dados de destino.

    USE my_database GO CREATE USER dms_user FOR LOGIN dms_user; GO
  4. Para cada tabela no banco de dados Babelfish, permissões de GRANT para as tabelas.

    GRANT SELECT, DELETE, INSERT, REFERENCES, UPDATE ON [dbo].[Categories] TO dms_user;

Limitações no uso do Babelfish como alvo para AWS Database Migration Service

As seguintes limitações se aplicam à utilização de um banco de dados Babelfish como destino do AWS DMS:

  • Somente o modo de preparação de tabela “Não executar nenhuma ação” é compatível.

  • O tipo de dados ROWVERSION exige uma regra de mapeamento de tabela que remove o nome da coluna da tabela durante a tarefa de migração.

  • O tipo de dados sql_variant não é compatível.

  • O modo LOB completo é compatível. Usar o SQL Server como um endpoint de origem exige que a configuração ForceFullLob=True do Atributo de Conexão do Endpoint do SQL Server seja definida para LOBs ser migrada para o endpoint de destino.

  • As configurações da tarefa de replicação têm as seguintes limitações:

    { "FullLoadSettings": { "TargetTablePrepMode": "DO_NOTHING", "CreatePkAfterFullLoad": false, }. }
  • Os tipos de dados TIME DATETIME2 (7), (7) e DATETIMEOFFSET (7) no Babelfish limitam o valor de precisão da parte de segundos do tempo a 6 dígitos. Considere utilizar um valor de precisão de seis para a tabela de destino ao utilizar esses tipos de dados. Para as versões 2.2.0 e superiores do Babelfish, ao usar TIME (7) e DATETIME2 (7), o sétimo dígito de precisão é sempre zero.

  • No modo DO_NOTHING, o DMS verifica se a tabela já existe. Se a tabela não existir no esquema de destino, o DMS criará a tabela com base na definição da tabela de origem e mapeará todos os tipos de dados definidos pelo usuário para o tipo de dados base.

  • Uma tarefa de AWS DMS migração para um destino do Babelfish não suporta tabelas que tenham colunas usando os tipos de dados ROWVERSION ou TIMESTAMP. É possível utilizar uma regra de mapeamento de tabela que remove o nome da coluna da tabela durante o processo de transferência. No exemplo de regra de transformação a seguir, uma tabela nomeada Actor na origem é transformada para remover todas as colunas que começam com os caracteres Actor da tabela col no destino.

    { "rules": [{ "rule-type": "selection",is "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "remove-column", "rule-target": "column", "object-locator": { "schema-name": "test", "table-name": "Actor", "column-name": "col%" } }] }
  • Para tabelas com colunas de identidade ou computadas, em que as tabelas de destino utilizam nomes com maiúsculas e minúsculas, como Categorias, crie uma ação de regra de transformação que converta os nomes das tabelas em minúsculas para a tarefa do DMS. O exemplo a seguir mostra como criar a ação da regra de transformação, Make lowercase, usando o AWS DMS console. Para obter mais informações, consulte Regras de transformação e ações.

    Regra de transformação do Babelfish
  • Antes da versão 2.2.0 do Babelfish, o DMS limitava o número de colunas que você podia replicar para um endpoint de destino do Babelfish a vinte colunas. Com o Babelfish 2.2.0, o limite aumentou para cem colunas. Mas com as versões 2.4.0 e superiores do Babelfish, o número de colunas que é possível replicar aumenta novamente. É possível executar o exemplo de código a seguir no banco de dados SQL Server para determinar quais tabelas são muito longas.

    USE myDB; GO DECLARE @Babelfish_version_string_limit INT = 8000; -- Use 380 for Babelfish versions before 2.2.0 WITH bfendpoint AS ( SELECT [TABLE_SCHEMA] ,[TABLE_NAME] , COUNT( [COLUMN_NAME] ) AS NumberColumns , ( SUM( LEN( [COLUMN_NAME] ) + 3) + SUM( LEN( FORMAT(ORDINAL_POSITION, 'N0') ) + 3 ) + LEN( TABLE_SCHEMA ) + 3 + 12 -- INSERT INTO string + 12) AS InsertIntoCommandLength -- values string , CASE WHEN ( SUM( LEN( [COLUMN_NAME] ) + 3) + SUM( LEN( FORMAT(ORDINAL_POSITION, 'N0') ) + 3 ) + LEN( TABLE_SCHEMA ) + 3 + 12 -- INSERT INTO string + 12) -- values string >= @Babelfish_version_string_limit THEN 1 ELSE 0 END AS IsTooLong FROM [INFORMATION_SCHEMA].[COLUMNS] GROUP BY [TABLE_SCHEMA], [TABLE_NAME] ) SELECT * FROM bfendpoint WHERE IsTooLong = 1 ORDER BY TABLE_SCHEMA, InsertIntoCommandLength DESC, TABLE_NAME ;

Tipos de dados de destino do Babelfish

A tabela a seguir mostra os tipos de dados de destino do Babelfish que são suportados durante o uso AWS DMS e o mapeamento padrão dos tipos de AWS DMS dados.

Para obter informações adicionais sobre AWS DMS os tipos de dados, consulteTipos de dados para AWS Database Migration Service.

AWS DMS tipo de dados

Tipo de dados do Babelfish

BOOLEAN

TINYINT

BYTES

VARBINARY(tamanho)

DATE

DATE

TIME

TIME

INT1

SMALLINT

INT2

SMALLINT

INT4

INT

INT8

BIGINT

NUMERIC

NUMERIC(p,s)

REAL4

REAL

REAL8

FLOAT

STRING

Se a coluna for de data ou hora, faça o seguinte:

  • Para o SQL Server 2008 e superior, use DATETIME2.

  • Para versões anteriores, se a escala for menor ou igual a 3, use DATETIME. Em todos os demais casos, use VARCHAR (37).

Se a coluna não é uma data ou hora, use VARCHAR (tamanho).

UINT1

TINYINT

UINT2

SMALLINT

UINT4

INT

UINT8

BIGINT

WSTRING

NVARCHAR(tamanho)

BLOB

VARBINARY(máximo)

Para usar esse tipo de dados com o DMS, você deve habilitar o uso de BLOBs para uma tarefa específica. O DMS é compatível com os tipos de dados BLOB somente em tabelas que possuem uma chave primária.

CLOB

VARCHAR(máximo)

Para usar esse tipo de dados com o DMS, você deve habilitar o uso de CLOBs para uma tarefa específica.

NCLOB

NVARCHAR(máximo)

Para usar esse tipo de dados com o DMS, você deve habilitar o uso de NCLOBs para uma tarefa específica. Durante a CDC, o DMS é compatível com os tipos de dados NCLOB somente em tabelas que incluem uma chave primária.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.