Como posso controlar o número de arquivos CDC que estão sendo gerados para meu endpoint do S3 de destino usando o AWS DMS?

4 minuto de leitura
0

Quero controlar o número de arquivos de captura de dados de alteração (CDC) gerados quando uso o Amazon Simple Storage Service (Amazon S3) como um endpoint de destino. Como posso usar o AWS Database Migration Service (AWS DMS) para fazer isso?

Breve descrição

Ao usar o Amazon S3 como um endpoint de destino, é possível usar vários parâmetros para controlar o tamanho do arquivo associado no endpoint de destino. Isso inclui o uso do Amazon S3 como um endpoint de destino para uma carga completa e um CDC ou uma tarefa do AWS DMS somente para o CDC.

Este artigo aborda os seguintes atributos extras de conexão (ECAs). Além disso, ele trata de como usá-los para controlar o volume de arquivos CDC gerados em seu endpoint do Amazon S3:

  • cdcMaxBatchInterval: a condição de comprimento máximo do intervalo, definida em segundos, para enviar um arquivo para o Amazon S3. O valor padrão é 60 segundos.
  • cdcMinFileSize: condição de tamanho mínimo de arquivo, definida em KB, para enviar um arquivo para o Amazon S3. O valor padrão é 32.000 KB.
  • maxFileSize: o tamanho máximo em KB de qualquer arquivo .csv a ser criado durante a migração para um destino do S3 em condições de carga total. O valor padrão é 1 GB.
  • WriteBufferSize: o tamanho em KB do buffer de gravação de arquivos na memória usado ao gerar arquivos .csv no disco local na instância de replicação do AWS DMS. O valor padrão é 1000 KB.

Resolução

O parâmetro cdcMaxBatchInterval controla o intervalo de tempo para gravar arquivos no Amazon S3. Quando o valor padrão de 60 segundos é usado, o AWS DMS grava arquivos no Amazon S3 a cada minuto. Outro parâmetro importante é o parâmetro cdcMinFileSize, que determina o tamanho máximo do arquivo CDC. Ao usar o valor padrão de 32000 KB, o AWS DMS gravará no Amazon S3 sempre que houver 32000 KB de dados de alteração.

Os parâmetros cdcMaxBatchInterval e cdcMinFileSize trabalham juntos. O AWS DMS usa o valor do parâmetro que for atendido primeiro. Com a configuração padrão, o AWS DMS gravará o arquivo no Amazon S3 se ele tiver um minuto de alterações pendentes ou 32000 KB de dados. Dependendo do que acontecer primeiro, uma dessas ações será concluída.
Nota: o AWS DMS mantém a transação no mesmo arquivo, portanto, o tamanho do arquivo pode exceder o cdcMinFileSize e o cdcMaxBatchInterval se a transação for grande.

maxFileSize determina o tamanho máximo do arquivo dos arquivos de saída de destino do S3 para os formatos CSV e Parquet. Mas, ao gravar em arquivos .parquet, o AWS DMS grava dados em lotes:

1.    O AWS DMS aloca um segmento de memória de 1024 KB, que é o tamanho padrão para writeBufferSize.

2.    Independentemente do valor de maxFileSize, o AWS DMS aloca pelo menos um buffer de gravação com um tamanho padrão de 1 MB.

3.    Quando o AWS DMS termina de gravar o primeiro lote de dados, ele compara o tamanho atual dos dados com maxFileSize. Os dados serão gravados em um arquivo .parquet no bucket do S3 de destino se o tamanho atual for maior ou igual a maxFileSize.

4.    Se você definir maxFileSize como 1 MB, writeBufferSize, com um valor padrão de 1 MB, atenderá ao valor de maxFileSize. Isso ocorre porque a condição já é atendida depois que um buffer de gravação é alocado. Caso deseje diminuir o tamanho geral do arquivo .parquet gerado, é possível diminuir o valor do writeBufferSize. Ao configurá-lo para menos de 1 MB, a verificação condicional acontece quando o tamanho dos dados gravados for menor que 1 MB.

Observação: as configurações do parâmetro WriteBufferSize aplicam-se somente a arquivos .parquet e não a arquivos .csv.


Informações relacionadas

Como usar o Amazon S3 como um destino para o AWS Database Migration Service

AWS OFICIAL
AWS OFICIALAtualizada há um ano