Ir para o conteúdo principal
Plataforma

Anunciando a Disponibilidade Geral do Modo em Tempo Real para Spark Declarative Pipelines no Databricks

Leve latência inferior a um segundo para suas cargas de trabalho operacionais mais críticas com fluxos e coletores declarativos

por Jerry Peng, Abhay Bothra, Sudhanva Huruli, Navneeth Nair, Anant Pingle e Murali Talluri

  • Anunciamos a Disponibilidade Geral do Modo de Tempo Real (RTM) em Spark Declarative Pipelines (SDP), entregando latências de processamento de ponta a ponta na faixa de milissegundos para cargas de trabalho de streaming operacional.
  • O Modo de Tempo Real elimina a necessidade de motores especializados separados, como o Apache Flink, unificando lote, ETL e streaming de baixa latência em um único framework.
  • O Modo de Tempo Real permite computação em tempo real e gravações instantâneas em repositórios operacionais por meio de coletores ForEach, impulsionando casos de uso críticos para o tempo, como detecção de fraudes e personalização ao vivo.

Nós lançamos o Real-Time Mode (RTM) no ano passado, o que permitiu aos clientes criar casos de uso operacionais e de baixa latência. Isso mudou o jogo porque permitiu que os clientes processassem dados de streaming em milissegundos, até 100 vezes mais rápido do que a arquitetura tradicional de micro-batch. Além disso, eles não precisavam mais manter motores separados e especializados como o Flink junto com o Spark, eliminando bases de código duplicadas, modelos de governança fragmentados e custos operacionais.

Hoje, estamos anunciando que o RTM em Spark Declarative Pipelines (SDP) já está Disponível Geralmente. O SDP se tornou a maneira padrão de criar pipelines de streaming e ETL no Databricks, lidando automaticamente com a resolução de dependências, processamento incremental, orquestração, recuperação de falhas e garantia de qualidade de dados. Com o RTM, os clientes podem criar pipelines operacionais de baixa latência mantendo todos esses benefícios do SDP. Seja para pontuação de fraude, alertas em tempo real ou envio de novos recursos para stores operacionais, agora você pode usar o SDP em todos esses casos de uso.

O que é o Real-Time Mode (RTM)?

O RTM é uma evolução do motor Spark Structured Streaming que alcança latências de ponta a ponta na faixa de milissegundos. Ele faz isso transmitindo dados continuamente, executando todos os estágios de consulta simultaneamente e passando dados entre os estágios assim que são produzidos. Para uma análise aprofundada da arquitetura completa, leia o blog, “Quebrando a barreira do micro-batch: A arquitetura do Apache Spark Real-Time Mode•”.

O RTM pode dar suporte a qualquer carga de trabalho que se beneficie de transformar dados em decisões em milissegundos. Alguns exemplos de casos de uso incluem detecção de fraudes, personalização ao vivo, sistemas de recomendação em tempo real e cálculo de recursos em tempo real. Comparamos o RTM com o Apache Flink em cargas de trabalho reais de clientes realizando cálculo de recursos, e o RTM é até 92% mais rápido do que motores especializados como o Flink. Abaixo estão os benchmarks. Para obter mais informações sobre os conjuntos de dados e consultas mencionados, consulte este repositório do GitHub.

Apache Spark Real-Time Mode vs. Apache Flink

Por que usar o RTM no Spark Declarative Pipelines

Os clientes estão usando cada vez mais o SDP como padrão para suas cargas de trabalho de ETL. Com o RTM, o SDP agora oferece suporte a todas as cargas de trabalho de streaming, incluindo streaming operacional de baixa latência, permitindo que os clientes usem uma única estrutura em todos os pipelines. Uma única estrutura significa uma pilha de observabilidade, um modelo de faturamento e nenhuma fragmentação entre diferentes APIs.

O SDP serverless vai além. Não há computação para escolher nem cluster para dimensionar. Você obtém latência inferior a um segundo, sem nenhum ajuste complexo de infraestrutura, pagando apenas pelos núcleos que sua consulta usa. Os fluxos de RTM também recebem recursos do SDP, como atualizações sem versão e manutenção com baixo tempo de inatividade, o que reduz tanto o trabalho operacional quanto a interrupção das atualizações.

Um caso de uso em que o RTM no SDP tem impacto imediato é o cálculo de recursos em tempo real. Os modelos de ML para detecção de fraudes ou personalização dependem de sinais recentes, como o valor total da transação de um usuário nos últimos 10 minutos, para fazer previsões precisas. Calcular essas agregações de janela rolante e enviá-las para uma store online em milissegundos é onde o RTM no SDP preenche essa lacuna. O Databricks Feature Store usa exatamente essa arquitetura para entregar uma latência p99 ponta a ponta de 200 ms do Kafka para o online feature store.

Começando com o RTM no SDP

Etapa 1: Configurar o pipeline

O Real-Time Mode exige que o modo do pipeline seja continuous e que spark.databricks.streaming.realTimeMode.enabled esteja definido como true para assumir o controle.

Etapa 2: Definir um fluxo de atualização em tempo real

O modo de tempo real exige um fluxo de atualização. Use dp.create_sink() para definir o destino de saêda, depois use o decorador @dp.update_flow com pipelines.trigger definido como "RealTime" e target apontando para o coletor.

Para ver as origens e destinos suportados, consulte a documentação.

Escrevendo recursos para qualquer coletor personalizado

Casos de uso como detecção de fraudes ou personalização em tempo real exigem não apenas que os recursos sejam calculados em tempo real, mas também que eles cheguem a um armazenamento consultável de baixa latência. Um modelo de fraude precisa da última transação de um cliente antes de ser compensada, e um motor de personalização precisa ler o que um usuário acabou de navegar.

Hoje, você pode gravar em qualquer coletor personalizado como Lakebase, Redis ou qualquer outro OLTP store a partir do SDP usando um ForEach sink. Defina o gravador, registre-o como foreach_sink e conecte-o a um update_flow.

Os recursos chegam ao seu store operacional em milissegundos após serem produzidos, sem nenhuma sincronização off-line para online intermediária. Os aplicativos e modelos podem consultá-los com latência ultrabaixa. 
O que vem a seguir para o RTM no serverless?

  • Executando pipelines de RTM a um custo menor: Agrupe vários fluxos de RTM em um único pipeline em vez de cada consulta configurar seus próprios recursos. O sistema também ajusta automaticamente as partições de origem e embaralhamento com base na carga de trabalho, para que os usuários evitem o dimensionamento manual.
  • Suporte a coletores expandido: Native Lakebase sink para SDP, com processamento em lote integrado, novas tentativas automáticas e autenticação gerenciada pelo UC.

Conclusão

O RTM estende o Spark Declarative Pipelines para uma nova classe de cargas de trabalho, aplicativos operacionais sensíveis à latência que exigem resposta imediata a dados de streaming. Ao trazer latência inferior a um segundo para as APIs do SDP que sua equipe já usa, ele elimina a necessidade de operar uma estrutura ou motor separado para seus pipelines mais críticos em termos de tempo. Esteja você criando pipelines de detecção de fraudes, motores de personalização ou sistemas de cálculo de recursos de ML, o modo de tempo real oferece a latência que seu aplicativo exige com a simplicidade do SDP.

O Real-Time Mode no Spark Declarative Pipelines já está Disponível Geralmente.

Recursos Técnicos

Confira os seguintes recursos para começar a usar o RTM no SDP:

FAQ

O que é o Real-Time Mode (RTM) no Spark Declarative Pipelines?

O real-time mode (RTM) permite que o Spark Declarative Pipelines (SDP) processe dados de streaming com latência de ponta a ponta na faixa de milissegundos. Ele transmite dados continuamente, executa todos os estágios de consulta ao mesmo tempo e passa dados entre os estágios assim que são produzidos. Os pipelines em tempo real se beneficiam da orquestração e da recuperação automática de falhas do SDP.

O Real-Time Mode está disponível no Spark Declarative Pipelines?

Sim. O modo em tempo real no Spark Declarative Pipelines já está geralmente disponível. Ele traz o modo em tempo real que já está disponível no Spark Structured Streaming para os pipelines do SDP.

Como faço para ativar o modo em tempo real em um pipeline?

Configure o pipeline para o modo continuous e defina spark.databricks.streaming.realTimeMode.enabled como true. Em seguida, defina um fluxo de atualização com pipelines.trigger definido como "RealTime" e um destino que aponte para um coletor.

Um pipeline em tempo real pode gravar no Lakebase ou em outro armazenamento OLTP?

Sim. Defina um coletor ForEach com um gravador que implemente open, process e close, e depois aponte um fluxo em tempo real para ele. Isso funciona para Lakebase, Redis ou qualquer outro armazenamento OLTP.

Para quais casos de uso o Modo em Tempo Real no Spark Declarative Pipelines foi criado?

O Modo em Tempo Real foi criado para cargas de trabalho operacionais que transformam dados de streaming em decisões em milissegundos. Os exemplos incluem detecção de fraudes, personalização ao vivo, recomendações em tempo real e computação de features em tempo real. O repositório de features do Databricks usa essa arquitetura para atingir uma latência p99 de 200 ms do Apache Kafka para o repositório de features online.

(Esta publicação no blog foi traduzida utilizando ferramentas baseadas em inteligência artificial) Publicação original

Tags relacionadas:

Streaming de dados, Data Engineering e Anúncios

Receba os posts mais recentes na sua caixa de entrada

Assine nosso blog e receba os posts mais recentes diretamente na sua caixa de entrada.