Partilhar via


Usar o Azure Synapse Analytics para processamento de dados lakehouse quase em tempo real

Pesquisa de IA do Azure
Azure Cosmos DB
Azure Data Lake
Hubs de Eventos do Azure
Azure Synapse Analytics

As empresas orientadas por dados precisam manter seus sistemas de back-end e análise em sincronia quase em tempo real com aplicativos voltados para o cliente. Os efeitos das transações, atualizações e alterações devem refletir com precisão por meio de processos de ponta a ponta, aplicativos relacionados e sistemas OLTP (processamento de transações online). A latência tolerável para alterações em aplicativos OLTP refletirem nos sistemas downstream que usam os dados pode ser de apenas alguns minutos.

Este artigo descreve uma solução completa para processamento de dados quase em tempo real para manter os dados do lakehouse sincronizados. A solução usa os Hubs de Eventos do Azure, o Azure Synapse Analytics e o Azure Data Lake Storage para processamento e análise de dados.

Observação

Você pode implementar uma arquitetura semelhante usando o Microsoft Fabric, que fornece uma plataforma unificada de software como serviço (SaaS) para ingestão, transformação, armazenamento e análise de dados. Nesse caso, o Fabric substitui os componentes do Azure Synapse Analytics da arquitetura e fornece recursos integrados para processamento e análise de dados em tempo real. Para obter mais informações, consulte Fabric Real-Time Intelligence.

Apache® e Apache Spark são marcas registadas ou marcas comerciais da Apache Software Foundation nos Estados Unidos e/ou noutros países. Nenhum endosso da Apache Software Foundation está implícito no uso dessas marcas.

Arquitetura

Um diagrama que mostra o fluxo de dados para a solução de processamento de dados de ponta a ponta.

Baixe um arquivo Visio desta arquitetura.

Fluxo de dados

  1. A captura de dados de alteração (CDC) é um pré-requisito para que os sistemas de origem escutem as alterações. Os conectores Debezium podem se conectar a diferentes sistemas de origem e aproveitar as mudanças à medida que elas acontecem. Os conectores podem capturar alterações e produzir eventos de vários sistemas de gerenciamento de banco de dados relacional (RDBMS). A instalação de um conector Debezium requer um sistema de conexão Kafka.

  2. Os conectores extraem dados de alteração e enviam os eventos capturados para Hubs de Eventos. Os Hubs de Eventos podem receber grandes quantidades de dados de várias fontes.

  3. Os Hubs de Eventos transmitem diretamente os dados para os pools do Azure Synapse Analytics Spark ou enviam os dados para uma zona de aterrissagem do Armazenamento Data Lake em formato bruto.

  4. Outras fontes de dados em lote podem usar os pipelines do Azure Synapse Analytics para copiar dados para o Armazenamento Data Lake e disponibilizá-los para processamento. Um fluxo de trabalho de extração, transformação e carregamento (ETL) de ponta a ponta pode precisar encadear diferentes etapas ou adicionar dependências entre as etapas. Os pipelines do Azure Synapse Analytics podem orquestrar dependências de fluxo de trabalho dentro da estrutura geral de processamento.

  5. Os pools do Azure Synapse Analytics Spark usam APIs de streaming estruturadas Apache Spark totalmente suportadas para processar dados na estrutura do Spark Streaming. A etapa de processamento de dados incorpora verificações de qualidade de dados e validações de regras de negócios de alto nível.

  6. O Data Lake Storage armazena os dados validados no formato aberto Delta Lake . O Delta Lake fornece semântica e transações de atomicidade, consistência, isolamento e durabilidade (ACID), manipulação de metadados escaláveis e streaming unificado e processamento de dados em lote para data lakes existentes.

    O uso de índices para aceleração de consultas melhora o desempenho do Delta Lake. Os dados da zona validada do Armazenamento Data Lake também podem ser uma fonte para análises avançadas e aprendizado de máquina.

  7. Os dados da zona validada do Armazenamento Data Lake, transformados e enriquecidos com mais regras em seu estado final processado, são carregados em um pool SQL dedicado para executar consultas analíticas em grande escala.

  8. O Power BI usa os dados expostos por meio do pool SQL dedicado para criar painéis e relatórios de nível empresarial.

  9. Você também pode usar dados brutos capturados no Repositório Data Lake e os dados validados no formato Delta para as seguintes tarefas:

    • Análise não planejada e exploratória por meio de pools SQL sem servidor do Azure Synapse Analytics

    • Treinamento e implantação do modelo de aprendizado de máquina por meio do Azure Machine Learning

  10. Para algumas interfaces de baixa latência, os dados devem ser desnormalizados para latências de servidor de um dígito. Este caso de uso é principalmente para respostas de API. Este cenário consulta documentos em um armazenamento de dados NoSQL, como o Azure Cosmos DB, para obter respostas de milissegundos de um dígito.

  11. A estratégia de particionamento do Azure Cosmos DB pode não suportar eficientemente todos os padrões de consulta. Se esse for o caso, você pode aumentar a solução indexando os dados que as APIs precisam acessar com o Azure AI Search. O Azure Cosmos DB e a AI Search podem atender à maioria dos cenários que exigem respostas de consulta de baixa latência. Por exemplo, um aplicativo de varejo armazena dados do catálogo de produtos no Azure Cosmos DB, mas precisa de recursos de pesquisa de texto completo e indexação flexível. O AI Search pode indexar os dados e fornecer recursos avançados de pesquisa, como preenchimento automático, sinônimos e classificação semântica. Esses recursos são úteis quando as limitações de indexação do Azure Cosmos DB restringem cenários de pesquisa complexos.

Componentes

Esta solução utiliza os seguintes componentes do Azure:

  • Os Hubs de Eventos são um serviço de ingestão gerenciado e distribuído que pode ser dimensionado para ingerir grandes quantidades de dados. Usando o mecanismo de editor-assinante de Hubs de Eventos, diferentes aplicativos podem enviar mensagens para tópicos de Hubs de Eventos, e os consumidores downstream podem se conectar e processar essas mensagens. O recurso de captura de Hubs de Eventos pode gravar mensagens no Armazenamento Data Lake no formato Avro à medida que elas chegam. Essa capacidade permite fácil processamento em microlotes e cenários de retenção de longo prazo. Os Hubs de Eventos também fornecem uma API compatível com Kafka e suportam o registro de esquema. Nessa arquitetura, os Hubs de Eventos recebem eventos CDC de várias fontes e os distribuem para consumidores downstream.

  • O Data Lake Storage é uma solução de data lake escalável e segura. Ele forma o subsistema de armazenamento que armazena todos os dados em formatos brutos e validados. Nessa arquitetura, o Data Lake Storage lida com transações em escala e suporta diferentes formatos e tamanhos de arquivo. Os namespaces hierárquicos ajudam a organizar os dados em uma estrutura de pastas familiar e suportam permissões POSIX (Portable Operating System Interface for Unix). O driver do Sistema de Arquivos de Blob do Azure (ABFS) fornece uma API compatível com Hadoop.

  • O Azure Synapse Analytics é um serviço de análise ilimitado que combina integração de dados, armazenamento de dados corporativos e análise de big data. Esta solução utiliza as seguintes funcionalidades do ecossistema do Azure Synapse Analytics:

    • Os pools do Azure Synapse Analytics Spark são clusters que fornecem um tempo de execução do Spark sob demanda que adiciona aprimoramentos de desempenho internos ao Spark de código aberto. Nessa arquitetura, os clientes podem definir configurações flexíveis de dimensionamento automático, enviar trabalhos remotamente por meio do endpoint Apache Livy e usar a interface do notebook Synapse Studio para experiências interativas.

    • Os pools SQL sem servidor do Azure Synapse Analytics são um recurso de consulta sob demanda que fornece uma interface para consultar dados lakehouse usando sintaxe T-SQL familiar. Não há infraestrutura para configurar, e a implantação do espaço de trabalho do Azure Synapse Analytics cria automaticamente o ponto de extremidade. Nessa arquitetura, os pools SQL sem servidor do Azure Synapse Analytics permitem a descoberta básica e a exploração de dados no local para análise de consultas não planejadas.

    • Os pools SQL dedicados do Azure Synapse Analytics são recursos provisionados de armazenamento de dados. Eles armazenam dados em tabelas relacionais usando armazenamento colunar. Nessa arquitetura, os pools SQL dedicados usam uma arquitetura de expansão para distribuir o processamento de dados entre vários nós. As consultas PolyBase trazem os dados para tabelas de pool SQL. As tabelas podem se conectar ao Power BI para análise e emissão de relatórios.

  • O Power BI é um serviço de análise de negócios que fornece uma interface visual para criar e acessar relatórios e painéis. O Power BI Desktop pode se conectar a várias fontes de dados, combinar as fontes em um modelo de dados e criar relatórios ou painéis. Nessa arquitetura, você pode usar o Power BI para transformar dados com base em requisitos de negócios e compartilhar visuais e relatórios com os clientes.

  • O Azure Cosmos DB é um serviço de banco de dados NoSQL distribuído globalmente. Esta solução utiliza o Azure Cosmos DB para aplicações que requerem tempos de resposta de milissegundos de um dígito e alta disponibilidade. O Azure Cosmos DB fornece gravações em várias regiões em todas as regiões do Azure.

  • O AI Search é uma plataforma como serviço (PaaS) alimentada por IA que permite aos desenvolvedores criar experiências de pesquisa ricas para seus aplicativos e sites. Use a Pesquisa de IA nesta solução quando o modelo de indexação do Azure Cosmos DB for muito rígido para cenários de pesquisa avançada. O AI Search permite consultas flexíveis com recursos como tolerância a erros de digitação, preenchimento automático, classificação semântica e correspondência de sinônimos. Você pode consultar dados indexados usando uma API REST ou o SDK do .NET. Se precisar recuperar dados de vários índices, você poderá consolidá-los em um único índice ou usar tipos de dados complexos para modelar estruturas aninhadas.

Detalhes do cenário

O fluxo de trabalho de ponta a ponta para processar alterações quase em tempo real exige:

  • Uma tecnologia CDC. Os aplicativos OLTP podem ter diferentes armazenamentos de dados back-end, como SQL Server, MySQL e Oracle. O primeiro passo é ouvir as mudanças à medida que elas acontecem e propagá-las para a frente.

  • Um buffer de ingestão para publicar os eventos de alteração em escala. Este serviço deve ter a capacidade de lidar com grandes quantidades de dados à medida que as mensagens chegam. Os assinantes individuais podem se conectar a este sistema e processar os dados.

  • Armazenamento distribuído e escalável para dados no estado em que se encontram em formato bruto.

  • Um sistema de processamento de fluxo distribuído e eficiente que permite aos usuários reiniciar e gerenciar o estado.

  • Um sistema de análise que é executado em escala para poder decisões de negócios.

  • Uma interface de análise self-service.

  • Para respostas de API de baixa latência, um banco de dados NoSQL para armazenar representações desnormalizadas dos dados.

  • Para alguns casos, um sistema para indexar dados, atualizar o índice em intervalos regulares e disponibilizar os dados mais recentes para consumo a jusante.

Todas as tecnologias anteriores devem usar construções de segurança relevantes para segurança de perímetro, autenticação, autorização e criptografia de dados.

Potenciais casos de utilização

Esta solução adequa-se aos seguintes casos de uso:

  • Setores que precisam propagar mudanças do OLTP para o processamento de análise on-line (OLAP).

  • Aplicativos que exigem transformação ou enriquecimento de dados.

O cenário de processamento de dados em tempo real é especialmente importante para os setores de serviços financeiros. Por exemplo, se um cliente de seguro, cartão de crédito ou banco fizer um pagamento e, em seguida, entrar em contato imediatamente com o atendimento ao cliente, o agente de suporte ao cliente precisa ter as informações mais recentes.

Cenários semelhantes se aplicam aos setores de varejo, comércio e saúde. Habilitar esses cenários agiliza as operações e leva a uma maior produtividade organizacional e aumento da satisfação do cliente.

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que você pode usar para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Well-Architected Framework.

Fiabilidade

A confiabilidade ajuda a garantir que seu aplicativo possa cumprir os compromissos que você assume com seus clientes. Para obter mais informações, consulte Lista de verificação de revisão de design para confiabilidade.

  • Os Hubs de Eventos fornecem retenção de dados por 90 dias nos níveis premium e dedicado. Para cenários de failover, você pode configurar um namespace secundário na região emparelhada e ativá-lo durante o failover. Habilite a redundância de zona para garantir resiliência contra falhas de datacenter. Você pode usar o recurso de captura de Hubs de Eventos para manter os dados no Armazenamento Data Lake para cenários de reprodução e recuperação.

  • Os trabalhos do pool do Azure Synapse Analytics Spark são reciclados a cada sete dias à medida que os nós são retirados para manutenção. Considere essa atividade ao trabalhar com os SLAs (contratos de nível de serviço) vinculados ao sistema. Essa limitação não é um problema para muitos cenários em que o RTO (Recovery Time Objetive, objetivo de tempo de recuperação) é de cerca de 15 minutos. Verifique se o dimensionamento automático está configurado para lidar com picos de carga e falhas de nós.

  • Use pools SQL dedicados com backup geográfico e armazenamento com redundância de zona (ZRS) para proteger contra interrupções regionais e zonais.

Otimização de Custos

A Otimização de Custos concentra-se em formas de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Lista de verificação de revisão de design para otimização de custos.

  • Você pode selecionar entre diferentes camadas de Hubs de Eventos com base nas características da carga de trabalho. Os Hubs de Eventos faturam o armazenamento de captura separadamente com base na quantidade de dados armazenados no Armazenamento Data Lake.

  • Considere o gerenciamento do ciclo de vida do objeto por meio de camadas no Armazenamento Data Lake. À medida que os dados envelhecem, você pode mover dados de um nível quente, onde precisa acessar dados recentes para análise, para um nível de armazenamento frio que custa menos. O nível de armazenamento refrigerado é uma opção econômica para retenção a longo prazo.

  • Você pode pausar o pool SQL dedicado quando não estiver usando-o em seus ambientes de desenvolvimento ou teste. Você pode agendar um script para pausar o pool conforme necessário ou pode pausar o pool manualmente através do portal.

  • Para pools do Azure Synapse Analytics Spark, use o dimensionamento automático para alocar recursos dinamicamente com base na demanda de carga de trabalho e evitar o provisionamento excessivo. Escolha o menor tamanho de pool que atenda às necessidades de desempenho e use as configurações de terminação automática para desligar prontamente os pools ociosos. Otimize os trabalhos do Spark minimizando as operações de shuffle, armazenando em cache os resultados intermediários e ajustando os tamanhos das partições para reduzir o tempo de execução e o consumo de recursos. Monitore o uso usando as ferramentas de monitoramento do Azure Synapse Analytics e ajuste as configurações com base no desempenho do trabalho e nas tendências de custo.

  • Para otimizar a eficiência de custos no Azure Cosmos DB, adapte suas políticas de indexação para incluir apenas os caminhos necessários, o que reduz o consumo de armazenamento e unidade de solicitação (RU). Escolha a API apropriada e o nível de consistência para atender às necessidades de carga de trabalho sem provisionamento excessivo. Use a taxa de transferência de dimensionamento automático para ajustar dinamicamente as RUs com base na demanda e consolidar cargas de trabalho em menos contêineres quando possível para minimizar a sobrecarga. Monitore regularmente o uso usando o Microsoft Cost Management e defina alertas para evitar cobranças inesperadas.

  • Use a calculadora de preços do Azure para estimar preços.

Eficiência de desempenho

A Eficiência de Desempenho refere-se à capacidade da sua carga de trabalho de escalar para atender às demandas dos usuários de forma eficiente. Para obter mais informações, consulte Lista de verificação de revisão de projeto para eficiência de desempenho.

  • Você pode dimensionar Hubs de Eventos por meio do particionamento, que distribui eventos em vários logs paralelos (partições) para aumentar a taxa de transferência. Para preservar a ordem dos eventos relacionados, como eventos do mesmo cliente ou dispositivo, use uma chave de partição consistente ao publicar eventos. Essa prática garante que todos os eventos relacionados sejam roteados para a mesma partição, onde os Hubs de Eventos mantêm sua ordem. Ajuste as unidades de taxa de transferência (TUs) com base no volume de eventos esperado. Use o recurso de captura para gravar diretamente no Data Lake Storage no formato Avro ou Parquet para um processamento downstream eficiente.

  • Você pode configurar pools do Azure Synapse Analytics Spark com SKUs de máquina virtual (VM) pequenas, médias ou grandes com base na carga de trabalho. Você também pode configurar o dimensionamento automático nos pools do Azure Synapse Analytics Spark para levar em conta picos de atividade em cargas de trabalho. Se você precisar de mais recursos de computação, os clusters serão dimensionados automaticamente para atender à demanda e reduzidos após a conclusão do processamento.

  • O Delta Lake desempenha um papel central na garantia de processamento de dados de alto desempenho, confiável e escalável nesta arquitetura:

    • Habilite os recursos de otimização automática e compactação automática no Delta Lake para gerenciar automaticamente pequenos arquivos e otimizar o layout de dados durante as operações de gravação. Esses recursos são ideais para cenários de streaming ou ingestão frequente de microlotes, pois reduzem a necessidade de intervenção manual.

    • Use OPTIMIZE para compactar manualmente arquivos pequenos em arquivos maiores. Essa prática é especialmente útil quando você deseja melhorar a eficiência de leitura e reduzir a sobrecarga de metadados depois que a ingestão de streaming cria muitos arquivos pequenos.

    • Use OPTIMIZE com ZORDER BY colunas consultadas com frequência, como carimbos de data/hora ou IDs de clientes, para colocalizar dados relacionados. Essa consulta melhora o desempenho da consulta, reduzindo a quantidade de dados verificados durante as leituras.

  • Para otimizar o desempenho em pools SQL dedicados para análises quase em tempo real, execute as seguintes tarefas:

    • Use métodos de distribuição apropriados como hash, round-robin, métodos replicados.
    • Particione tabelas grandes por tempo ou região para melhorar a remoção de consultas.
    • Use exibições materializadas e cache de conjunto de resultados para dados acessados com frequência.
    • Mantenha estatísticas e índices up-toatualizados para executar consultas de forma eficiente.
    • Atribua classes de recursos para gerenciar a memória e a simultaneidade.
    • Monitore o desempenho usando ferramentas internas, como SQL Insights e DMVs (Dynamic Management Views).

    Essas práticas ajudam a garantir um desempenho de baixa latência e alta taxa de transferência em cargas de trabalho analíticas de grande escala.

  • Para otimizar o Azure Cosmos DB para desempenho em cenários de análise em tempo real, configure políticas de indexação apropriadas para reduzir a latência da consulta e a sobrecarga de armazenamento e escolha o nível de consistência certo para equilibrar o desempenho com a precisão dos dados. Use o particionamento de forma eficaz para distribuir cargas de trabalho uniformemente e evitar partições quentes. Habilite gravações em várias regiões para acesso global de baixa latência e monitore a taxa de transferência usando RUs para dimensionar dinamicamente com base na demanda. Essas práticas ajudam a garantir um desempenho responsivo e escalável para cargas de trabalho de alta ingestão e baixa latência.

Contribuidores

A Microsoft mantém este artigo. Os seguintes colaboradores escreveram este artigo.

Autor principal:

Outros contribuidores:

Para ver perfis não públicos do LinkedIn, faça login no LinkedIn.

Próximos passos