Construir um pipeline de eventos em tempo real para milhões de eventos

As aplicações modernas geram um fluxo constante de cliques, transações, leituras de sensores, chamadas de API e registos.  Transforme fluxos contínuos de elevado volume em informações analíticas fiáveis. Esta arquitetura empresarial unifica a recolha, o processamento e a análise, combinando o carregamento duradouro com consultas rápidas para equipas de AdTech, FinTech, IoT e observabilidade que precisam de agir com base em dados atualizados.
[object Object]

Os dois pontos de congestionamento de um pipeline de eventos em tempo real

Os pipelines de eventos em tempo real falham em uma de duas situações: ou os eventos não conseguem passar pela camada de carregamento de forma fiável, ou nunca se transformam em consultas rápidas na plataforma. Estes são problemas distintos que exigem ferramentas diferentes, e resolver apenas um deles é o que leva as equipas a acabar com estruturas frágeis e dispendiosas.

Sem uma base de streaming duradoura, os produtores e consumidores de dados distribuídos ficam fortemente interligados. Os produtores são as aplicações que geram e enviam eventos para tópicos do Kafka, enquanto os consumidores são os serviços que leem esses eventos. Os produtores escrevem diretamente em filas, bases de dados ou serviços personalizados e, quando um consumidor fica inativo ou apresenta atrasos, o produtor bloqueia ou começa a descartar eventos.

Além disso, o PostgreSQL e outras bases de dados OLTP semelhantes na Cloud Pública foram concebidos para operações ao nível da linha: inserções, atualizações, eliminações. Não foram concebidos para analisar milhares de milhões de linhas, agregar dados em várias dimensões ou atualizar painéis de controlo a cada minuto. À medida que o volume de eventos aumenta, as consultas que costumavam devolver resultados em 200 ms começam a demorar segundos, depois dezenas de segundos, e depois minutos. O sistema torna-se um congestionamento para as decisões de produto.
[object Object]

Operar com confiança à escala empresarial

O pipeline de eventos em tempo real inclui replicação, cópias de segurança e monitorização
[object Object]
O Kafka permite um streaming adequado
[object Object]
O ClickHouse suporta uma análise rápida
[object Object]
Replicação, cópias de segurança e monitorização
[object Object]
Regiões europeias e controlos de soberania de dados

Uma arquitetura de referência: Apache Kafka + ClickHouse

Apache Kafka como base de streaming

O Kafka atua como o sistema nervoso central para eventos. Os produtores enviam eventos para tópicos, que são ordenados logicamente e repartidos pelos brokers. Cada repartição pode ser consumida de forma independente, que é a forma como o Kafka escala o processamento horizontalmente. Os grupos de consumidores leem a partir destas repartições, e cada consumidor num grupo é responsável por um subconjunto das repartições.

As repartições são a chave para o processamento. Um tópico com mais repartições pode processar mais escritas e mais consumidores em paralelo, até ao número de repartições. Os grupos de consumidores permitem a repetição. Os esquemas para aplicações são normalmente geridos separadamente, frequentemente com um Schema Registry, para que os produtores e consumidores possam evoluir sem se prejudicarem mutuamente. Os eventos são mantidos durante um período de retenção configurável, o que lhe dá uma janela para repetir dados sem ter de reprocessar a partir da fonte. Esta durabilidade e desacoplamento contínuo é o que torna o Kafka uma base fiável para streams de eventos de alto volume.

ClickHouse como camada OLAP em tempo real

O ClickHouse é uma base de dados colunar e distribuída, concebida para cargas de trabalho analíticas. Armazena dados por coluna em vez de por linha, o que significa que pode ignorar colunas irrelevantes durante as consultas e comprimir os dados intensamente. Juntamente com o seu motor de armazenamento, que está otimizado para leituras sequenciais e pushdown de predicados, isto permite ao ClickHouse analisar milhares de milhões de linhas rapidamente e apresentar resultados agregados em milésimos de segundo. Podem ser carregados novos eventos em tempo real, e o ClickHouse pode pré-agregá-los utilizando vistas materializadas que se atualizam à medida que os dados chegam. Isto significa painéis de controlo e alertas contínuos, sem esperar por uma tarefa em batch ou por uma janela de ETL. A base de dados foi concebida para crescer horizontalmente, adicionando nós para aumentar a capacidade de armazenamento e de computação à medida que o volume de eventos cresce.

Armazenamento de Objetos como uma camada de cold-data para eventos antigos

Nem todos os dados precisam de permanecer no armazenamento ativo; manter todos os eventos no ClickHouse em discos locais torna-se dispendioso e desnecessário. O padrão comum é transferir dados mais antigos para o Armazenamento de Objetos da OVHcloud (compatível com S3)*, mantendo os dados recentes no ClickHouse para consultas rápidas. Os eventos mais antigos do que um limiar configurado são consultados quando necessário, para análises históricas mais aprofundadas. Esta abordagem reduz o custo da retenção a longo prazo, preservando a capacidade de executar consultas em todo o conjunto de dados. 

Em muitos casos de utilização reais de processamento, a camada ativa (ClickHouse) armazena dados relativos a dias ou semanas para painéis de controlo e alertas em tempo real, enquanto a camada inativa (OVHcloud Object Storage) armazena um histórico de meses ou anos para fins de conformidade, auditorias e análises aprofundadas periódicas. Esta separação mantém os custos operacionais previsíveis e permite que o pipeline seja dimensionado sem atingir um limite rígido de armazenamento da aplicação.


A integração nativa do motor Kafka no ClickHouse

Apache KafkaKafka ConnectClickHouse
Existem três abordagens principais: o motor de tabelas nativo do Kafka no ClickHouse, as vistas materializadas criadas com base nesse motor e o Kafka Connect para integração com sistemas externos.

O ClickHouse possui um motor de tabela Kafka integrado que lhe permite subscrever diretamente tópicos do Kafka. Define uma tabela com o motor Kafka, especifica o nome do tópico, a lista de brokers e o grupo de consumidores, e o ClickHouse começa a consumir eventos do Kafka como se fossem linhas numa tabela normal. Esta é uma integração direta e nativa que não requer middleware adicional. O motor Kafka no ClickHouse foi concebido para o carregamento de streaming. Lê registos do tópico, analisa-os de acordo com o formato especificado (JSON, Avro, Protobuf, etc.) e apresenta-os como linhas que podem ser consultadas ou inseridas noutras tabelas.
Diagrama técnico de um pipeline de eventos em tempo real com o Apache Kafka no centro, a ligar aplicações, bases de dados, plataformas downstream e
O pipeline de eventos em tempo real recolhe fluxos de impressões, cliques e conversões à medida que ocorrem. As equipas da campanha podem monitorizar o ritmo, atualizar sinais de atribuição e identificar padrões de tráfego invulgares antes que os relatórios em lote atrasados os revelem. Os tipos de eventos independentes permanecem disponíveis para investigação e recálculo.

Os eventos de transação alimentam indicadores de risco em tempo real, verificações comportamentais e alertas operacionais. Os analistas podem examinar a atividade de contas, pagamentos e dispositivos em conjunto, ajudando as equipas de investigação a reconhecer sequências suspeitas e a responder utilizando informações atuais em vez de esperar pelo processamento agendado.

Sensores, dispositivos ligados e veículos produzem telemetria contínua. O pipeline capta medições, alterações de estado e sinais de falha, permitindo às equipas avaliar o estado dos dispositivos, monitorizar frotas e detetar condições de funcionamento que exigem intervenção.

Registos, métricas e rastros fluem para o ClickHouse para filtragem e correlação rápidas entre serviços. O motor de tabela Kafka fornece a ponte de streaming para tabelas analíticas, onde as equipas da plataforma podem explorar incidentes, comparar o comportamento do sistema e dar suporte a painéis de controlo sem terem de executar percursos de carregamento separados para cada tipo de sinal.
O pipeline de eventos em tempo real recolhe fluxos de impressões, cliques e conversões à medida que ocorrem. As equipas da campanha podem monitorizar o ritmo, atualizar sinais de atribuição e identificar padrões de tráfego invulgares antes que os relatórios em lote atrasados os revelem. Os tipos de eventos independentes permanecem disponíveis para investigação e recálculo.

Moldar eventos recebidos para decisões mais rápidas

Pré-agregar medidas recorrentes

As vistas materializadas calculam continuamente totais, taxas e métricas agrupadas à medida que os eventos chegam, reduzindo o trabalho repetido no momento da consulta.

Alinhar tabelas com padrões de acesso

Ordenar os dados por hora e dimensões frequentemente filtradas, para que as análises incluam menos registos irrelevantes.

Ler apenas campos úteis

A seleção de colunas limita a leitura aos atributos necessários para cada painel de controlo, alerta ou consulta exploratória.

Conceber a retenção em torno da procura

Separar os registos consultados frequentemente dos dados menos ativos. As tabelas com reconhecimento de retenção ajudam a manter análises em menos de um segundo para visualizações operacionais, ao mesmo tempo que garantem a viabilidade das investigações à medida que os registos históricos aumentam.

O custo da espera

LatênciaETLTerraform
Quando o pipeline da aplicação é lento ou pouco fiável, as consequências são mensuráveis. Os tempos de resposta da deteção de fraudes variam entre segundos e minutos, o que, no setor da FinTech, se traduz diretamente em perdas financeiras e riscos para a reputação. Os ciclos de elaboração de relatórios lentos impedem a tomada de decisões sobre os produtos e obrigam as equipas a basear-se em dados pontuais que já estão desatualizados na altura em que são analisados. Para compensar, as equipas começam a corrigir a estrutura. As tarefas de ETL personalizados, filas de mensagens criadas manualmente e vistas de relatórios acumulam-se num pipeline ad-hoc que tem de ser mantido manualmente. O custo real não é apenas a latência imediata. É o desgaste operacional, a dívida técnica e o facto de a equipa não conseguir desenvolver funcionalidades em tempo real, uma vez que está ocupada a manter o pipeline existente em funcionamento.
[object Object]

Atribuir a cada camada uma responsabilidade clara

Base de streaming

Armazenar em buffer, ordenar e reproduzir fluxos de eventos de grande volume, para que os produtores permaneçam independentes das cargas de trabalho de processamento e análise.

Serviço analítico

Expor eventos recentes para consultas operacionais rápidas, painéis de controlo e investigações, mantendo simultaneamente um ambiente dedicado às necessidades analíticas.

Nível de cold-data

Manter os registos mais antigos fora do armazenamento focado no desempenho. Esta separação permite o acesso a longo prazo sem manter todos os eventos no caminho analítico ativo. O padrão comum consiste em transferir os dados mais antigos para o Armazenamento de Objetos OVHcloud

Operações e entrega geridas

A OVHcloud gere a replicação, as cópias de segurança e a monitorização em toda a arquitetura do serviço. As equipas podem implementar recursos através do Painel de Controlo da OVHcloud ou definir ambientes repetíveis com o Terraform. 

Implementar um pipeline de eventos em tempo real em minutos

A configuração de um pipeline de eventos em tempo real na OVHcloud demora alguns minutos. Basta implementar um cluster Managed Apache Kafka e uma instância Managed ClickHouse através do Painel de Controlo da OVHcloud ou do Terraform, com replicação, cópias de segurança e monitorização ativadas por predefinição.

Para as equipas que pretendem ajuda no dimensionamento da estrutura, a OVHcloud oferece acesso direto a especialistas em infraestruturas de dados, nomeadamente as Managed Databases for PostgreSQL, que podem avaliar os seus volumes de eventos e padrões de consulta atuais e fornecer uma comparação de custos em relação à sua estrutura existente. Quer seja um Engenheiro de Dados que necessita de resultados em tempo real com milhares de milhões de linhas com um tempo mínimo de infraestrutura ou um Diretor de Dados que pretende reduzir a carga operacional e ter custos de Cloud previsíveis, a estrutura gerida elimina os custos operacionais, mantendo a arquitetura portátil e de código aberto.

*S3 é uma marca registada da Amazon Technologies, Inc. Os serviços da OVHcloud não são patrocinados, aprovados nem afiliados, de forma alguma, à Amazon Technologies, Inc.
OVHcloud_Cloud_Database_Main_600x400.png
Começar a criar informações em tempo real fiáveis
É possível gerir o Kafka e o ClickHouse por conta própria, mas isso implica um elevado custo em termos de tempo de engenharia e de risco operacional. A OVHcloud oferece tanto o Managed Apache Kafka como o Managed ClickHouse como serviços totalmente geridos, com foco na soberania europeia, preços previsíveis e elevada disponibilidade. 
Explore os nossos serviços de streaming, analíticos e de armazenamento e, em seguida, transforme eventos de elevado volume em informações fiáveis e consultáveis, reduzindo simultaneamente o trabalho operacional necessário para executar a infraestrutura subjacente.
Começar a criar