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á.
Regras e operações de configurações de tabelas e coleções
Utilize as configurações de tabela para especificar quaisquer configurações que deseja aplicar a uma tabela ou visualização selecionada para uma operação especificada. As regras de configuração de tabela são opcionais, dependendo do endpoint e dos requisitos da migração.
Em vez de utilizar tabelas e visualizações, os bancos de dados MongoDB e Amazon DocumentDB armazenam registros de dados como documentos que são reunidos em coleções. Um único banco de dados de qualquer endpoint do MongoDB ou do Amazon DocumentDB é um conjunto específico de coleções identificadas pelo nome do banco de dados.
Ao migrar de uma origem do MongoDB ou do Amazon DocumentDB, você trabalha com configurações de carregamento paralelo de forma um pouco diferente. Nesse caso, considere o tipo de segmentação automática ou de segmentação por intervalo das configurações de carga paralela para coleções selecionadas, em vez de tabelas e visualizações.
Tópicos
Para as regras de mapeamento de tabela que utilizam o tipo de regra de configurações de tabela, é possível aplicar os parâmetros a seguir.
Parâmetro | Possíveis valores | Descrição |
---|---|---|
rule-type |
table-settings
|
Um valor que aplica a regra a uma tabela, visualização ou coleção especificada pela regra de seleção. |
rule-id |
Um valor numérico. | Um valor numérico exclusivo para identificar a regra. |
rule-name |
Um valor alfanumérico. | Um nome exclusivo para identificar a regra. |
object-locator |
Um objeto com os seguintes parâmetros:
|
O nome de um esquema e tabela ou visualização específicas ou o nome de um banco de dados e coleção específicos (sem curingas). |
parallel-load |
Um objeto com os seguintes parâmetros:
|
Um valor que especifica uma operação de carga paralela (multi-threaded) na tabela ou na exibição identificada pela opção
Para obter mais informações sobre carga paralela, consulte Utilizar carga paralela para tabelas, visualizações e coleções selecionadas. |
type |
Um dos seguintes para parallel-load :
|
O mecanismo para identificar as partições ou subpartições ou segmentos de tabela, visualização ou coleção a serem carregados em paralelo. |
number-of-partitions |
(Opcional) Quando type é partitions-auto para coleções específicas de um endpoint do MongoDB ou do Amazon DocumentDB, esse parâmetro especifica o número total de partições (segmentos) utilizadas para a migração. O padrão é 16. |
Especifica o número exato de partições a serem carregadas em paralelo. |
collection-count-from-metadata |
(Opcional) Quando type é partitions-auto para coleções especificadas de um endpoint MongoDB ou Amazon DocumentDB e esse parâmetro é definido como AWS DMS , usa uma contagem de coleta estimada true para determinar o número de partições. Se esse parâmetro for definido comofalse , AWS DMS usa a contagem real da coleta. O padrão é true . |
Especifica se uma contagem estimada de coleção ou a contagem real de coleção deve ser utilizada para calcular o número de partições a serem carregadas em paralelo. |
max-records-skip-per-page |
(Opcional) Quando type for partitions-auto de coleções específicas de um endpoint do MongoDB ou do Amazon DocumentDB, esse é o número de registros a serem ignorados de uma vez ao determinar os limites de cada partição. O AWS DMS
utiliza uma abordagem de salto paginado para determinar o limite mínimo de uma partição. O padrão é 10.000. |
Especifica o número de registros a serem ignorados de uma vez ao determinar os limites de cada partição. A definição de um valor relativamente grande do padrão pode resultar em tempos limite do cursor e falhas na tarefa. A definição de um valor relativamente resulta em mais operações por página e em uma carga máxima mais lenta. |
batch-size |
(Opcional) Quando type é partitions-auto para coleções especificadas de um endpoint do MongoDB ou do Amazon DocumentDB, esse valor inteiro limita o número de documentos retornados em um lote de ida e volta. Se o tamanho do lote for zero (0), o cursor utilizará o tamanho máximo do lote definido pelo servidor. O padrão é 0. |
Especifica o número máximo de documentos retornados em um lote. Cada lote requer uma viagem de ida e volta ao servidor. |
partitions |
Quando type for partitions-list , isso será uma matriz de strings que especificam os nomes das partições a serem carregadas em paralelo. |
Os nomes das partições a serem carregadas em paralelo. |
subpartitions |
(Somente para endpoints do Oracle) Quando type for partitions-list , isso será uma matriz de strings que especifica os nomes das subpartições a serem carregadas em paralelo. |
Os nomes de subpartições a serem carregadas em paralelo. |
columns |
Quando type for ranges , uma matriz de strings definidas como os nomes das colunas que identificam os segmentos baseados em intervalo de tabela, visualização ou coleção a serem carregados em paralelo. |
Os nomes das colunas que identificam os segmentos baseados em intervalo de tabela, visualização ou coleção a serem carregados em paralelo. |
boundaries |
Quando type for ranges , uma matriz de matrizes de coluna e vamor. Cada matriz de valores de coluna contém valores de colunas na quantidade e na ordem especificadas por columns . Uma matriz de coluna-valor especifica o limite superior de um segmento de uma tabela, visualização ou coleção. Cada matriz de coluna-valor extra adiciona o limite superior para um segmento adicional de tabela, visualização ou coleção. Todos esses segmentos baseados em intervalos de tabela, visualização ou coleção são carregados em paralelo. |
Os valores de colunas que identificam as partições baseada em intervalo de tabela, visualização ou coleção são carregados em paralelo. |
lob-settings |
Um objeto com os seguintes parâmetros:
|
Um valor que especifica o tratamento de LOB para a tabela ou a exibição identificada pela opção object-locator . O tratamento de LOB especificado substitui qualquer configuração de tarefa de LOB somente para essa tabela ou exibição. Para obter mais informações sobre como utilizar os parâmetros de configurações de LOB, consulte Especificar configurações de LOB para uma tabela ou exibição selecionada. |
mode |
Especifica o tratamento da migração para LOBs na tabela ou visualização especificada utilizando os seguintes valores:
|
O mecanismo utilizado para migrar LOBs. |
bulk-max-size |
O efeito desse valor depende do mode . |
O tamanho máximo de LOBs em incrementos de kilobytes. Especifique essa opção somente se você precisar replicar pequenos LOBs ou se o endpoint de destino não for compatível com o tamanho de LOB ilimitado. |
Curingas nas configurações de tabela são restritos
A utilização do curinga de porcentagem ("%"
) em regras "table-settings"
não é compatível com bancos de dados de origem, conforme mostrado a seguir.
{ "rule-type": "table-settings", "rule-id": "8", "rule-name": "8", "object-locator": { "schema-name": "ipipeline-prod", "table-name": "%" }, "parallel-load": { "type": "partitions-auto", "number-of-partitions": 16, "collection-count-from-metadata": "true", "max-records-skip-per-page": 1000000, "batch-size": 50000 } }
Se você usar "%"
as "table-settings"
regras conforme mostrado, AWS DMS retornará a exceção a seguir.
Error in mapping rules. Rule with ruleId = x failed validation. Exact schema and table name required when using table settings rule.
Além disso, AWS recomenda que você não carregue um grande número de coleções grandes usando uma única tarefa comparallel-load
. Observe que o AWS DMS
limita a contenção de recursos, bem como o número de segmentos carregados em paralelo pelo valor do parâmetro de configurações de tarefa MaxFullLoadSubTasks
, com um valor máximo de 49.
Em vez disso, especifique todas as coleções do banco de dados de origem para as maiores coleções especificando cada "schema-name"
e "table-name"
individualmente. Além disso, aumente a escala verticalmente da migração de forma adequada. Por exemplo, execute várias tarefas em um número suficiente de instâncias de replicação para tratar um grande número de coleções grandes no banco de dados.
Utilizar carga paralela para tabelas, visualizações e coleções selecionadas
Para acelerar a migração e torná-la mais eficiente, é possível utilizar a carga paralela para tabelas, visualizações e coleções selecionadas. Em outras palavras, é possível migrar uma única tabela, visualização ou coleção utilizando vários threads em paralelo. Para fazer isso, AWS DMS divide uma tarefa de carga completa em segmentos, com cada segmento da tabela alocado em seu próprio encadeamento.
Utilizando esse processo de carregamento paralelo, é possível primeiro fazer o upload de vários threads de várias tabelas, visualizações e coleções em paralelo no endpoint de origem. É possível que vários threads migrem e carreguem as mesmas tabelas, visualizações e coleções em paralelo para o endpoint de destino. Para alguns mecanismos de banco de dados, é possível segmentar as tabelas e as exibições pelas partições ou subpartições existentes. Para outros mecanismos de banco de dados, você pode segmentar AWS DMS automaticamente as coleções de acordo com parâmetros específicos (segmentação automática). Caso contrário, é possível segmentar qualquer tabela, visualização ou coleção pelos intervalos de valores de coluna especificados.
O carregamento paralelo é compatível com os seguintes endpoints de origem:
-
Oracle
-
Microsoft SQL Server
-
MySQL
-
PostgreSQL
-
IBM Db2 LUW
-
SAP Adaptive Server Enterprise (ASE)
-
MongoDB (compatível somente com as opções de segmentação automática e com a segmentação por intervalo de uma carga máxima paralela)
-
Amazon DocumentDB (compatível somente com as opções de segmentação automática e com a segmentação por intervalo de uma carga máxima paralela)
Para endpoints MongoDB e Amazon DocumentDB AWS DMS , suporta os seguintes tipos de dados para colunas que são chaves de partição para a opção de segmentação de intervalo de uma carga completa paralela.
-
Double
-
String
-
ObjectId
-
Inteiro de 32 bits
-
Inteiro de 64 bits
A carga paralela para uso com regras de configuração de tabela é suportada para os seguintes endpoints de destino:
-
Oracle
-
Microsoft SQL Server
-
MySQL
-
PostgreSQL
-
Amazon S3
-
SAP Adaptive Server Enterprise (ASE)
-
Amazon Redshift
-
MongoDB (compatível somente com as opções de segmentação automática e com a segmentação por intervalo de uma carga máxima paralela)
-
Amazon DocumentDB (compatível somente com as opções de segmentação automática e com a segmentação por intervalo de uma carga máxima paralela)
-
Db2 LUW
Para especificar o número máximo de tabelas e visualizações para carga em paralelo, utilize a configuração de tarefa MaxFullLoadSubTasks
.
Para especificar o número máximo de threads por tabela ou visualização para destinos compatíveis de uma tarefa de carga paralela, defina mais segmentos utilizando limites de valor-coluna.
Importante
MaxFullLoadSubTasks
controla o número de tabelas ou segmentos de tabela a serem carregados em paralelo. ParallelLoadThreads
controla o número de threads utilizados por uma tarefa de migração para executar as cargas em paralelo. Essas configurações são multiplicativas. Dessa forma, o número total de threads utilizados durante uma tarefa de carga máxima é aproximadamente o resultado do valor de ParallelLoadThreads
multiplicado pelo valor de MaxFullLoadSubTasks
(ParallelLoadThreads
*MaxFullLoadSubtasks)
.
Se você criar tarefas com um grande número de subtarefas de carga máxima e um grande número de threads de carga paralela, a tarefa poderá consumir muita memória e falhar.
Para especificar o número máximo de threads por tabela para destinos do Amazon DynamoDB, do Amazon Kinesis Data Streams, do Apache Kafka ou do Amazon Elasticsearch Service, utilize a configuração da tarefa de metadados de destino ParallelLoadThreads
.
Para especificar o tamanho do buffer para uma tarefa de carga paralela quando ParallelLoadThreads
é utilizada, utilize a configuração da tarefa de metadados ParallelLoadBufferSize
.
A disponibilidade e as configurações de ParallelLoadThreads
e ParallelLoadBufferSize
dependem do endpoint de destino.
Para obter mais informações sobre ParallelLoadThreads
e ParallelLoadBufferSize
, consulte Configurações de tarefa de metadados de destino. Para obter mais informações sobre a configuração de MaxFullLoadSubTasks
, consulte Configurações de tarefa de carregamento completo. Para obter informações específicas de endpoints de destino, consulte os tópicos relacionados.
Para utilizar a carga paralela, crie uma regra de mapeamento de tabelas do tipo table-settings
com a opção parallel-load
. Na regra table-settings
, é possível especificar os critérios de segmentação para uma única tabela, visualização ou coleção para carregamento em paralelo. Para fazer isso, defina o parâmetro type
da opção parallel-load
como uma das várias opções.
Como fazer isso depende de como você deseja segmentar a tabela, visualização ou coleção para carga paralela:
-
Por partições (ou segmentos): carregue todas as partições da tabela ou da visualização existentes (ou segmentos) utilizando o tipo
partitions-auto
. Ou carregue somente as partições selecionadas utilizando o tipopartitions-list
com uma matriz de partições especificada.Somente para endpoints do MongoDB e do Amazon DocumentDB, carregue todas as coleções ou as coleções especificadas por segmentos AWS DMS que calculam automaticamente também usando o tipo e os parâmetros opcionais adicionais.
partitions-auto
table-settings
-
(Somente endpoints do Oracle) Por subpartições: carregue todas as subpartições da tabela ou da visualização existente utilizando o tipo
subpartitions-auto
. Ou carregue somente as subpartições selecionadas utilizando o tipopartitions-list
com uma matriz desubpartitions
especificada. -
Pelos segmentos que você define: carregue os segmentos da tabela, visualização ou coleção que você define utilizando limites de coluna-valor. Para fazer isso, utilize o tipo
ranges
com as matrizescolumns
eboundaries
especificadas.nota
Os endpoints do PostgreSQL são compatíveis somente com esse tipo de carga paralela. O MongoDB e o Amazon DocumentDB como endpoints de origem são compatíveis com esse tipo de segmentação por intervalo e com o tipo de segmentação automática de uma carga máxima paralela (
partitions-auto
).
Para identificar tabelas, visualizações ou coleções adicionais a serem carregadas em paralelo, especifique os objetos table-settings
adicionais com as opções de parallel-load
.
Nos procedimentos a seguir, é possível saber como codificar JSON para cada tipo de carga paralela, da mais simples à mais complexa.
Como especificar todas as partições de tabela, visualização ou coleção ou todas as subpartições de tabela ou visualização
-
Especifique
parallel-load
com o tipopartitions-auto
ou o tiposubpartitions-auto
(mas não com os dois).Cada partição ou subpartição da tabela, visualização ou coleção é automaticamente alocada para seu próprio thread.
Em alguns endpoints, a carga paralela incluirá partições ou subpartições somente se elas já estiverem definidas para a tabela ou visualização. Para endpoints de origem do MongoDB e do Amazon DocumentDB, você pode AWS DMS calcular automaticamente as partições (ou segmentos) com base em parâmetros adicionais opcionais. Entre elas estão
number-of-partitions
,collection-count-from-metadata
,max-records-skip-per-page
ebatch-size
.
Como especificar partições, subpartições selecionadas da tabela ou da exibição ou ambas
-
Especifique
parallel-load
com o tipopartitions-list
. -
(Opcional) Inclua as partições, especificando uma matriz de nomes de partição como o valor de
partitions
.Cada partição especificada será então alocada para seu próprio thread.
Importante
Para endpoints do Oracle, verifique se as partições e subpartições não estão sobrepostas ao escolhê-las para a carga paralela. Se você utilizar partições e subpartições sobrepostas para carregar dados em paralelo, isso duplicará as entradas ou falhará devido a uma violação de duplicação da chave primária.
-
(Opcional) Somente para endpoints do Oracle inclua as subpartições especificando uma matriz de nomes de subpartições como o valor de
subpartitions
.Cada subpartição especificada será então alocada para seu próprio thread.
nota
A carga paralela inclui partições ou subpartições somente se elas já estão definidas para a tabela ou a exibição.
É possível especificar os segmentos de tabela ou visualização como intervalos de valores de colunas. Ao fazer isso, lembre-se destas características da coluna:
-
A especificação de colunas indexadas melhora significativamente o desempenho.
-
É possível especificar até 10 colunas.
-
Você não pode usar colunas para definir limites de segmentos com os seguintes tipos de AWS DMS dados: DOUBLE, FLOAT, BLOB, CLOB e NCLOB
-
Os registros com valores nulos não são replicados.
Como especificar os segmentos de tabela, visualização ou coleção como intervalos de valores de colunas
-
Especifique
parallel-load
com o tiporanges
. -
Defina um limite entre os segmentos da tabela ou da exibição, especificando uma matriz de nomes de coluna da tabela como o valor de
columns
. Faça isso para cada coluna para a qual você deseja definir um limite entre os segmentos da tabela ou da exibição.Observe que a ordem das colunas é significativa. A primeira coluna é a mais significativa e a última coluna é a menos significativa na definição de cada limite, conforme descrito a seguir.
-
Defina os intervalos de dados para todos os segmentos da tabela ou da exibição especificando uma matriz de limites como o valor de
boundaries
. Uma matriz de limites é uma matriz de matrizes de coluna/valor. Para fazer isso, siga as estas etapas:-
Especifique cada elemento de uma matriz de coluna/valor como um valor que corresponda a cada coluna. Uma matriz de coluna/valor representa o limite superior de cada segmento da tabela ou da exibição que você deseja definir. Especifique cada coluna na mesma ordem em que você especificou essa coluna na matriz
columns
.Insira valores para as colunas DATE no formato com suporte pela origem.
-
Especifique cada matriz de valores de coluna como o limite superior, em ordem, de cada segmento da parte inferior até o next-to-top segmento da tabela ou exibição. Se houver linhas acima do limite superior especificado, essas linhas completarão o segmento superior da tabela ou da exibição. Portanto, o número de segmentos com base em intervalo será potencialmente mais um que o número de limites de segmentos na matriz de limites. Cada segmento com base em intervalo é alocado para seu próprio thread.
Todos os dados não nulos serão replicados, mesmo que você não defina intervalos de dados para todas as colunas da tabela ou da exibição.
Por exemplo, suponha que você defina três matrizes de coluna-valor para as colunas COL1, COL2 e COL3, da seguinte forma.
COL1 COL2 COL3 10 30 105 20 20 120 100 12 99 Você definiu três limites de segmento para um total possível de quatro segmentos.
Para identificar os intervalos de linhas a serem replicados para cada segmento, a instância de replicação realiza uma pesquisa com essas três colunas para cada um dos quatro segmentos: A pesquisa é semelhante à seguinte:
- Segmento 1
-
Replicar todas as linhas onde o seguinte é verdadeiro: os primeiros valores de duas colunas são menores ou iguais aos seus valores de limite superior do segmento 1 correspondentes. Além disso, os valores da terceira coluna são menores que o valor limite superior do segmento 1.
- Segmento 2
-
Replique todas as linhas (exceto as linhas do segmento 1 ) em que o seguinte é verdadeiro: os primeiros valores de duas colunas são menores ou iguais aos valores de limite superior do segmento 2 correspondentes. Além disso, os valores da terceira coluna são menores que o valor limite superior do segmento 2.
- Segmento 3
-
Replique todas as linhas (exceto as linhas do segmento 2) em que o seguinte é verdadeiro: os primeiros valores de duas colunas são menores ou iguais aos valores de limite superior do segmento 3 correspondentes. Além disso, os valores da terceira coluna são menores que o valor limite superior do segmento 3.
- Segmento 4
-
Replicar todas as linhas restantes (exceto as linhas do Segmento 1, 2 e 3).
Nesse caso, a instância de replicação cria uma cláusula
WHERE
para carregar cada segmento da seguinte forma:- Segmento 1
-
((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2 = 30) AND (COL3 < 105)))
- Segmento 2
-
NOT ((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2 = 30) AND (COL3 < 105))) AND ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1 = 20) AND (COL2 = 20) AND (COL3 < 120)))
- Segmento 3
-
NOT ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1 = 20) AND (COL2 = 20) AND (COL3 < 120))) AND ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))
- Segmento 4
-
NOT ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))
-
Especificar configurações de LOB para uma tabela ou exibição selecionada
É possível definir as configurações de LOB de tarefa para uma ou mais tabelas criando uma regra de mapeamento de tabela do tipo table-settings
com a opção lob-settings
para um ou mais objetos table-settings
.
A especificação das configurações de LOB para tabelas ou exibições selecionadas tem suporte para os seguintes endpoints de origem:
-
Oracle
-
Microsoft SQL Server
-
MySQL
-
PostgreSQL
-
IBM Db2, dependendo do
mode
e das configurações debulk-max-size
, como descrito a seguir -
SAP Adaptive Server Enterprise (ASE), de acordo com as configurações de
bulk-max-size
emode
, como descrito a seguir
A especificação das configurações de LOB para tabelas ou exibições selecionadas tem suporte para os seguintes endpoints de destino:
-
Oracle
-
Microsoft SQL Server
-
MySQL
-
PostgreSQL
-
SAP ASE, dependendo do
mode
e das configurações debulk-max-size
, como descrito a seguir
nota
É possível utilizar tipos de dados de LOB somente com tabelas e visualizações que incluem uma chave primária.
Para utilizar as configurações de LOB para uma tabela ou visualização selecionada, crie uma regra de mapeamento de tabela do tipo table-settings
com a opção lob-settings
. Isso especifica o tratamento de LOB para a tabela ou a exibição identificada pela opção object-locator
. Na regra table-settings
, é possível especificar um objeto de lob-settings
com os seguintes parâmetros:
-
mode
: especifica o mecanismo para tratar a migração de LOB para a tabela ou a visualização selecionada da seguinte forma:-
limited
: o modo LOB limitado padrão é o mais rápido e mais eficiente. Utilize esse modo somente se todos os seus LOBs forem pequenos (até 100 MB de tamanho) ou se o endpoint de destino não oferecer suporte a um tamanho de LOB ilimitado. Além disso, se você utilizarlimited
, todos os LOBs deverão estar dentro do tamanho que você definir parabulk-max-size
.Nesse modo para uma tarefa de carga máxima, a instância de replicação migra todos os LOBs em linha junto com outros tipos de dados de coluna como parte do armazenamento da tabela ou da exibição principal. No entanto, a instância trunca qualquer LOB maior que o valor de
bulk-max-size
para o tamanho especificado. Para uma tarefa de carregamento de captura de dados de alteração (CDC), a instância migra todos os LOBs usando uma pesquisa da tabela de origem, como no modo LOB completo padrão.nota
Você pode migrar exibições somente para tarefas de carregamento completo.
-
unlimited
: o mecanismo de migração para o modo LOB completo depende do valor definido parabulk-max-size
da seguinte forma:-
Modo LOB completo padrão: quando você define
bulk-max-size
como zero, a instância de replicação migra todos os LOBs utilizando o modo LOB completo padrão. Esse modo exige uma pesquisa na tabela ou na exibição de origem para migrar cada LOB, independentemente do tamanho. Isso normalmente resulta em uma migração muito mais lenta do que no modo LOB limitado. Utilize esse modo somente se todos ou a maioria dos LOBs forem grandes (1 GB ou maior). -
Combinação do modo LOB completo: quando você define
bulk-max-size
como um valor diferente de zero, esse modo LOB completo utiliza uma combinação de modo LOB limitado e do modo LOB completo padrão. Isso é para uma tarefa de carga máxima, se o tamanho de um LOB estiver dentro de seu valor debulk-max-size
, a instância migrará o LOB em linha como no modo LOB limitado. Se o tamanho do LOB for maior que esse valor, a instância migrará o LOB utilizando uma pesquisa da tabela ou da exibição de origem como no modo LOB completo padrão. Para uma tarefa de carregamento de captura de dados de alteração (CDC), a instância migra todos os LOBs usando uma pesquisa da tabela de origem, como no modo LOB completo padrão. Ela faz isso independentemente do tamanho do LOB.nota
Você pode migrar exibições somente para tarefas de carregamento completo.
Esse modo resulta em uma velocidade de migração que é um compromisso entre o mais rápido, modo LOB limitado, e o mais lento, modo LOB completo padrão. Utilize esse modo somente quando você tiver uma mistura de LOBs pequenos e grandes, e a maioria dos LOBs forem pequenos.
Essa combinação de modo LOB completo está disponível somente para os seguintes endpoints:
-
IBM Db2 como origem
-
SAP ASE como origem ou destino
-
Independentemente de como você especifica o modo
unlimited
, a instância migrará todos os LOBs completamente, sem truncamento. -
-
none
: a instância de replicação migra LOBs na tabela ou visualização selecionada utilizando as configurações de LOB da tarefa. Utilize essa opção para ajudar a comparar os resultados de migração com e sem configurações de LOB para a tabela ou a exibição selecionada.
Se a tabela ou a exibição especificada tiver LOBs incluídos na replicação, é possível definir a configuração da tarefa
BatchApplyEnabled
true
somente quando utilizar o modo LOBlimited
.Em alguns casos, é possível definir
BatchApplyEnabled
comotrue
eBatchApplyPreserveTransaction
comofalse
. Nesses casos, a instância definiráBatchApplyPreserveTransaction
comotrue
se a tabela ou a exibição tiver LOBs e os endpoints de origem e de destino forem Oracle. -
-
bulk-max-size
: defina esse valor como zero ou como um valor diferente de zero em quilobytes, dependendo domode
, conforme descrito nos itens anteriores. No modolimited
, você deve definir um valor diferente para esse parâmetro.A instância converte LOBs em formato binário. Portanto, para especificar o maior LOB que você precisa replicar, multiplique seu tamanho por três. Por exemplo, se o seu maior LOB for de 2 MB, defina
bulk-max-size
como 6.000 (6 MB).
Exemplos de configurações de tabela
Veja a seguir alguns exemplos que demonstram a utilização de configurações de tabela.
exemplo Carregar uma tabela segmentada por partições
O exemplo a seguir carrega uma tabela SALES
em sua origem de forma mais eficiente carregando-a em paralelo com base em todas as partições.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "partitions-auto" } } ] }
exemplo Carregar uma tabela segmentada por subpartições
O exemplo a seguir carrega uma tabela SALES
em sua origem do Oracle de forma mais eficiente carregando-a em paralelo com base em todas as suas subpartições.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "subpartitions-auto" } } ] }
exemplo Carregar uma tabela segmentada por uma lista de partições
O exemplo a seguir carrega uma tabela SALES
em sua origem carregando-a em paralelo por uma lista específica de partições. Aqui, as partições especificadas são nomeadas de acordo com valores começando com partes do alfabeto, por exemplo, ABCD
, EFGH
e assim por diante.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "partitions-list", "partitions": [ "ABCD", "EFGH", "IJKL", "MNOP", "QRST", "UVWXYZ" ] } } ] }
exemplo Carregar uma tabela segmentada do Oracle por uma lista selecionada de partições e subpartições
O exemplo a seguir carrega uma tabela SALES
na origem do Oracle carregando-a em paralelo por uma lista selecionada de partições e subpartições. Aqui, as partições especificadas são nomeadas de acordo com valores começando com partes do alfabeto, por exemplo, ABCD
, EFGH
e assim por diante. As subpartições especificadas são nomeadas de acordo com os valores começando com numerais, por exemplo, 01234
e 56789
.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "partitions-list", "partitions": [ "ABCD", "EFGH", "IJKL", "MNOP", "QRST", "UVWXYZ" ], "subpartitions": [ "01234", "56789" ] } } ] }
exemplo Carregar uma tabela segmentada por intervalos de valores de coluna
O exemplo a seguir carrega uma tabela SALES
em sua origem, carregando-a em paralelo por segmentos especificados por intervalos dos valores das colunas SALES_NO
e REGION
.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "ranges", "columns": [ "SALES_NO", "REGION" ], "boundaries": [ [ "1000", "NORTH" ], [ "3000", "WEST" ] ] } } ] }
Aqui, duas colunas são especificadas para os intervalos dos segmentos com os nomes SALES_NO
e REGION
. Dois limites são especificados com dois conjuntos de valores de colunas (["1000","NORTH"]
e ["3000","WEST"]
).
Esses dois limites, portanto, identificam os seguintes três segmentos da tabela a serem carregados em paralelo:
- Segmento 1
-
As linhas com
SALES_NO
menor ou igual a 1.000 eREGION
menor que "NORTH". Em outras palavras, o números de vendas até 1.000 na região EAST. - Segmento 2
-
As linhas que não são do segmento 1 com
SALES_NO
menor ou igual a 3.000 eREGION
menor que "WEST". Em outras palavras, os números de vendas acima de 1.000 até 3.000 nas regiões NORTH e SOUTH. - Segmento 3
-
Todas as demais linhas que não sejam do Segmento 1 e do Segmento 2. Em outras palavras, os números de vendas acima de 3.000 na região "WEST".
exemplo Carregar duas tabelas: uma segmentada por intervalos e outra segmentada por partições
O exemplo a seguir carrega uma tabela SALES
em paralelo com os limites do segmento que você identificar. Ele também carrega uma tabela ORDERS
em paralelo por todas as suas partições, como nos exemplos anteriores.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "ranges", "columns": [ "SALES_NO", "REGION" ], "boundaries": [ [ "1000", "NORTH" ], [ "3000", "WEST" ] ] } }, { "rule-type": "table-settings", "rule-id": "3", "rule-name": "3", "object-locator": { "schema-name": "HR", "table-name": "ORDERS" }, "parallel-load": { "type": "partitions-auto" } } ] }
exemplo Carregar uma tabela com LOBs utilizando o modo LOB limitado
O exemplo a seguir carrega uma tabela ITEMS
que inclui LOBs em sua origem utilizando o modo LOB limitado (o padrão) com um tamanho máximo não truncado de 100 MB. Todos os LOBs maiores que esse tamanho são truncados em 100 MB. Todos os LOBs são carregados em linha com todos os outros tipos de dados da coluna.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "bulk-max-size": "100000" } } ] }
exemplo Carregar uma tabela com LOBs utilizando o modo LOB completo padrão
O exemplo a seguir carrega uma tabela ITEMS
na origem, incluindo todos os LOBs sem truncamento, utilizando o modo LOB completo padrão. Todos os LOBs, independentemente do tamanho, são carregados separadamente dos outros tipos de dados utilizando uma pesquisa de cada LOB na tabela de origem.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "mode": "unlimited", "bulk-max-size": "0" } } ] }
exemplo Carregar uma tabela com LOBs utilizando o modo de combinação de LOB completo
O exemplo a seguir carrega uma tabela ITEMS
em sua origem, inclusive todos os seus LOBs sem truncamento, utilizando o modo de combinação de LOB completo. Todos os LOBs com até 100 MB de tamanho são carregados em linha junto com os outros tipos de dados, como no modo LOB limitado. Todos os LOBs com mais de 100 MB de tamanho são carregados separadamente de outros tipos de dados. Essa carga separada utiliza uma pesquisa para cada LOB na tabela de origem, como no modo LOB completo padrão.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "mode": "unlimited", "bulk-max-size": "100000" } } ] }
exemplo Carregar uma tabela com LOBs utilizando as configurações de LOB de tarefa
O exemplo a seguir carrega uma tabela ITEMS
em sua origem, inclusive todos os LOBs, utilizando suas configurações de LOB de tarefa. A configuração de bulk-max-size
de 100 MB é ignorada e abandonada apenas se houver uma redefinição rápida para o modo limited
ou unlimited
.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "mode": "none", "bulk-max-size": "100000" } } ] }