- O snapshot inicial via S3 ClickPipes
- Atualizações em tempo real via Kinesis ClickPipes
ReplacingMergeTree. Esse mecanismo de tabela é comumente usado em cenários de CDC para permitir a aplicação de operações de atualização. Saiba mais sobre esse padrão nos seguintes artigos do blog:
- Captura de Dados de Alteração (CDC) com PostgreSQL e ClickHouse - Parte 1
- Captura de Dados de Alteração (CDC) com PostgreSQL e ClickHouse - Parte 2
1
Configure o Kinesis stream
Primeiro, habilite um Kinesis Stream na sua tabela do DynamoDB para capturar alterações em tempo real. É importante fazer isso antes de criar o snapshot para evitar a perda de dados.
Consulte o guia da AWS aqui.
2
Crie o snapshot
Em seguida, criaremos um snapshot da tabela do DynamoDB. Isso pode ser feito por meio de uma exportação do AWS para o S3. Encontre o guia da AWS aqui.
Você vai querer fazer uma “Exportação completa” no formato DynamoDB JSON.
3
Carregue o snapshot no ClickHouse
Crie as tabelas necessárias
Os dados do snapshot do DynamoDB terão esta aparência:JSONExtract no ClickHouse em uma visão materializada.Vamos criar três tabelas:- Uma tabela para armazenar os dados brutos do DynamoDB
- Uma tabela para armazenar os dados finais desaninhados (tabela de destino)
- Uma visão materializada para desaninhar os dados
- Essa tabela deve ser uma tabela
ReplacingMergeTree - A tabela deve ter uma coluna
version- Nas etapas seguintes, faremos o mapeamento do campo
ApproximateCreationDateTimedo Kinesis stream para a colunaversion.
- Nas etapas seguintes, faremos o mapeamento do campo
- A tabela deve usar a chave de partição como chave de ordenação (especificada por
ORDER BY)- Linhas com a mesma chave de ordenação serão deduplicadas com base na coluna
version.
- Linhas com a mesma chave de ordenação serão deduplicadas com base na coluna
Crie o ClickPipe de snapshot
Agora você pode criar um ClickPipe para carregar os dados de snapshot do S3 no ClickHouse. Siga o guia do S3 ClickPipe aqui, mas use as seguintes configurações:- Caminho de ingestão: Você precisará localizar o caminho dos arquivos JSON exportados no S3. O caminho será parecido com isto:
- Formato: JSONEachRow
- Tabela: Sua tabela de snapshot (por exemplo,
default.snapshotno exemplo acima)
4
Crie o ClickPipe para o Kinesis
Agora podemos configurar o ClickPipe do Kinesis para capturar alterações em tempo real do Kinesis stream. Siga o guia do ClickPipe do Kinesis aqui, mas use as seguintes configurações:
- Stream: O Kinesis stream usado na etapa 1
- Table: Sua tabela de destino (por exemplo,
default.destinationno exemplo acima) - Flatten object: true
- Column mappings:
ApproximateCreationDateTime:version- Mapeie os outros campos para as colunas de destino apropriadas, conforme mostrado abaixo
5
Limpeza (opcional)
Depois que o ClickPipe de snapshot for concluído, você poderá excluir a tabela de snapshot e a visão materializada.