Apache Kafka é uma plataforma popular de streaming de eventos usada para coletar, processar e armazenar dados de eventos de streaming ou dados que não têm início ou fim distintos. O Kafka torna possível uma nova geração de aplicativos distribuídos com capacidade de escalonamento para lidar com bilhões de eventos transmitidos por minuto.
Até a chegada de sistemas de streaming de eventos como o Apache o Kafka e o Google Cloud Pub/Sub, o processamento de dados normalmente era feito com jobs em lote periódicos, em que os dados brutos eram primeiro armazenados e depois processados em intervalos de tempo arbitrários. Por exemplo, uma empresa de telecomunicações pode esperar até o final do dia, da semana ou do mês para analisar os milhões de registros de chamadas e calcular as cobranças acumuladas.
Uma das limitações do processamento em lote é que ele não é em tempo real. Cada vez mais, as organizações querem analisar dados em tempo real para tomar decisões de negócios oportunas e agir quando coisas interessantes acontecem. Por exemplo, a mesma empresa de telecomunicações mencionada acima pode se beneficiar ao manter os clientes informados sobre as tarifas em tempo real, como forma de aprimorar a experiência geral do cliente.
É aqui que entra o streaming de eventos. O streaming de eventos é o processamento contínuo de streams infinitos de eventos, à medida que são criados, para capturar o valor de tempo dos dados, bem como criar aplicativos baseados em push que agem sempre que algo interessante acontece. Exemplos de streaming de eventos incluem a análise contínua de arquivos de registros gerados por aplicativos da Web voltados para o cliente, o monitoramento do comportamento do cliente e a resposta a esse comportamento conforme os usuários navegam em sites de comércio eletrônico, a manutenção de um ritmo contínuo do sentimento do cliente ao analisar as mudanças nos dados de sequência de cliques gerados por redes sociais ou a coleta de dados de telemetria gerados por dispositivos da Internet das Coisas (IoT) e a resposta a esses dados.
Saiba mais sobre o Apache Kafka para BigQuery, um serviço que automatiza as operações e a segurança do Kafka e facilita o streaming de dados para o BigQuery.
Saiba mais sobre a oferta totalmente gerenciada e integrada do Confluent Cloud do Apache Kafka no Google Cloud.
Tudo pronto para começar? Clientes novos recebem US$ 300 em créditos para usar no Google Cloud.
O Kafka coleta dados de streaming e registra exatamente o que aconteceu e quando. Esse registro é chamado de registro de confirmação imutável. É imutável porque pode ser anexado, mas não alterado. A partir daí, é possível se inscrever no registro (acessar os dados) e também publicar nele (adicionar mais dados) a partir de qualquer número de aplicativos de streaming em tempo real, bem como de outros sistemas.
Por exemplo, use o Kafka para receber todo o fluxo de dados de transações do site para preencher um aplicativo que monitora as vendas de produtos em tempo real, compara com a quantidade do produto em estoque e possibilita a reposição do inventário no momento certo.
O Kafka tem código aberto
Isso significa que o código-fonte dele está disponível gratuitamente para qualquer pessoa pegar, modificar e distribuir como sua própria versão, com qualquer propósito. Não há taxas de licenciamento ou outras restrições. O Kafka também se beneficia por ter uma comunidade global de desenvolvedores trabalhando e contribuindo com ele. Como resultado, o Kafka oferece uma ampla gama de conectores, plug-ins, ferramentas de monitoramento e ferramentas de configuração como parte de um ecossistema em crescimento.
Escalonamento e velocidade
O Kafka não apenas escalona com volumes cada vez maiores de dados, mas também fornece esses dados para toda a empresa em tempo real. Ser uma plataforma distribuída também é um grande benefício do Kafka. Isso significa que o processamento é dividido entre várias máquinas, físicas ou virtuais. Isso tem duas vantagens: com algum trabalho, ele consegue escalonar horizontalmente, para adicionar máquinas quando precisar de mais capacidade de processamento ou armazenamento, e é confiável, porque a plataforma ainda funciona mesmo se as máquinas individuais falharem. No entanto, esse recurso do Kafka pode ser muito difícil de gerenciar em grande escala.
Apesar de todas as vantagens do Kafka, ele é uma tecnologia difícil de implantar. Os clusters locais do Kafka são difíceis de configurar, escalonar e gerenciar em produção. Ao estabelecer a infraestrutura local para executar o Kafka, você precisa provisionar máquinas e configurar o Kafka. Você também tem que projetar o cluster de máquinas distribuídas para garantir a disponibilidade, certificar-se de que os dados sejam armazenados e protegidos, configurar o monitoramento e escalonar cuidadosamente os dados para suportar as alterações de carga. Em seguida, você tem que manter essa infraestrutura, substituindo as máquinas quando elas falharem e fazendo correções e atualizações de rotina.
Uma abordagem alternativa é utilizar o Kafka como um serviço gerenciado na nuvem. Um fornecedor terceirizado cuida do provisionamento, da criação e manutenção da infraestrutura do Kafka. Você cria e executa os aplicativos. Isso facilita a implantação do Kafka sem a necessidade de conhecimento específico no gerenciamento da infraestrutura do Kafka. Você gasta menos tempo gerenciando a infraestrutura e mais tempo criando valor para seu negócio.
O Kafka permite o processamento de eventos de streaming por meio de cinco funções principais:
Publicar
Uma fonte de dados pode publicar ou posicionar um fluxo de eventos de dados em um ou mais tópicos do Kafka ou agrupamentos de eventos de dados semelhantes. Por exemplo, você pode selecionar o streaming de dados de um dispositivo IoT, como um roteador de rede, e publicá-lo em um aplicativo que faz manutenção preditiva para calcular quando o roteador pode falhar.
Consumir
Um aplicativo pode ser inscrito em um ou mais tópicos do Kafka, ou usar dados desses tópicos, e processar o fluxo de dados resultante. Por exemplo, um aplicativo pode coletar dados de vários fluxos de mídia social e analisá-los para determinar o teor das conversas on-line sobre uma marca.
Processo
A API Kafka Streams pode atuar como um processador de streaming, consumindo fluxos de dados de entrada de um ou mais tópicos e produzindo um fluxo de dados de saída para um ou mais tópicos.
Conectar
Crie conexões reutilizáveis de produtor ou consumidor que vinculem tópicos do Kafka a aplicativos existentes. Existem centenas de conectores existentes já disponíveis, incluindo conectores para serviços importantes como Dataproc, BigQuery e muito mais.
Loja
O Apache Kafka oferece armazenamento durável. O Kafka pode atuar como uma "fonte da verdade", sendo capaz de distribuir dados em vários nós para uma implantação altamente disponível em um único data center ou em várias zonas de disponibilidade.
Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.