Regras de seleção e ações - AWS Database Migration Service

Regras de seleção e ações

Usando o mapeamento de tabela, é possível especificar as tabelas, as exibições e os esquemas com os quais deseja trabalhar utilizando ações e regras de seleção. Os seguintes valores podem ser aplicados a regras de mapeamento de tabela que utilizam o tipo de regra de seleção.

Atenção

Não inclua dados confidenciais nessas regras.

Parameter Possíveis valores Descrição
rule-type selection Uma regra de seleção. Defina pelo menos uma regra de seleção ao especificar um mapeamento de tabelas.
rule-id Um valor numérico. Um valor numérico exclusivo para identificar a regra. Se você criar a regra usando o console, o console criará esse valor para você.
rule-name Um valor alfanumérico. Um nome exclusivo para identificar a regra. Se você criar a regra usando o console, o console criará esse valor para você.
rule-action include, exclude, explicit Um valor que inclui ou exclui o objeto ou objetos selecionados pela regra. Se explicit for especificado, será possível selecionar e incluir apenas um objeto que corresponda a uma tabela e a um esquema especificados explicitamente.
object-locator Um objeto com os seguintes parâmetros:
  • schema-name: o nome do esquema.

  • table-name: o nome da tabela.

  • (Opcional) table-type: table | view | all, para indicar se table-name se refere apenas a tabelas, visualizações ou ambas. O padrão é “”. table.

    O AWS DMS carrega exibições somente em uma tarefa de carga máxima. Se você tiver apenas tarefas de carga máxima e captura de dados de alteração (CDC), configure pelo menos uma tarefa somente de carga máxima para carregar suas visualizações.

    Nem todos os endpoints de destino aceitam visualizações como origem de replicação, mesmo em carga máxima (por exemplo, Amazon OpenSearch Service). Verifique as limitações do endpoint de destino.

Atenção

As regras de seleção do DMS diferenciam maiúsculas de minúsculas. No entanto, o resultado da seleção também depende da configuração do banco de dados do endpoint de origem. Se o endpoint de origem estiver configurado como sem distinção entre maiúsculas e minúsculas, as maiúsculas e minúsculas do valor do localizador de objetos não importam. Os identificadores de objetos corretos devem ser usados nas regras de seleção do DMS em um endpoint que não diferencia maiúsculas de minúsculas.

O nome de cada esquema e tabela, ou exibição, aos quais a regra se aplica. Também é possível especificar se uma regra inclui apenas tabelas, somente visualizações ou ambas. Se rule-action for include ou exclude, será possível utilizar o sinal de porcentagem "%" como um curinga para todo ou parte do valor do parâmetro schema-name e table-name. Para obter informações sobre outros curingas que é possível utilizar, consulte Curingas no mapeamento de tabela. Assim, você pode corresponder estes itens:

  • Uma única tabela, visualização ou coleção em um único esquema

  • Uma única tabela, visualização ou coleção em alguns ou todos os esquemas

  • Algumas ou todas as tabelas e visualizações em um único esquema ou coleções em um único banco de dados

  • Algumas ou todas as tabelas e visualizações em alguns ou todos os esquemas ou coleções em alguns ou todos os bancos de dados

Se rule-action for explicit, você só poderá especificar o nome exato de uma única tabela e esquema (sem curingas).

As origens compatíveis com visualizações incluem:

  • Oracle

  • Microsoft SQL Server

  • PostgreSQL

  • IBM Db2 LUW

  • IBM Db2 z/OS

  • SAP Adaptive Server Enterprise (ASE)

  • MySQL

  • AURORA MySQL

  • MariaDB

nota

AWS DMSO nunca carrega uma exibição de origem em uma exibição de destino. Uma exibição de origem é carregada em uma tabela equivalente no destino com o mesmo nome que a exibição na origem.

As origens compatíveis com bancos de dados que contêm coleções incluem:

  • MongoDB

  • Amazon DocumentDB

load-order Um inteiro positivo. O valor máximo é 2.147.483.647. Indica a prioridade para carregar tabelas e exibições. Tabelas e exibições com valores mais altos são carregadas primeiro.
filters Uma matriz de objetos. Um ou mais objetos para filtrar a origem. Você especifica parâmetros de objetos para filtragem em uma única coluna na origem. Você especifica vários objetos para filtragem em várias colunas. Para obter mais informações, consulte Usar filtros de origem.
exemplo Migrar todas as tabelas em um esquema

O exemplo a seguir migra todas as tabelas de um esquema chamado Test da origem para o endpoint de destino.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" } ] }
exemplo Migrar algumas tabelas em um esquema

O exemplo a seguir migra todas as tabelas, exceto as que começam com DMS, de um esquema chamado Test na origem para o endpoint de destino.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "Test", "table-name": "DMS%" }, "rule-action": "exclude" } ] }
exemplo Migrar uma única tabela especificada em um único esquema

O exemplo a seguir migra a tabela Customer do esquema NewCust na origem para o endpoint de destino.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "NewCust", "table-name": "Customer" }, "rule-action": "explicit" } ] }
nota

É possível selecionar explicitamente várias tabelas e esquemas especificando várias regras de seleção.

exemplo Migrar tabelas em uma ordem definida

As tabelas e visualizações são migradas de acordo com os respectivos valores de ordem de carregamento, e os valores mais altos têm prioridade na sequência da migração. O exemplo a seguir migra duas tabelas, loadfirst com um valor de prioridade 2 e loadsecond com um valor de prioridade 1. A tarefa de migração primeiro processa a tabela loadfirst para prosseguir para a tabela loadsecond. Esse mecanismo de priorização garante que as dependências entre os objetos do banco de dados sejam respeitadas durante o processo da migração.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "loadsecond" }, "rule-action": "include", "load-order": "1" }, { "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "Test", "table-name": "loadfirst" }, "rule-action": "include", "load-order": "2" } ] }
nota

load-order é aplicável à inicialização da tabela. A carga de uma tabela sucessiva não aguardará a conclusão de uma carga de tabela anterior se MaxFullLoadSubTasks for maior que 1.

exemplo Migrar algumas exibições em um esquema

O exemplo a seguir migra algumas exibições de um esquema chamado Test na origem para tabelas equivalentes no destino.

{ "rules": [ { "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "Test", "table-name": "view_DMS%", "table-type": "view" }, "rule-action": "include" } ] }
exemplo Migrar todas as tabelas e exibições em um esquema

O exemplo a seguir migra todas as tabelas e exibições de um esquema chamado report na origem para tabelas equivalentes no destino.

{ "rules": [ { "rule-type": "selection", "rule-id": "3", "rule-name": "3", "object-locator": { "schema-name": "report", "table-name": "%", "table-type": "all" }, "rule-action": "include" } ] }