Editar

Compartilhar via


Processamento de dados quase em tempo real do lakehouse

Azure AI Search
Azure Cosmos DB
Azure Data Lake
Hubs de eventos do Azure
Azure Synapse Analytics

As empresas controladas por dados precisam manter seus sistemas de back-end e análise quase em tempo real com aplicativos voltados para o cliente. O impacto de transações, atualizações e alterações deve refletir com precisão por meio de processos de ponta a ponta, aplicativos relacionados e sistemas de processamento de transações on-line (OLTP). A latência tolerável para que as alterações em aplicativos OLTP reflitam 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 Armazenamento do Azure Data Lake para processamento e análise de dados.

Apache® e Apache Spark são marcas registradas ou marcas comerciais do Apache Software Foundation nos Estados Unidos e/ou em outros países. O uso desta marca não implica aprovação por parte da Apache Software Foundation.

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 dessa arquitetura.

Fluxo de dados

  1. A captura de dados de alteração é 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 os Hubs de Eventos do Azure. Os Hubs de Eventos podem receber grandes quantidades de dados de várias fontes.

  3. Os Hubs de Eventos transmitem diretamente os dados para pools do Azure Synapse Analytics Spark ou podem enviar os dados para uma zona de destino do Azure Data Lake Storage em formato bruto.

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

  5. Os pools do Spark do Azure Synapse usam APIs de streaming estruturadas do Apache Spark com suporte total para processar dados na estrutura de streaming do Spark. 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. Delta Lake fornece semântica e transações de atomicidade, consistência, isolamento e durabilidade (ACID), manipulação de metadados escalonável e streaming unificado e processamento de dados em lote para data lakes existentes.

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

  7. Os dados da zona validada do Data Lake Storage, 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 larga 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 na zona de destino do Data Lake Store e dados validados no formato Delta para:

    • Análise ad-hoc e exploratória adicional por meio de pools sem servidor do Azure Synapse SQL.
    • Machine learning 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. Esse cenário de uso é principalmente para respostas de API. Esse 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 se prestar a todos os padrões de consulta. Se esse for o caso, você poderá aumentar a solução indexando os dados que as APIs precisam acessar com a Pesquisa Cognitiva do Azure. O Azure Cosmos DB e a Pesquisa Cognitiva podem atender à maioria dos cenários que exigem respostas de consulta de baixa latência.

Componentes

A solução usa os seguintes serviços do Azure:

  • Os Hubs de Eventos são um serviço de ingestão distribuído gerenciado que pode ser dimensionado para ingerir grandes quantidades de dados. Com o mecanismo de assinante-editor dos Hubs de Eventos, diferentes aplicativos podem enviar mensagens para tópicos nos Hubs de Eventos, e os consumidores downstream podem se conectar e processar mensagens. O recurso Captura de Hubs de Eventos pode gravar mensagens no Data Lake Storage no formato AVRO à medida que elas chegam. Essa capacidade permite o processamento fácil de microlotes e cenários de retenção de longo prazo. Os Hubs de Eventos também oferecem uma API compatível com Kafka e oferecem suporte ao registro de esquema.

  • O Data Lake Storage forma o subsistema de armazenamento que armazena todos os dados em formatos brutos e validados. O Data Lake Storage pode lidar com transações em escala e oferece suporte a diferentes formatos e tamanhos de arquivo. Os namespaces hierárquicos ajudam a organizar os dados em uma estrutura de pastas familiar e oferecem suporte a permissões POSIX (Portable Operating System Interface for UniX). O driver do sistema de arquivos de Blob do Azure (ABFS) oferece uma API compatível com Hadoop.

  • O Azure Synapse Analytics é um serviço de análise ilimitado que reúne integração de dados, armazenamento de dados corporativos e análise de Big Data. Esta solução usa os seguintes recursos do ecossistema do Azure Synapse Analytics:

    • Os pools do Azure Synapse Spark oferecem um tempo de execução do Spark sob demanda que adiciona aprimoramentos internos de desempenho ao Spark de código aberto. 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 sem servidor SQL do Azure Synapse fornecem uma interface para consultar dados lakehouse usando uma sintaxe T-SQL familiar. Não há infraestrutura para configurar, e a implantação do espaço de trabalho do Azure Synapse cria automaticamente o ponto de extremidade. Os pools sem servidor SQL do Azure Synapse permitem a descoberta básica e a exploração de dados no local e são uma boa opção para análise de consulta ad-hoc do usuário.

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

  • O Power BI 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. Com o Power BI, você pode transformar dados com base nos requisitos de negócios e compartilhar visuais e relatórios com outras pessoas por meio do serviço do Power BI.

  • O Azure Cosmos DB é um banco de dados NoSQL gerenciado e multimodal que oferece suporte a APIs abertas, como MongoDB e Cassandra. Essa solução usa o Azure Cosmos DB para aplicativos que exigem tempos de resposta de milissegundos de um dígito e alta disponibilidade. O Azure Cosmos DB oferece gravações de várias regiões em todas as regiões do Azure. Você pode usar o Azure Synapse Link para o Azure Cosmos DB para obter insights e executar análises sobre dados em tempo real.

  • A Pesquisa Cognitiva do Azure é um serviço de pesquisa na nuvem que pode indexar os dados de que seus aplicativos e APIs precisam. A Pesquisa Cognitiva tem recursos opcionais de enriquecimento de IA que ajudam na extração de texto e inferem texto de arquivos que não são de texto. A Pesquisa Cognitiva integra-se a serviços como o Armazenamento Azure Data Lake e o Azure Cosmos DB para acessar e indexar dados facilmente. Você pode consultar os dados indexados usando uma API REST ou o SDK do .NET. Para obter dados de dois índices separados, você pode combiná-los em um único índice ou usar tipos de dados complexos.

Detalhes do cenário

O fluxo de trabalho completo para processar alterações quase em tempo real requer:

  • Uma tecnologia de captura de dados de alteração (CDC). Os aplicativos OLTP podem ter armazenamentos de dados back-end diferentes, como SQL Server, MySQL e Oracle. O primeiro passo é ouvir as mudanças à medida que elas acontecem e propagá-las adiante.
  • Um buffer de ingestão para publicar os eventos de alteração em escala. Esse 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 esse 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 potencializar as decisões de negócios.
  • Uma interface analítica de autoatendimento.
  • Para respostas de API de baixa latência, um banco de dados NoSQL para armazenar a representação desnormalizada dos dados.
  • Para alguns casos, um sistema para indexar dados, atualizar o índice em intervalos regulares e disponibilizar os dados mais recentes para consumo downstream.

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.

Possíveis casos de uso

Esta solução é adequada para:

  • Setores que precisam propagar alterações de OLTP para OLAP (processamento analítico online).
  • 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 precisará 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, levando a uma maior produtividade organizacional e maior satisfação do cliente.

Considerações

Estas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios de orientação que podem ser usados para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, confira Microsoft Azure Well-Architected Framework.

Confiabilidade

A confiabilidade garante que seu aplicativo possa cumprir os compromissos que você assume com seus clientes. Para obter mais informações, confira Visão geral do pilar de confiabilidade.

  • Os Hubs de Eventos oferecem retenção de dados de 90 dias nas camadas premium e dedicada. Para cenários de failover, você pode configurar um namespace secundário na região emparelhada e ativá-lo durante o failover.

  • Os trabalhos de pool do Spark do Azure Synapse 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 contratos de nível de serviço (SLAs) vinculados ao sistema. Essa limitação não é um problema para muitos cenários em que o objetivo de tempo de recuperação (RTO) é de cerca de 15 minutos.

Otimização de custo

A otimização de custos é a análise de maneiras de reduzir as despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, confira Visão geral do pilar de otimização de custo.

  • Você pode selecionar entre diferentes camadas de Hubs de Eventos com base nas características da carga de trabalho. Hubs de Eventos faturam o armazenamento de Capture separadamente, com base na quantidade de dados que estão sendo armazenados no Data Lake Storage.

  • Considere o gerenciamento do ciclo de vida do objeto por meio de camadas no Azure Data Lake Storage. À medida que os dados se tornam mais antigos, você pode mover dados de uma camada ativa, onde você precisa acessar dados recentes para análise, para uma camada de armazenamento frio com preço muito mais baixo. A camada de armazenamento frio é uma opção econômica para retenção de 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 pelo portal.

  • O Azure Cosmos DB oferece diferentes modelos de provisionamento, como sem servidor, taxa de transferência provisionada manualmente e dimensionamento automático. Considere o uso do provisionamento sem servidor para suas cargas de trabalho de desenvolvimento e teste. Você também pode usar o dimensionamento automático, onde você pode definir o máximo de unidades de solicitação por segundo (RU/s) no contêiner. A taxa de transferência no contêiner é dimensionada automaticamente entre 10% do máximo de RU/s como um limite inferior e o máximo de RU/s configurado.

Eficiência de desempenho

A eficiência do desempenho é a capacidade de dimensionar sua carga de trabalho para atender às demandas colocadas por usuários de maneira eficiente. Para obter mais informações, consulte Visão geral do pilar de eficiência de desempenho.

  • Você pode dimensionar Hubs de Eventos por meio do particionamento. Considere particionar seus dados para preservar a ordem dos eventos por meio de um log de confirmação. O particionamento permite criar vários logs paralelos maximizando a capacidade de taxa de transferência disponível.

  • Você pode configurar pools do Spark do Azure Synapse 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 Spark do Azure Synapse para contabilizar cargas de trabalho espinhosas. 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.

  • Use as práticas recomendadas para criar tabelas no pool SQL dedicado. Os limites de desempenho e escalabilidade associados se aplicam, com base na camada em que o pool SQL está sendo executado.

  • O Azure Cosmos DB usa partições para dimensionar contêineres, com base em uma chave de partição. Todos os dados baseados em uma chave de partição formam uma partição lógica. Certifique-se de escolher a estratégia de particionamento correta com base nos requisitos de carga de trabalho. Você também pode usar índices para recuperação de dados mais rápida.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

Outro colaborador:

Para ver perfis não públicos do LinkedIn, entre no LinkedIn.

Próximas etapas