Construindo um aplicativo quase em tempo actual com Zerobus Ingest e Lakebase


Dados de eventos de IoT, fluxo de cliques e telemetria de aplicativos potencializam análises críticas em tempo actual e IA quando combinados com a plataforma de inteligência de dados Databricks. Tradicionalmente, a ingestão desses dados exigia vários saltos de dados (barramento de mensagens, trabalhos do Spark) entre a fonte de dados e o lakehouse. Isso acrescenta sobrecarga operacional, duplicação de dados, requer conhecimento especializado e geralmente é ineficiente quando o lago é o único destino desses dados.

Assim que esses dados chegam ao lago, eles são transformados e selecionados para casos de uso analíticos posteriores. No entanto, as equipes precisam fornecer esses dados analíticos para casos de uso operacionais, e criar esses aplicativos personalizados pode ser um processo trabalhoso. Eles precisam provisionar e manter componentes essenciais da infraestrutura, como uma instância de banco de dados OLTP dedicada (com rede, monitoramento, backups e muito mais). Além disso, eles precisam gerenciar o ETL reverso processo para os dados analíticos no banco de dados para ressurgi-los em um aplicativo em tempo actual. Os clientes também costumam criar pipelines adicionais para enviar dados do lakehouse para esses bancos de dados operacionais externos. Esses pipelines aumentam a infraestrutura que os desenvolvedores precisam configurar e manter, desviando totalmente sua atenção do objetivo principal: construir os aplicativos para seus negócios.

Então, como o Databricks simplifica a ingestão de dados no lakehouse e o fornecimento de dados gold para dar suporte a cargas de trabalho operacionais?

Digite Zerobus Ingest e Lakebase.

Sobre Zerobus Ingest

Ingestão Zerobusparte de Conexão Lakeflowé um conjunto de APIs que fornece uma maneira simplificada de enviar dados de eventos diretamente para o lakehouse. Eliminando totalmente a camada de barramento de mensagens de coletor único, o Zerobus Ingest reduz a infraestrutura, simplifica as operações e oferece ingestão quase em tempo actual em escala. Como tal, o Zerobus Ingest torna mais fácil do que nunca desbloquear o valor dos seus dados.

A aplicação de produção de dados deve especificar uma tabela de destino para escrever dados, garantir que as mensagens são mapeadas corretamente para o esquema da tabela e, em seguida, iniciar um fluxo para enviar dados para Databricks. No lado do Databricks, a API valida os esquemas da mensagem e da tabela, grava os dados na tabela de destino e envia uma confirmação ao cliente de que os dados foram persistidos.

Principais benefícios do Zerobus Ingest:

  • Arquitetura simplificada: elimina a necessidade de fluxos de trabalho complexos e duplicação de dados.
  • Desempenho em escala: oferece suporte à ingestão quase em tempo actual (até 5 segundos) e permite que milhares de clientes gravem na mesma tabela (taxa de transferência de até 100 MB/s por cliente).
  • Integração com a Plataforma de Inteligência de Dados: acelera o tempo de obtenção de valor, permitindo que as equipes apliquem ferramentas analíticas e de IA, como MLflow para detecção de fraudes, diretamente em seus dados.

Capacidade de ingestão Zerobus

Especificações

Latência de ingestão

Quase em tempo actual (≤5 segundos)

Taxa de transferência máxima por cliente

Até 100 MB/s

Clientes simultâneos

Milhares por mesa

Atraso de sincronização contínua (Delta → Lakebase)

10–15 segundos

Latência do gravador foreach em tempo actual

200–300 milissegundos

Sobre Lakeside

Base do lago é um banco de dados Postgres totalmente gerenciado, sem servidor e escalonável integrado à plataforma Databricks, projetado para cargas de trabalho operacionais e transacionais de baixa latência que são executadas diretamente nos mesmos dados que alimentam casos de uso analíticos e de IA.

A separação completa entre computação e armazenamento proporciona provisionamento rápido e escalonamento automático elástico. A integração do Lakebase com a plataforma Databricks é um grande diferencial dos bancos de dados tradicionais porque o Lakebase disponibiliza os dados do Lakehouse diretamente para aplicativos em tempo actual e IA, sem a necessidade de pipelines de dados personalizados complexos. Ele foi desenvolvido para fornecer criação de banco de dados, latência de consulta e requisitos de simultaneidade para potencializar aplicativos corporativos e cargas de trabalho de agente. Por último, permite que os desenvolvedores controlem facilmente a versão e ramifiquem bancos de dados como código.

Principais benefícios do Lakebase:

  • Sincronização automática de dados: Capacidade de sincronizar facilmente dados do Lakehouse (camada analítica) para o Lakebase de forma instantânea, programada ou contínua, sem a necessidade de pipelines externos complexos
  • Integração com a plataforma Databricks: Lakebase integra-se com Unity Catalog, Lakeflow Join, Spark Declarative Pipelines, Databricks Apps e muito mais.
  • Permissões e governança integradas: Gerenciamento consistente de funções e permissões para dados operacionais e analíticos. As permissões nativas do Postgres ainda podem ser mantidas por meio do protocolo Postgres.

Juntas, essas ferramentas permitem que os clientes ingiram dados de vários sistemas diretamente nas tabelas Delta e implementem casos de uso de ETL reverso em escala. A seguir, exploraremos como usar essas tecnologias para implementar uma aplicação quase em tempo actual!

Como construir um aplicativo quase em tempo actual

Como exemplo prático, vamos ajudar a ‘Knowledge Diners’, uma empresa de entrega de alimentos, a capacitar sua equipe de gestão com um aplicativo para monitorar a atividade dos motoristas e solicitar entregas em tempo actual. Atualmente, falta-lhes esta visibilidade, o que limita a sua capacidade de mitigar problemas à medida que surgem durante as entregas.

Por que um aplicativo em tempo actual é valioso?

  • Consciência operacional: A gerência pode ver instantaneamente onde cada motorista está e como estão progredindo suas entregas atuais. Isso significa menos pontos cegos com pedidos atrasados ​​ou quando um motorista precisa de assistência.
  • Mitigação de problemas: Os dados de localização e standing em tempo actual permitem que os despachantes redirecionem os motoristas, ajustem prioridades ou entrem em contato proativamente com os clientes em caso de atrasos, reduzindo entregas com falha ou atrasos.

Vamos ver como construir isso com os aplicativos Zerobus Ingest, Lakebase e Databricks na plataforma de inteligência de dados!

Visão geral da arquitetura de aplicativos

Construindo um aplicativo quase em tempo actual com Zerobus Ingest e Lakebase

Esta arquitetura ponta a ponta segue quatro fases: (1) Um produtor de dados utiliza o Zerobus SDK para escrever eventos diretamente numa tabela Delta no Databricks Unity Catalog. (2) Um pipeline de sincronização contínua envia registros atualizados da tabela Delta para uma instância Lakebase Postgres. (3) Um backend FastAPI se conecta ao Lakebase by way of WebSockets para transmitir atualizações em tempo actual. (4) Um aplicativo front-end desenvolvido em Databricks Apps visualiza os dados ao vivo para os usuários finais.

Começando com nosso produtor de dados, o aplicativo Knowledge Diner no telefone do motorista emitirá dados de telemetria GPS sobre a localização do motorista (coordenadas de latitude e longitude) no caminho para entregar os pedidos. Esses dados serão enviados para um gateway de API, que finalmente os envia para o próximo serviço na arquitetura de ingestão.

Com o Zerobus SDK, podemos escrever rapidamente um cliente para encaminhar eventos do gateway da API para nossa tabela de destino. Com a tabela de destino sendo atualizada quase em tempo actual, podemos então criar um pipeline de sincronização contínua para atualizar nossas tabelas lakebase. Finalmente, aproveitando o Databricks Apps, podemos implantar um backend FastAPI que usa WebSockets para transmitir atualizações em tempo actual do Postgres, juntamente com um aplicativo front-end para visualizar o fluxo de dados ao vivo.

Antes da introdução do Zerobus SDK, a arquitetura de streaming teria incluído vários saltos antes de chegar à tabela de destino. Nosso gateway de API precisaria descarregar os dados para uma área de teste como Kafka, e precisaríamos do Spark Structured Streaming para gravar as transações na tabela de destino. Tudo isso acrescenta uma complexidade desnecessária, principalmente porque o único destino é a casa do lago. A arquitetura acima demonstra como a plataforma de inteligência de dados Databricks simplifica o desenvolvimento de aplicativos corporativos de ponta a ponta — desde a ingestão de dados até a análise em tempo actual e a implementação de aplicativos interativos.

Começando

Pré-requisitos: o que você precisa

Etapa 1: criar uma tabela de destino no catálogo do Databricks Unity

Os dados de eventos produzidos pelos aplicativos clientes ficarão em uma tabela Delta. Use o código abaixo para criar essa tabela de destino no catálogo e esquema desejados.

Etapa 2: autenticar usando OAUTH

Etapa 3: Crie o cliente Zerobus e ingira dados na tabela de destino

O código abaixo envia os dados de eventos de telemetria para Databricks usando a API Zerobus.

Alterar limitação e solução alternativa do Knowledge Feed (CDF)

A partir de hoje, o Zerobus Ingest não oferece suporte a CDF. O CDF permite que o Databricks registre eventos de alteração para novos dados gravados em uma tabela delta. Esses eventos de mudança podem ser inserções, exclusões ou atualizações. Esses eventos de alteração podem então ser usados ​​para atualizar as tabelas sincronizadas no Lakebase. Para sincronizar os dados com o Lakebase e continuar com nosso projeto, gravaremos os dados da tabela de destino em uma nova tabela e habilitaremos o CDF nessa tabela.

Etapa 4: provisionar o Lakebase e sincronizar dados com a instância do banco de dados

Para alimentar o aplicativo, sincronizaremos os dados desta nova tabela habilitada para CDF em uma instância do Lakebase. Sincronizaremos esta tabela continuamente para oferecer suporte ao nosso painel quase em tempo actual.

Crie uma tabela sincronizada em uma instância do Lakebase

Na IU, selecionamos:

  • Modo de sincronização: Contínuo para atualizações de baixa latência
  • Chave Primária: tabela_primary_key

Isso garante que o aplicativo reflita os dados mais recentes com atraso mínimo.

Observação: você também pode criar o pipeline de sincronização programaticamente usando o SDK do Databricks.

Modo em tempo actual by way of gravador foreach

As sincronizações contínuas de Delta para Lakebase têm um atraso de 10 a 15 segundos, portanto, se você precisar de menor latência, considere usar o modo em tempo actual por meio do gravador ForeachWriter para sincronizar dados diretamente de um DataFrame para uma tabela Lakebase. Isso sincronizará os dados em milissegundos.

Consulte o Código Lakebase ForeachWriter no Github.

Etapa 5: crie o aplicativo com FastAPI ou outra estrutura de sua preferência

Captura de tela do aplicativo RideShare360

Com seus dados sincronizados com o Lakebase, agora você pode implantar seu código para construir seu aplicativo. Neste exemplo, o aplicativo busca dados de eventos do Lakebase e os usa para atualizar um aplicativo quase em tempo actual para rastrear a atividade de um motorista durante o trajeto para fazer entregas de comida. Leia o Documentos de introdução aos aplicativos Databricks para saber mais sobre como criar aplicativos no Databricks.

Recursos Adicionais

Confira mais tutoriais, demonstrações e aceleradores de soluções para criar seus próprios aplicativos para suas necessidades específicas.

  • Crie um aplicativo ponta a ponta: Um simulador de navegação em tempo actual rastreia uma frota de veleiros usando Python SDK e a API REST, com aplicativos Databricks e pacotes de ativos Databricks. Leia o weblog.
  • Crie uma solução de gêmeos digitais: Aprenda como maximizar a eficiência operacional, acelerar insights em tempo actual e manutenção preditiva com Databricks Apps e Lakebase. Leia o weblog.

Saiba mais sobre Ingestão Zerobus, Base do lagoe Aplicativos de blocos de dados na documentação técnica. Você também pode dar uma olhada no Livro de receitas de aplicativos do Databricks e Coleção de recursos do livro de receitas.

Conclusão

IoT, clickstream, telemetria e aplicações semelhantes geram bilhões de pontos de dados todos os dias, que são usados ​​para alimentar aplicações críticas em tempo actual em diversos setores. Como tal, simplificar a ingestão destes sistemas é basic. O Zerobus Ingest fornece uma maneira simplificada de enviar dados de eventos diretamente desses sistemas para o lakehouse, garantindo alto desempenho. Ele combina perfeitamente com o Lakebase para simplificar o desenvolvimento de aplicativos corporativos de ponta a ponta.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *