Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Uma arquitetura de big data é projetada para lidar com a ingestão, processamento e análise de dados que são muito grandes ou complexos para sistemas de banco de dados tradicionais.
As soluções de Big Data normalmente incluem um ou mais dos seguintes tipos de cargas de trabalho:
- Processamento em lote de grandes volumes de dados em descanso
- Processamento em tempo real de big data em movimento
- Exploração interativa de big data
- Análise preditiva e aprendizagem automática
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 são normalmente armazenados em um armazenamento de arquivos distribuído que pode conter grandes volumes de arquivos grandes em vários formatos. Este tipo de armazenamento é muitas vezes conhecido como um data lake. As opções para implementar esse armazenamento incluem o Armazenamento do Azure Data Lake 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 passadas, o processamento em lote é útil. Normalmente, esses trabalhos envolvem a leitura de arquivos de origem, o processamento deles e a gravação da saída em novos arquivos. As opções incluem o uso de fluxos de dados ou pipelines de dados na malha.
Processamento em tempo real: Se a solução incluir fontes em tempo real, a arquitetura deve incluir uma maneira de capturar e armazenar mensagens em tempo real para processamento de fluxo. Os dados podem permanecer em movimento a partir do momento em que são gerados através da sua limpeza, transformação e eventual utilização em ações operacionais ou analíticas. Muitas soluções precisam oferecer suporte ao processamento em expansão, entrega confiável e outras semânticas 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 os 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 voo. Ou pode ser um armazém de dados dimensional, como visto na maioria das soluções tradicionais de business intelligence (BI) ou um lakehouse (Bronze, Prata e Ouro). O Microsoft Fabric oferece 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 armazenamento de dados do Fabric para ajudar a orientar sua decisão.
Análise e elaboração de relatórios: Um dos objetivos das soluções de dados deve ser fornecer insights sobre os dados por meio de análises e relatórios. Para permitir que os usuários analisem 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 oferecer suporte a BI de autoatendimento usando as tecnologias de modelagem e visualização no Power BI ou Excel. A análise e a geração de 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 blocos de anotações, onde 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 de sistema de ação, que usa fluxos de dados em tempo real enquanto estão sendo processados e deteta 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 sobre atividades anômalas. Real-Time alertas ativadores de inteligência fornecem esse tipo de monitoramento proativo.
Orquestração: As soluções de Big Data podem consistir em operações repetidas de processamento de dados 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 enviam 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 arquitetura de big data que são agrupados aproximadamente nas seguintes categorias:
Soluções de software como serviço (SaaS), 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 utilizar esta arquitetura
Considere esse estilo de arquitetura quando precisar executar as seguintes ações:
- Aja sobre os dados em tempo real à medida que os dados são gerados.
- Armazene e processe dados em volumes muito grandes para um banco de dados tradicional.
- Transforme dados não estruturados para análise e emissão de relatórios.
- Use o Azure Machine Learning ou os serviços de IA do Azure.
Benefícios
Opções tecnológicas: 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. Também pode combinar e combinar serviços geridos do Azure para tirar partido das competências existentes ou dos investimentos tecnológicos.
Desempenho através do paralelismo: As soluções de Big Data aproveitam o paralelismo, que permite soluções de alto desempenho que podem ser dimensionadas para grandes volumes de dados.
Escala elástica: Todos os componentes da arquitetura de big data oferecem suporte ao provisionamento em 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 Internet das Coisas (IoT) e soluções de BI empresarial. Essa versatilidade permite criar uma solução integrada entre cargas de trabalho de dados.
Desafios
Conjunto de competências: Algumas tecnologias de big data são altamente especializadas e dependem de estruturas e linguagens diferentes daquelas usadas em arquiteturas de aplicativos em geral. Como alternativa, estão surgindo APIs mais recentes que se baseiam em linguagens mais estabelecidas.
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 um desafio, especialmente quando vários aplicativos e plataformas precisam ingerir e consumir os dados.
Melhores práticas
Utilize paralelismo. A maioria das tecnologias de processamento de big data distribui a carga de trabalho entre várias unidades de processamento. Esta distribuição requer que os arquivos de dados estáticos sejam criados e armazenados em um formato splittable. Sistemas de arquivos distribuídos, como o Hadoop Distributed File System (HDFS), 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 divisível, como Parquet.
Dados de partição. O processamento em lote geralmente ocorre em uma programação recorrente, como semanal ou mensal. Particione arquivos de dados e estruturas de dados, como tabelas, com base em períodos temporais que se alinham com o cronograma de processamento. Essa estratégia simplifica a ingestão de dados e o agendamento de tarefas, facilita a solução de problemas e pode melhorar significativamente o desempenho da consulta.
Aplique semântica de esquema ao ler. O uso de um data lake permite combinar o armazenamento de arquivos em vários formatos, sejam eles estruturados, semiestruturados ou não estruturados. Aplique semântica de esquema em leitura , que projeta um esquema nos 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 causados pela validação de dados e verificação de tipo.
Processar dados do lote à chegada. As soluções tradicionais de BI geralmente usam um processo de extração, transformação e carregamento (ETL) 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 extração, carga e transformação (ELT).
Processar dados de streaming em voo. Para soluções de streaming, transforme a carga útil 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. Coloque o fluxo transformado em um mecanismo otimizado para dados baseados em eventos, como uma casa de eventos do Real-Time Intelligence, que torna os dados imediatamente disponíveis para ação.
Equilibre 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 do uso desses 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 acontecer que o trabalho use todos os quatro nós apenas durante as primeiras duas horas e, depois disso, apenas dois nós são necessários. Nesse caso, executar o trabalho inteiro 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 a outra está aguardando.
Orquestre a ingestão de dados. Em alguns casos, os aplicativos de negócios existentes podem gravar arquivos de dados para processamento em lote diretamente nos contêineres de blob de armazenamento do Azure, onde serviços downstream, como o Microsoft Fabric, podem consumi-los. No entanto, muitas vezes você precisa orquestrar a ingestão de dados de fontes de dados locais ou externas no data lake. Use um fluxo de trabalho ou pipeline de orquestração, como os suportados pelo Azure Data Factory ou pelo Microsoft Fabric, para obter uma movimentação de dados previsível e gerenciada centralmente.
Limpe dados confidenciais com antecedência. O fluxo de trabalho de ingestão de dados deve limpar dados confidenciais no início do processo para evitar armazená-los no data lake.
Arquitetura IoT
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.
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 uma transmissão de dados eficiente.
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 colocalizado com os dispositivos, que recebe eventos e os encaminha para o gateway de nuvem. O gateway de campo também pode pré-processar eventos de dispositivo bruto 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 da construção e as informações do dispositivo.
Analisar o fluxo de eventos em tempo real para detetar anomalias, reconhecer padrões em janelas de tempo de rolagem ou disparar alertas quando condições específicas ocorrem no fluxo.
Processamento de tipos especiais de mensagens não relacionadas à telemetria provenientes de dispositivos, como notificações e alarmes.
Pontuação de eventos usando modelos de aprendizado de máquina para detetar anomalias, prever falhas ou classificar o comportamento do dispositivo.
As caixas cinza mostram componentes de um sistema IoT que não estão diretamente relacionados ao fluxo de eventos. Eles estão incluídos aqui para completude.
O registro de dispositivo é um banco de dados de dispositivos provisionados. Inclui IDs de dispositivo e normalmente contém metadados, como localização.
A API de provisionamento de é uma interface externa comum para provisionamento e registro de novos dispositivos.
Algumas soluções de IoT permitem que mensagens de comando e controle sejam enviadas para dispositivos.