Compartilhar via


Estilo de arquitetura de Big Data

Uma arquitetura de Big Data foi projetada para lidar com a ingestão, o processamento e a análise de dados muito grandes ou complexos para sistemas de banco de dados tradicionais.

Diagrama lógico de um estilo de arquitetura de Big Data.

As soluções de Big Data normalmente incluem um ou mais dos seguintes tipos de cargas de trabalho:

  • Processamento em lote de fontes de big data em repouso
  • Processamento em tempo real de Big Data em movimento
  • Exploração interativa de Big Data
  • Análise preditiva e aprendizado de máquina

A maioria das arquiteturas de Big Data inclui alguns ou todos os seguintes componentes:

  • Fontes de dados: As soluções de Big Data podem começar com uma ou mais fontes de dados.

    • Armazenamentos de dados, como bancos de dados relacionais

    • Arquivos que os aplicativos produzem, como arquivos de log do servidor Web e respostas de API

    • Fontes de dados em tempo real, como dispositivos de streaming, webhooks ou aplicativos upstream do banco de dados relacional

  • Armazenamento de dados: Os dados para operações de processamento em lote normalmente são armazenados em um repositório de arquivos distribuído que pode conter grandes volumes de arquivos grandes em vários formatos. Esse tipo de repositório geralmente é conhecido como um data lake. As opções para implementar esse armazenamento incluem o Azure Data Lake Storage ou o Microsoft Fabric OneLake.

  • Processamento em lote: Quando os dados precisam ser preparados para análise e disponibilizados para relatórios que refletem eventos ou tendências anteriores, o processamento em lote é útil. Normalmente, esses trabalhos envolvem ler arquivos de origem, processá-los e gravar a saída em novos arquivos. As opções incluem o uso de fluxos de dados ou pipelines de dados no Fabric.

  • Processamento em tempo real: Se a solução incluir fontes em tempo real, a arquitetura deverá incluir uma maneira de capturar e armazenar mensagens em tempo real para processamento de fluxo. Os dados podem permanecer em movimento desde o momento em que são gerados por meio de sua limpeza, transformação e eventual uso em ações operacionais ou analíticas. Muitas soluções precisam dar suporte ao processamento de expansão, à entrega confiável e a outra semântica de enfileiramento de mensagens. As opções incluem fluxos de eventos do Fabric Real-Time Intelligence, Hubs de Eventos do Azure, Hub IoT do Azure e Apache Kafka.

  • Armazenamento de dados analíticos: Muitas soluções de Big Data preparam dados para análise e, em seguida, servem os dados processados em um formato estruturado que pode ser consultado usando ferramentas analíticas. Dependendo do seu cenário, o armazenamento de dados analíticos usado para atender a essas consultas pode ser uma casa de eventos no Microsoft Fabric para processar dados em movimento e o fluxo é processado em versão de pré-lançamento. Ou pode ser um data warehouse dimensional, como visto na maioria das soluções tradicionais de BI (business intelligence) ou uma lakehouse (Bronze, Silver e Gold). O Microsoft Fabric fornece várias opções, como casas de eventos, armazéns e lakehouses. Cada opção pode ser consultada usando SQL ou Spark, dependendo do caso de uso. Use o guia de decisão do repositório de dados do Fabric para ajudar a orientar sua decisão.

  • Análise e relatório: Uma das metas das soluções de dados deve ser fornecer insights sobre os dados por meio de análise e relatórios. Para capacitar os usuários a analisar os dados, a arquitetura pode incluir uma camada de modelagem de dados, como um cubo OLAP (processamento analítico online multidimensional) ou um modelo de dados tabular no Azure Analysis Services. Ele também pode dar suporte ao BI de autoatendimento usando as tecnologias de modelagem e visualização no Power BI ou excel. A análise e os relatórios também podem assumir a forma de exploração interativa de dados por cientistas de dados ou analistas de dados. Para esses cenários, o Microsoft Fabric fornece ferramentas como notebooks, em que os usuários podem escolher SQL ou uma linguagem de programação de sua escolha.

  • Ações e alertas: Outro objetivo de uma solução de Big Data deve ser fornecer insights operacionais sobre o estado atual do processo de negócios. A arquitetura deve incluir uma camada do sistema de ações, que usa fluxos de dados em tempo real à medida que estão sendo processados e detecta exceções e anomalias que ocorrem dentro da organização. Em vez de um usuário verificar um relatório, você pode usar esses sistemas de alerta para notificar proativamente os usuários e a liderança de atividades anormais. os alertas do ativador do Real-Time Intelligence fornecem esse tipo de monitoramento proativo.

  • Orquestração: As soluções de Big Data podem consistir em operações de processamento de dados repetidas encapsuladas em fluxos de trabalho. Esses fluxos de trabalho transformam dados de origem, movem dados entre várias fontes e coletores, carregam os dados processados em um armazenamento de dados analíticos ou empurram os resultados diretamente para um relatório ou painel. Para automatizar esses fluxos de trabalho, você pode usar uma tecnologia de orquestração, como pipelines do Azure Data Factory ou do Microsoft Fabric.

A Microsoft fornece muitos serviços para a arquitetura de Big Data que são agrupados aproximadamente nas seguintes categorias:

  • Soluções saaS (software como serviço), como o Microsoft Fabric

  • Serviços gerenciados como Data Lake Storage, Azure Stream Analytics, Hubs de Eventos, Hub IoT, Azure Data Factory, Banco de Dados SQL do Azure e Azure Cosmos DB

Quando usar essa arquitetura

Considere esse estilo de arquitetura quando precisar executar as seguintes ações:

  • Atue sobre os dados em tempo real à medida que os dados estão sendo gerados.
  • Armazene e processe dados em volumes muito grandes para um banco de dados tradicional.
  • Transforme dados não estruturados para análise e relatórios.
  • Use o Azure Machine Learning ou os serviços de IA do Azure.

Benefícios

  • Opções de tecnologia: O Microsoft Fabric fornece muitos desses serviços por meio de uma interface SaaS e conecta os vários componentes com antecedência. Essa abordagem simplifica o processo de criação de soluções de dados de ponta a ponta. Você também pode misturar e corresponder aos serviços gerenciados do Azure para aproveitar as habilidades existentes ou os investimentos em tecnologia.

  • Desempenho por meio do paralelismo: As soluções de Big Data aproveitam o paralelismo, que permite soluções de alto desempenho que são dimensionadas para grandes volumes de dados.

  • Escala elástica: Todos os componentes na arquitetura de Big Data dão suporte ao provisionamento de expansão. Como resultado, você pode ajustar sua solução para cargas de trabalho pequenas ou grandes e pagar apenas pelos recursos usados.

  • Interoperabilidade com soluções existentes: Os componentes da arquitetura de Big Data também são usados para processamento de IoT (Internet das Coisas) e soluções de BI empresarial. Essa versatilidade permite que você crie uma solução integrada entre cargas de trabalho de dados.

Desafios

  • Conjunto de habilidades: Algumas tecnologias de Big Data são altamente especializadas e dependem de estruturas e linguagens diferentes daquelas usadas em arquiteturas gerais de aplicativos. Como alternativa, estão surgindo APIs mais recentes que se baseiam em idiomas mais estabelecidos.

  • Segurança: As soluções de Big Data geralmente dependem do armazenamento de todos os dados estáticos em um data lake centralizado. Proteger o acesso a esses dados pode ser desafiador, especialmente quando vários aplicativos e plataformas devem ingerir e consumir os dados.

Práticas recomendadas

  • Use paralelismo. A maioria das tecnologias de processamento de Big Data distribui a carga de trabalho em várias unidades de processamento. Essa distribuição requer que arquivos de dados estáticos sejam criados e armazenados em um formato splittable. Sistemas de arquivos distribuídos, como o HDFS (Sistema de Arquivos Distribuído hadoop), podem otimizar o desempenho de leitura e gravação. Vários nós de cluster em paralelo executam o processamento real, o que reduz os tempos gerais de trabalho. Recomendamos que você use um formato de dados splittable, como Parquet.

  • Dados de partição. O processamento em lote geralmente ocorre em um agendamento recorrente, como semanal ou mensal. Arquivos de dados de partição e estruturas de dados, como tabelas, com base em períodos temporais que se alinham com o agendamento de processamento. Essa estratégia simplifica a ingestão de dados e o agendamento de trabalho, facilita a solução de problemas e pode melhorar significativamente o desempenho da consulta.

  • Aplicar semântica de esquema em leitura. O uso de um data lake permite combinar armazenamento para arquivos em vários formatos, sejam estruturados, semiestruturados ou não estruturados. Aplique semântica de esquema em leitura , que projeta um esquema em dados durante o processamento, em vez de no momento do armazenamento. Essa abordagem adiciona flexibilidade à solução e ajuda a evitar gargalos durante a ingestão de dados que a validação de dados e a causa de verificação de tipo.

  • Processar dados em lote na chegada. As soluções de BI tradicionais geralmente usam um processo de ETL (extração, transformação e carregamento) para mover dados para um data warehouse. No entanto, com volumes maiores de dados e uma maior variedade de formatos, as soluções de Big Data normalmente adotam variações de ETL, como extrair, carregar e transformar (ELT).

  • Processar dados de streaming em versão de pré-lançamento. Para soluções de streaming, transforme o conteúdo enquanto os dados estão sendo transmitidos. Como você está lidando com pacotes muito menores pela rede, é muito mais fácil transformar esses conjuntos de linhas menores durante a geração. Aterrar o fluxo transformado em um mecanismo otimizado para dados baseados em eventos, como uma casa de eventos do Real-Time Intelligence, que disponibiliza os dados imediatamente para a ação.

  • Balancear os custos de uso e tempo. Para trabalhos de processamento em lote, é importante considerar o custo por unidade dos nós de computação e o custo por minuto de usar esses nós para concluir o trabalho. Por exemplo, um trabalho em lote pode levar oito horas com quatro nós de cluster. No entanto, pode ocorrer que o trabalho usa todos os quatro nós somente durante as duas primeiras horas e, depois disso, apenas dois nós são necessários. Nesse caso, executar todo o trabalho em dois nós aumenta o tempo total do trabalho, mas não o dobra, portanto, o custo total é menor. Em alguns cenários de negócios, um tempo de processamento mais longo pode ser preferível ao custo mais alto do uso de recursos de cluster subutilizados.

  • Recursos separados. Quando possível, separe os recursos com base nas cargas de trabalho para evitar cenários como uma carga de trabalho usando todos os recursos enquanto o outro estiver aguardando.

  • Orquestrar a ingestão de dados. Em alguns casos, os aplicativos empresariais existentes podem gravar arquivos de dados para processamento em lote diretamente em contêineres de blob de armazenamento do Azure, em que serviços downstream como o Microsoft Fabric podem consumi-los. No entanto, geralmente, você precisa orquestrar a ingestão de dados de fontes de dados locais ou externas no data lake. Use um fluxo de trabalho de orquestração ou pipeline, como aqueles com suporte do Azure Data Factory ou do Microsoft Fabric, para alcançar a movimentação de dados previsível e gerenciada centralmente.

  • Limpe dados confidenciais antecipadamente. O fluxo de trabalho de ingestão de dados deve esfregar dados confidenciais no início do processo para evitar armazená-los no data lake.

Arquitetura de IoT

O IoT é um subconjunto especializado de soluções de Big Data. O diagrama a seguir mostra uma possível arquitetura lógica para IoT. O diagrama enfatiza os componentes de streaming de eventos da arquitetura.

Diagrama de uma arquitetura de IoT.

O gateway de nuvem ingere eventos de dispositivo no limite da nuvem. Ele usa um sistema de mensagens confiável e de baixa latência para garantir a transmissão eficiente de dados.

Os dispositivos podem enviar eventos diretamente para o gateway de nuvem ou por meio de um gateway de campo. Um gateway de campo é um dispositivo ou software especializado, geralmente colocado com os dispositivos, que recebe eventos e os encaminha para o gateway de nuvem. O gateway de campo também pode pré-processar eventos brutos de dispositivo executando funções como filtragem, agregação ou transformação de protocolo.

Após a ingestão, os eventos passam por um ou mais processadores de fluxo que podem rotear os dados ou executar análises e outros processamentos.

Considere os seguintes tipos comuns de processamento:

  • Os dados são carregados em um armazenamento de dados baseado em eventos, como uma casa de eventos no Real-Time Intelligence, para contextualizar o dispositivo IoT com metadados, como o local de construção e as informações do dispositivo.

  • Analisando o fluxo de eventos em tempo real para detectar anomalias, reconhecer padrões em janelas de tempo sem interrupção ou disparar alertas quando condições específicas ocorrem no fluxo.

  • Tratamento de tipos especiais de mensagens que não são de telemetria de dispositivos, como notificações e alarmes.

  • Pontuando eventos usando modelos de machine learning para detectar anomalias, prever falhas ou classificar o comportamento do dispositivo.

As caixas cinzas mostram componentes de um sistema IoT que não estão diretamente relacionados ao fluxo de eventos. Eles estão incluídos aqui para integridade.

  • O registro de dispositivo é um banco de dados de dispositivos provisionados. Ele inclui IDs de dispositivo e normalmente contém metadados, como localização.

  • A API de provisionamento é uma interface externa comum para provisionar e registrar novos dispositivos.

  • Algumas soluções de IoT permitem que mensagens de comando e controle sejam enviadas para dispositivos.