Principais recursos
- CDC de streaming em tempo real: O Streamkap captura alterações diretamente dos logs do seu banco de dados, garantindo que os dados no ClickHouse sejam uma réplica em tempo real da fonte. Processamento de streams simplificado: transforme, enriqueça, roteie, formate e crie embeddings a partir dos dados em tempo real antes de chegarem ao ClickHouse. Com tecnologia Flink, sem nenhuma da complexidade
- Totalmente gerenciado e escalável: Ele oferece um pipeline pronto para produção e sem necessidade de manutenção, eliminando a necessidade de gerenciar sua própria infraestrutura de Kafka, Flink, Debezium ou schema registry. A plataforma foi projetada para alto throughput e pode escalar linearmente para lidar com bilhões de eventos.
- Evolução automática de esquema: O Streamkap detecta automaticamente alterações de esquema no banco de dados de origem e as propaga para o ClickHouse. Ele consegue adicionar novas colunas ou alterar tipos de coluna sem intervenção manual.
- Otimizado para ClickHouse: A integração foi desenvolvida para funcionar com eficiência com os recursos do ClickHouse. Por padrão, ela usa o engine ReplacingMergeTree para lidar perfeitamente com atualizações e exclusões do sistema de origem.
- Entrega resiliente: A plataforma oferece garantia de entrega de pelo menos uma vez, assegurando a consistência dos dados entre sua fonte e o ClickHouse. Para operações de upsert, ela realiza desduplicação com base na chave primária.
Primeiros passos
Pré-requisitos
- Uma conta no Streamkap.
- Os detalhes de conexão do seu cluster do ClickHouse: Hostname, Porta, Nome de usuário e Senha.
- Um banco de dados de origem (por exemplo, PostgreSQL, SQL Server) configurado para permitir CDC. Você pode encontrar guias detalhados de configuração na documentação do Streamkap.
Etapa 1: Configure a origem no Streamkap
- Faça login na sua conta do Streamkap.
- Na barra lateral, acesse Connectors e selecione a aba Sources.
- Clique em + Add e selecione o tipo do seu banco de dados de origem (por exemplo, SQL Server RDS).
- Preencha os detalhes da conexão, incluindo o endpoint, a porta, o nome do banco de dados e as credenciais do usuário.
- Salve o conector.
Etapa 2: Configure o destino do ClickHouse
- Na seção Connectors, selecione a guia Destinations.
- Clique em + Add e escolha ClickHouse na lista.
- Insira os detalhes da conexão do seu serviço ClickHouse:
- Hostname: O host da sua instância do ClickHouse (por exemplo,
abc123.us-west-2.aws.clickhouse.cloud) - Port: A porta HTTPS segura, normalmente
8443 - Username and Password: As credenciais do seu usuário do ClickHouse
- Database: O nome do banco de dados de destino no ClickHouse
- Hostname: O host da sua instância do ClickHouse (por exemplo,
- Salve o destino.
Etapa 3: Criar e executar o pipeline
- Vá até Pipelines na barra lateral e clique em + Create.
- Selecione a origem e o destino que você acabou de configurar.
- Escolha os schemas e as tabelas que deseja transmitir.
- Dê um nome ao seu pipeline e clique em Save.
Passo 4: Verifique os dados no ClickHouse
Como funciona com o ClickHouse
Engine de Tabela e Tratamento de Dados
- A chave primária da tabela de origem é usada como chave ORDER BY na definição da tabela ReplacingMergeTree.
- Atualizações na origem são gravadas como novas linhas no ClickHouse. Durante o processo de mesclagem em segundo plano, o ReplacingMergeTree consolida essas linhas, mantendo apenas a versão mais recente com base na chave de ordenação.
-
Exclusões são tratadas por uma flag de metadados que alimenta o parâmetro
is_deleteddo ReplacingMergeTree. As linhas excluídas na origem não são removidas imediatamente, mas são marcadas como excluídas.- Opcionalmente, os registros excluídos podem ser mantidos no ClickHouse para fins analíticos
Colunas de metadados
Consultando os dados mais recentes
SELECT * simples pode mostrar linhas históricas ou já excluídas antes que uma mesclagem seja concluída. Para obter o estado mais atual dos seus dados, você deve filtrar os registros excluídos e selecionar apenas a versão mais recente de cada linha.
Você pode fazer isso usando o modificador FINAL, o que é prático, mas pode afetar o desempenho da consulta: