- 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 stream do Kinesis
2. Crie o snapshot
3. Carregue o snapshot para o ClickHouse
Crie as tabelas necessárias
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
- Caminho de ingestão: Você precisará localizar o caminho dos arquivos JSON exportados no S3. O caminho será mais ou menos assim:
- Formato: JSONEachRow
- Tabela: Sua tabela de snapshot (por exemplo,
default.snapshotno exemplo acima)
4. Criar o ClickPipe do Kinesis
- Stream: o stream do Kinesis 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, como mostrado abaixo