Ir para o conteúdo principal

Introdução à transmissão de dados

Ao longo dos últimos anos, a necessidade de dados tempo-real cresceu exponencialmente. As organizações estão, cada vez mais, desenvolvendo aplicativos e plataformas que utilizam transmissões de dados para fornecer analítica em tempo real e machine learning para impulsionar o crescimento dos negócios. Ao coletar, processar e analisar dados continuamente, os líderes podem obter percepções imediatas, permitir uma tomada de decisão mais rápida e fazer previsões mais precisas.  

As empresas podem aproveitar a transmissão de dados tempo-real para rastrear transações comerciais em sistemas operacionais e possíveis fraudes, além de informar modelos de preços dinâmicos. Enquanto isso, a proliferação da Internet das Coisas (IoT) significa que dispositivos e sensores do dia a dia transmitem enormes quantidades de dados brutos, e o acesso imediato a esses datasets pode ajudar a solucionar possíveis problemas ou fazer recomendações específicas para o local. 

Em resumo, os dados tempo-real têm o potencial de transformar uma organização ao criar novas e inovadoras oportunidades ou fornecer percepções sobre datasets em andamento.

Continue explorando

Big Book of Data Engineering

Acelere sua experiência com este guia essencial para a era da IA.

Leia o artigo

Introdução ao ETL

Saiba mais sobre pipelines de ETL com este guia técnico da O'Reilly.

Baixar

Aprenda engenharia de dados agora

Assista a 4 vídeos e passe em um teste para ganhar um distintivo.

Comece agora

Transmissão vs. processamento em lotes  

Para lidar com seus dados, as organizações tradicionalmente confiam no processamento em lote, que se refere à coleta e processamento de dados em grandes blocos, ou "lotes", em intervalos especificados. Atualmente, as empresas podem aproveitar o processamento em lotes quando precisam de dados oportunos, mas não em tempo real. Isso inclui aplicativos como previsão de vendas, gerenciamento de estoque, ingestão de dados de mainframes e até mesmo processamento de pesquisas com consumidores. 

No entanto, para competir no ambiente de negócios global de hoje, as organizações precisam cada vez mais de acesso aos dados à medida que são coletados. A transmissão de dados ajuda as organizações a tomar decisões oportunas, garantindo que os dados sejam processados com rapidez, precisão e quase em tempo real. Ao processar dados em segundos ou milissegundos, a transmissão é uma solução ideal para casos de uso como comércio de alta frequência, lances em tempo real, processamento de Logs, analítica em tempo real ou detecção de fraudes.

Embora as organizações possam reconhecer a necessidade de dados de transmissão, pode ser difícil fazer a transição de dados em lotes para dados de transmissão devido a:  

  1. Novas APIs e linguagens para aprender. Pode ser difícil habilitar as equipes de dados existentes com as linguagens e ferramentas que já conhecem.
  2. Ferramentas operacionais complexas para construir. As organizações podem achar difícil implantar e manter pipelines de dados de transmissão que funcionem de forma confiável em seu ambiente de produção.
  3. Dados em tempo real e data histórica em sistemas separados. Pode haver modelos de governança incompatíveis que limitam a capacidade de controlar o acesso para os usuários e grupos certos.

A Databricks está ajudando os clientes a superar a tradicional bifurcação de dados em lotes versus dados de transmissão com a Plataforma de Inteligência de Dados. Ao integrar a analítica em tempo real, machine learning (ML) e aplicativos em uma única plataforma, as organizações se beneficiam do processamento simplificado de dados em uma plataforma única que lida com dados em lotes e dados de transmissão.

Com a Databricks Data Intelligence Platform, os usuários podem:

  1. Crie pipelines e aplicações de streaming mais rapidamente. Os clientes podem usar as linguagens e ferramentas que já conhecem com APIs unificadas para lotes e streaming em SQL e Python. Eles podem desbloquear análises, ML e aplicativos em tempo real para toda a organização.
  2. Simplifique as operações com automação de ferramentas. Implante e gerencie facilmente seus pipelines em tempo real e aplicativos em produção. Ferramentas automatizadas simplificam a orquestração de tarefas, tolerância/recuperação de falhas, verificação automática, otimização de desempenho e autoescalabilidade.
  3. Unifique a governança para todos os seus dados tempo-real nas nuvens. O Unity Catalog oferece um modelo de governança consistente para todos os seus dados de streaming e em lote, simplificando a forma como você descobre, acessa e compartilha dados em tempo real.

Processamento Databricks

Transmissão vs. processamento em tempo real 

A transmissão e o processamento em tempo real são conceitos intimamente relacionados e, muitas vezes, são usados de forma intercambiável. No entanto, eles têm distinções sutis, mas importantes. 
 
"Dados em transmissão contínua" refere-se aos fluxos de dados contínuos gerados por dados em movimento. É uma abordagem de pipeline de dados em que os dados são processados em pequenos pedaços ou eventos à medida que são gerados. O "processamento em tempo real", por outro lado, enfatiza o imediatismo da análise e da resposta, com o objetivo de fornecer percepções com o mínimo de atraso após o recebimento dos dados. Em outras palavras, um sistema de transmissão de dados ingere dados tempo-real e os processa assim que chegam. 
 
É importante observar que, mesmo dentro do escopo da “transmissão em tempo real”, há uma distinção adicional entre “tempo real” e “quase em tempo real”, principalmente com relação à latência. Dados tempo-real referem-se a sistemas que analisam e agem sobre os dados com atrasos insignificantes, geralmente em milissegundos após a geração dos dados. Esses sistemas são projetados para cenários em que a ação imediata é fundamental, como negociação automatizada de ações, sistemas de monitoramento médico ou detecção de fraudes em transações financeiras. 
 
O processamento quase em tempo real, por outro lado, envolve um pequeno atraso, geralmente medido em segundos. Essa abordagem é adequada para situações em que não é necessária uma resposta instantânea, mas ainda se prefere atualizações oportunas, como atualizações de feeds de mídia social, acompanhamento de logística e agregação de dados para painéis operacionais. 

Processamento incremental em pipelines de dados 

Embora o processamento de transmissão possa ser a escolha certa para algumas organizações, sua execução pode ser cara e consumir muitos recursos. Uma maneira de obter os benefícios da transmissão de dados sem o processamento contínuo de dados é por meio da incrementalização. Esse método processa somente dados recém-adicionados, modificados ou alterados, em vez de um dataset completo.

Um exemplo de como a incrementalização pode ser executada é por meio de visualizações materializadas na Databricks. Uma visualização materializada é um objeto de banco de dados que armazena os resultados de uma query como tabela física. Ao contrário das visualizações de banco de dados regulares, que são virtuais e derivam seus dados das tabelas subjacentes, as visualizações materializadas contêm dados pré-computados que são atualizados de forma incremental em um agendamento ou sob demanda. Esse pré-cálculo de dados permite tempos de resposta de query mais rápidos e melhor desempenho em determinados cenários.
 
As views materializadas podem ser úteis ao processar conjuntos menores de dados, em vez de datasets inteiros. No geral, a incrementalização de dados dentro de um pipeline pode aumentar a eficiência ao reduzir o esforço computacional, o tempo e o consumo de recursos. Isso é especialmente ideal para pipelines em grande escala, onde as atualizações de processamento podem levar a uma análise e tomada de decisão mais rápidas. 

Considerações e compensações na transmissão  

À medida que as organizações implementam transmissões de dados tempo-real, há alguns fatores importantes a serem considerados na arquitetura de processamento de dados. A forma como você projeta seu sistema pode introduzir algumas vantagens e desvantagens importantes e depende das demandas de carga de trabalho e dos resultados comerciais da sua organização. Alguns recursos a serem considerados incluem:  
 
Latência: refere-se ao tempo necessário para que os dados sejam processados e entregues a partir do momento em que são recebidos. Dados de baixa latência são essenciais para aplicativos em tempo real, como detecção de fraudes ou até mesmo transmissão de vídeo ao vivo, mas sua manutenção pode ser cara. 
 
Optar por uma latência mais alta em seus dados pode ser ideal para fluxos de trabalho que exigem apenas relatórios periódicos ou em que o processamento imediato e a tomada de decisões não são essenciais. Sistemas que armazenam dados de Logs ou geram relatórios de vendas diários ou semanais geralmente utilizam transmissões de dados de maior latência. 
 
Throughput: é uma medida do volume de dados que um sistema pode processar ao longo do tempo, geralmente expresso como eventos por segundo. Alta throughput é crucial para a IoT, pois lida com fluxos de dados maciços de forma eficiente. Mas níveis mais altos de throughput introduzem algum comprometimento na latência. 
 
Custo: Para muitas organizações, o custo é o fator determinante para determinar o nível certo de latência e throughput para seus sistemas. Para algumas cargas de trabalho que exigem processamento de dados em tempo hábil, pode valer a pena o investimento para projetar um sistema de baixa latência e alta throughput. No entanto, se suas necessidades de dados não forem imediatas ou se suas cargas de trabalho exigirem lotes maiores de dados, um sistema de maior latência pode ser a escolha certa. 
 
Nem todas as arquiteturas de transmissão são criadas da mesma forma, e é importante encontrar o equilíbrio certo para atender às demandas de sua carga de trabalho e de seu orçamento. Pense nisso como acessar seus dados no momento certo — quando você precisar deles — em vez de em tempo real. 

Arquitetura do Spark Streaming  

Apache SparkTM Structured Streaming é a tecnologia central que desbloqueia a transmissão de dados na Databricks Data Intelligence Platform, fornecendo uma API unificada para processamento em lotes e streaming. Spark é um projeto de código aberto que divide fluxos de dados contínuos em pequenos lotes gerenciáveis para processamento. O Structured Streaming permite que você execute as mesmas operações realizadas no modo batch usando as APIs estruturadas do Spark e as execute em modo de streaming. Isso pode reduzir a latência e permitir o processamento incremental, com latências de até 250 ms.
 
Em Structured Streaming, os dados são tratados como uma tabela infinita e processados de forma incremental. O Spark coleta dados recebidos em um curto intervalo de tempo, forma um lote e, em seguida, processa-o como trabalhos em lote tradicionais. Esta abordagem combina a simplicidade do processamento em lotes com capacidades quase em tempo real e apresenta pontos de verificação que permitem tolerância a falhas e recuperação de falhas. 
 
A abordagem do Spark para o pipeline de dados é projetada para usar os recursos de forma eficiente. O pipeline começa com a ingestão de dados brutos, que são então filtrados, agregados ou mapeados em seu caminho para o coletor de dados. No entanto, cada estágio processa os dados de forma incremental à medida que eles se movem pelo pipeline, procurando por quaisquer anomalias ou erros antes de serem armazenados em um banco de dados.  
 
Para cargas de trabalho que exigem alta capacidade de resposta, o Spark apresenta um modo de Processamento Contínuo que oferece recursos em tempo real processando cada registro individualmente conforme ele chega. Você pode saber mais sobre como gerenciar dados de transmissão na Databricks aqui.

ETL de transmissão

O ETL de transmissão (extrair, transformar, carregar) ajuda as organizações a processar e analisar dados em tempo real ou quase em tempo real para atender às demandas de aplicativos e fluxos de trabalho orientados por dados. O ETL geralmente é executado em lotes; no entanto, o ETL de transmissão ingere os dados à medida que são gerados para garantir que os dados estejam prontos para análise quase imediatamente.  

O ETL de transmissão minimiza a latência ao processar os dados de forma incremental, permitindo atualizações contínuas em vez de esperar que um dataset seja enviado em lotes. Ele também reduz os riscos associados a dados desatualizados ou irrelevantes, garantindo que as decisões sejam baseadas nas informações mais recentes disponíveis. 

Inerente a qualquer ferramenta de ETL deve ser a capacidade de escala à medida que uma empresa cresce. A Databricks lançou o DLT como a primeira estrutura de ETL que utiliza uma abordagem declarativa simples para construir pipelines de dados confiáveis. Suas equipes podem usar linguagens e ferramentas que já conhecem, como SQL e Python, para construir e executar pipelines de dados em lotes e streaming em um só lugar, com configurações de refresh controláveis e automatizadas. Isso não apenas economiza tempo, mas também reduz a complexidade operacional. Não importa onde você planeja enviar seus dados, construir pipelines de dados de streaming na Databricks Data Intelligence Platform garante que você não perca tempo entre dados brutos e limpos.

Transmissão analítica 

Como vimos, a transmissão de dados oferece processamento contínuo de dados com baixa latência e a capacidade de transmitir analítica em tempo real conforme os eventos ocorrem. O acesso a dados brutos em tempo real (ou quase em tempo real) pode ser essencial para as operações comerciais, pois dá aos tomadores de decisão acesso aos dados mais recentes e relevantes. Algumas das vantagens da transmissão analítica incluem: 
 
Visualização de dados. Ficar de olho nas informações mais importantes da empresa pode ajudar as organizações a gerenciar diariamente os indicadores-chave de desempenho (KPIs). Os dados de streaming podem ser monitorados em tempo real, permitindo que as empresas saibam o que está acontecendo a cada momento. 
 
Insights de negócios. Painéis em tempo real podem ajudar a alertá-lo quando ocorre um evento comercial incomum. Por exemplo, eles podem ser usados para automatizar a detecção e a resposta a uma ameaça comercial ou sinalizar uma área onde um comportamento anormal deve ser investigado. 
 
Aumento da competitividade. Empresas que buscam obter uma vantagem competitiva podem usar dados de transmissão para discernir tendências e definir benchmarks rapidamente. Isso pode dar a eles uma vantagem sobre os concorrentes que dependem da análise de lotes. 
 
Reduzindo perdas evitáveis. Com a ajuda da transmissão analítica, as organizações podem prevenir ou reduzir os danos de incidentes como violações de segurança, problemas de fabricação ou rotatividade de clientes. 
 
Analisando operações comerciais de rotina. A transmissão analítica ajuda as organizações a ingerir e obter percepções instantâneas e acionáveis de dados em tempo real. Quando os líderes têm acesso a dados relevantes, oportunos e confiáveis, eles podem ter certeza de que estão tomando decisões acertadas. 

Transmissão para AI/ML

À medida que os modelos de inteligência artificial (AI) e ML se desenvolvem e amadurecem, o processamento em lotes tradicional pode ter dificuldades para acompanhar o tamanho e a diversidade dos dados que esses aplicativos exigem. Os atrasos na transmissão de dados podem levar a respostas imprecisas e a um aumento na ineficiência dos aplicativos. 
 
Os dados de transmissão fornecem um fluxo contínuo de informação em tempo real com base nos dados mais atuais disponíveis, garantindo que os modelos de AI/ML se adaptem e façam previsões à medida que os eventos acontecem. Há duas maneiras pelas quais os dados de transmissão ajudam a preparar modelos de AI:

Treinamento de AI: Nos estágios iniciais do desenvolvimento de AI/ML, a transmissão de dados é fundamental para treinar modelos, fornecendo grandes datasets de dados estruturados ou não estruturados. Os modelos são treinados para reconhecer padrões ou correlações e, em seguida, fazer previsões iniciais com base em parâmetros aleatórios ou predefinidos. Esse processo é repetido e refinado com grandes quantidades de dados para melhorar a precisão e a confiabilidade do modelo ao longo do tempo. Ao aprender com padrões e tendências — bem como quaisquer desvios nesses padrões — esses modelos desenvolvem resultados e previsões mais precisos.

Inferência de IA: Depois que um sistema de AI/ML tiver sido implantado em um ambiente de produção, ele usará os parâmetros aprendidos em seu treinamento para fazer previsões (inferências) com base nos dados de entrada. Os dados de transmissão fornecem dados novos e invisíveis, enquanto os modelos geram percepções e previsões quase instantâneas.

Organizações de todos os setores aproveitam as percepções da AI criados em datasets de transmissão. Os varejistas de saúde e bem-estar aproveitam os relatórios em tempo real sobre os dados do cliente para ajudar os farmacêuticos a fornecer recomendações e conselhos personalizados. As empresas de telecomunicações podem usar o machine learning em tempo real para detectar atividades fraudulentas, como desbloqueios ilegais de dispositivos e identificar roubos. Enquanto isso, os varejistas podem aproveitar os dados de transmissão para automatizar os preços em tempo real com base no estoque e em fatores de mercado.
 
Embora a transmissão de dados seja crucial para esses modelos, é importante observar que a integração de AI/ML com a transmissão de dados apresenta um conjunto exclusivo de desafios. Alguns desses desafios incluem: 
 
Volume de dados: As organizações têm uma enxurrada de dados na ponta dos dedos, como informações de clientes, dados de transações, dados de uso de dispositivos e muito mais. Gerenciar todos esses dados e integrá-los a um modelo de AI/ML requer uma arquitetura de dados robusta e recursos de processamento escaláveis e resilientes. 
 
Qualidade dos dados: Embora a quantidade de dados esteja crescendo exponencialmente, nem todos os dados são precisos e de alta qualidade. Os dados geralmente são provenientes de vários sistemas, em formatos diferentes e podem ser incompletos ou inconsistentes. Para que os modelos de AI/ML funcionem bem, os dados devem ser continuamente testados e validados para garantir a confiabilidade. 
 
Pipelines de dados: A criação de pipelines de dados robustos e eficientes para lidar com a ingestão, transformações e entrega de dados tempo-real para IA/ML pode ser complexa. É crucial que sua organização invista em uma infraestrutura escalonável para lidar com grandes modelos de ingestão de dados e processamento de dados.

A Databricks está resolvendo esses problemas por meio do Mosaic AI, que fornece aos clientes ferramentas unificadas para criar, implantar, avaliar e governar soluções de IA e ML. Os usuários recebem resultados precisos personalizados com dados corporativos e podem treinar e fornecer seus próprios modelos personalizados de grande porte (LLMs) a um custo 10 vezes menor. 

Transmissão na Databricks

Implantar a transmissão de dados em sua organização pode exigir muito esforço. A Databricks facilita isso simplificando a transmissão de dados. A Databricks Data Intelligence Platform oferece análises em tempo real, machine learning e aplicações — tudo em uma única plataforma. Ao criar aplicativos de transmissão na Databricks, você pode:

  1. Permita que todas as suas equipes de dados criem facilmente cargas de trabalho de transmissão com as linguagens e ferramentas que já conhecem e as APIs que já usam.
  2. Simplifique o desenvolvimento e as operações aproveitando os recursos prontos para uso que automatizam muitos dos aspectos de produção associados à criação e manutenção de pipelines de dados em tempo real.
  3. Elimine os silos de dados e centralize seus modelos de segurança e governança com uma única plataforma para dados de transmissão e lotes. 

Além disso, com a ajuda do DLT, os clientes recebem ferramentas automatizadas para simplificar a ingestão de dados e o ETL, preparando datasets para implantação em aplicativos operacionais, de ML e de analítica em tempo real. 
 
O Spark Structured Streaming está no centro dos recursos em tempo real da Databricks. Amplamente adotado por centenas de milhares de indivíduos e organizações, ele fornece uma API única e unificada para processamento em batch e stream, facilitando para engenheiros e desenvolvedores de dados a criação de aplicativos em tempo real sem alterar o código ou aprender novas habilidades. 

Em todo o mundo, as organizações têm aproveitado a transmissão de dados na Databricks Data Intelligence Platform para otimizar seus sistemas operacionais, gerenciar redes de pagamento digital, explorar inovações em energia renovável e ajudar a proteger os consumidores contra fraudes.
 
A Databricks oferece todos esses recursos fortemente integrados para dar suporte aos seus casos de uso em tempo real em uma única plataforma.

    Voltar ao glossário