Analisar dados operacionais no MongoDB Atlas usando o Azure Synapse Analytics

Serviço de aplicativo do Azure
Armazenamento do Azure Data Lake
Grade de Eventos do Azure
Azure Synapse Analytics
Power BI

Este artigo apresenta uma solução para derivar insights dos dados operacionais do Atlas do MongoDB. A solução conecta o Atlas do MongoDB ao Azure Synapse Analytics. A conexão possibilita a transferência de dados em lotes e em tempo real. A abordagem em tempo real mantém os pools de SQL dedicados do Azure Synapse Analytics em sincronia com as alterações na fonte de dados do Atlas do MongoDB.

Apache®, Apache Spark e o logotipo da chama 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.

O logotipo do Atlas do MongoDB é uma marca registrada do MongoDB. Nenhum endosso é implícito pelo uso dessa marca.

Arquitetura

O diagrama a seguir mostra como sincronizar dados do Atlas do MongoDB com o Azure Synapse Analytics em tempo real.

Architecture diagram that shows data flow from MongoDB Atlas to analysis apps. Interim stages include a change stream API and Azure Synapse Analytics.

Baixe um arquivo do PowerPoint de todos os diagramas neste artigo.

Fluxo de dados

A solução apresenta duas opções para disparar os pipelines que capturam as alterações em tempo real no ODS (armazenamento de dados operacional) do Atlas do MongoDB e sincronizam os dados. As etapas a seguir descrevem ambas as opções.

  1. As alterações ocorrem nos dados operacionais e transacionais armazenados no Atlas do MongoDB. As APIs de fluxo de alterações do Mongo Atlas notificam os aplicativos inscritos sobre as alterações em tempo real.

  2. Um aplicativo Web personalizado do Serviço de Aplicativo do Azure assina o fluxo de alterações do MongoDB. Há duas versões do aplicativo Web, Grade de Eventos e armazenamento, uma para cada versão da solução. Ambas as versões do aplicativo escutam as alterações causadas por uma operação de inserção, atualização ou exclusão no Atlas. Quando os aplicativos detectam uma alteração, eles gravam o documento alterado como um blob no Azure Data Lake Storage, que é integrado ao Azure Synapse Analytics. A versão da Grade de Eventos do aplicativo também cria um novo evento na Grade de Eventos do Azure quando detecta uma alteração no Atlas.

  3. Ambas as versões da solução disparam o pipeline do Azure Synapse Analytics:

    1. Na versão da Grade de Eventos, um gatilho personalizado baseado em evento é configurado no Azure Synapse Analytics. Esse gatilho assina o tópico da Grade de Eventos no qual o aplicativo Web publica. O novo evento nesse tópico ativa o gatilho do Azure Synapse Analytics, que faz com que o pipeline de dados do Azure Synapse Analytics seja executado.
    2. Na versão de armazenamento, um gatilho baseado em armazenamento é configurado no Azure Synapse Analytics. Quando o novo blob é detectado na pasta integrada do Data Lake Storage, esse gatilho é ativado, o que faz com que o pipeline de dados do Azure Synapse Analytics seja executado.
  4. Em uma atividade de cópia, o pipeline do Azure Synapse Analytics copia o documento completo alterado do blob do Data Lake Storage para o pool de SQL dedicado. Essa operação está configurada para fazer um upsert em uma coluna selecionada. Se a coluna existir no pool de SQL dedicado, o upsert atualizará a coluna. Se a coluna não existir, o upsert inserirá a coluna.

  5. O pool de SQL dedicado é o recurso de armazenamento de dados corporativo que hospeda a tabela que o pipeline de dados atualiza. A atividade de cópia de dados do pipeline mantém essa tabela em sincronia com sua coleção atlas correspondente.

  6. Relatórios e visualizações do Power BI exibem análises atuais e quase em tempo real. Os dados também são alimentados em aplicativos downstream. O Atlas do MongoDB funciona como um coletor usando um conector do coletor de pipeline de dados do Azure Synapse Analytics. Em seguida, o Atlas fornece aplicativos personalizados com os dados em tempo real.

Componentes

  • O MongoDB Atlas é uma oferta de banco de dados como serviço do MongoDB. Essa plataforma de dados de aplicativos multinuvem oferece processamento transacional, pesquisa baseada em relevância, análise em tempo real e sincronização de dados móveis para nuvem. O MongoDB também oferece uma solução local, MongoDB Enterprise Advanced.

  • Os fluxos de alteração no Atlas do MongoDB dão aos aplicativos acesso a alterações de dados em tempo real para que os aplicativos possam reagir imediatamente a essas alterações. Os fluxos de alteração fornecem uma maneira de os aplicativos receberem notificações sobre alterações em uma coleção específica, banco de dados ou cluster de implantação inteiro.

  • O Serviço de Aplicativo e seus recursos de Aplicativos Web, Aplicativos Móveis e Aplicativos de API fornecem uma estrutura para criar, implantar e dimensionar aplicativos Web, aplicativos móveis e APIs REST. Essa solução usa aplicativos Web programados em ASP.NET. O código está disponível no GitHub:

  • O Azure Synapse Analytics é o serviço principal que essa solução usa para ingestão, processamento e análise de dados.

  • O Data Lake Storage fornece recursos para armazenar e processar dados. Como um data lake criado sobre o Armazenamento de Blobs, o Data Lake Storage fornece uma solução escalonável para gerenciar grandes volumes de dados de várias fontes heterogêneas.

  • Os pipelines do Azure Synapse Analytics são usados para executar operações de ETL (extração, transformação e carregamento) em dados. O Azure Data Factory fornece um serviço semelhante, mas você pode criar pipelines do Azure Synapse Analytics no Synapse Studio. Você pode usar várias atividades no mesmo pipeline. Você também pode criar pontos de extremidade de dependência para conectar uma atividade com outra atividade no pipeline.

  • Os fluxos de dados de mapeamento são transformações de dados projetadas visualmente no Azure Synapse Analytics. Os fluxos de dados fornecem uma maneira para os engenheiros de dados desenvolverem a lógica de transformação de dados sem escrever código. Você pode executar os fluxos de dados resultantes como atividades nos pipelines do Azure Synapse Analytics que usam clusters Do Apache Spark escalonados. Você pode colocar as atividades de fluxo de dados em operação usando os recursos existentes de agendamento, controle, fluxo e monitoramento do Azure Synapse Analytics.

  • O pool de SQL dedicado fornece recursos de data warehousing para dados depois que os dados são processados e normalizados. Esse recurso do Azure Synapse Analytics era conhecido anteriormente como SQL Data Warehouse. Pools de SQL dedicados disponibilizam os dados refinados para seus usuários finais e aplicativos.

  • Os gatilhos do Azure Synapse Analytics fornecem uma maneira automatizada de executar pipelines. Você pode agendar esses gatilhos. Você também pode configurar gatilhos baseados em eventos, como gatilhos de evento de armazenamento e gatilhos de evento personalizados. A solução usa ambos os tipos de gatilhos baseados em evento.

  • A Grade de Eventos é um agente de eventos altamente escalonável e sem servidor. Você pode usar a Grade de Eventos para entregar eventos para destinos de assinantes.

  • O Power BI é uma coleção de serviços de software e aplicativos que exibem informações de análise. Nesta solução, o Power BI fornece uma maneira de usar os dados processados para executar análises avançadas e derivar insights.

Detalhes do cenário

O Atlas do MongoDB serve como a camada de dados operacional de muitos aplicativos empresariais. Esse banco de dados de nuvem armazena dados de aplicativos internos, serviços voltados para o cliente e APIs de terceiros de vários canais. Usando pipelines do Azure Synapse Analytics, você pode combinar dados do Atlas do MongoDB com dados relacionais de outros aplicativos tradicionais e dados não estruturados de fontes como logs.

Integração do lote

No Azure Synapse Analytics, você pode integrar perfeitamente as instâncias locais do MongoDB e o MongoDB Atlas como um recurso de origem ou coletor. O MongoDB é o único banco de dados NoSQL que tem conectores de origem e coletor para o Azure Synapse Analytics e o Data Factory.

Com dados históricos, você pode recuperar todos os dados de uma só vez. Você também pode recuperar dados incrementalmente por períodos específicos usando um filtro no modo de lote. Em seguida, você pode usar pools de SQL e pools do Apache Spark no Azure Synapse Analytics para transformar e analisar os dados. Se você precisar armazenar os resultados de análise ou consulta em um armazenamento de dados de análise, poderá usar o recurso de coletor no Azure Synapse Analytics.

Architecture diagram that shows the source and sink connectors that connect data from consumers to Azure Synapse Analytics and MongoDB data storage.

Para obter mais informações sobre como configurar e configurar os conectores, consulte estes recursos:

O conector de origem fornece uma maneira conveniente de executar o Azure Synapse Analytics com base nos dados operacionais armazenados no MongoDB ou no Atlas. Depois de usar o conector de origem para recuperar dados do Atlas, você pode carregar os dados no armazenamento de blobs do Data Lake Storage como um arquivo Parquet, Avro, JSON, texto ou CSV. Em seguida, você pode transformar esses arquivos ou juntá-los a outros arquivos de outras fontes de dados em ambientes com vários bancos de dados, várias nuvens ou nuvens híbridas.

Você pode usar os dados recuperados do MongoDB Enterprise Advanced ou do MongoDB Atlas nos seguintes cenários:

  • Para recuperar todos os dados de uma data específica do MongoDB em um lote. Em seguida, carregue os dados no Data Lake Storage. A partir daí, você usa um pool de SQL sem servidor ou pool do Spark para análise ou copia os dados para um pool de SQL dedicado. Depois de recuperar esse lote, você pode aplicar alterações aos dados conforme eles ocorrem, conforme descrito no fluxo de dados. Um pipeline de exemplo CopyPipeline_mdb_synapse_ded_pool_RTS armazenamento está disponível como parte dessa solução. Você pode exportar o pipeline do GitHub para essa finalidade de carga única.

  • Para produzir insights em uma frequência específica, por exemplo, para um relatório diário ou por hora. Para esse cenário, você agenda um pipeline para recuperar dados regularmente antes de executar os pipelines de análise. Você pode usar uma consulta do MongoDB para aplicar critérios de filtro e recuperar apenas um determinado subconjunto de dados.

Sincronização em tempo real

As empresas precisam de insights baseados em dados em tempo real, não em dados obsoletos. Um atraso de algumas horas na entrega de insights pode sustentar o processo de tomada de decisão e resultar em uma perda de vantagem competitiva. Essa solução alimenta a tomada de decisões críticas propagando alterações que ocorrem no banco de dados transacional do MongoDB para o pool de SQL dedicado em tempo real.

Essa solução tem três partes, que as seções a seguir descrevem.

Capturar as alterações do Atlas do MongoDB

O fluxo de alterações do MongoDB captura as alterações que ocorrem no banco de dados. As APIs de fluxo de alterações disponibilizam informações sobre alterações para aplicativos Web do Serviço de Aplicativo que assinam o fluxo de alterações. Esses aplicativos gravam as alterações no armazenamento de blobs do Data Lake Storage.

Disparar um pipeline para propagar as alterações no Azure Synapse Analytics

A solução apresenta duas opções para disparar um pipeline do Azure Synapse Analytics depois que o blob é gravado no Data Lake Storage:

  • Um gatilho baseado em armazenamento. Use essa opção se precisar de análise em tempo real, pois o pipeline será disparado assim que o blob com a alteração for gravado. Mas essa opção pode não ser a abordagem preferencial quando você tem um alto volume de alterações de dados. O Azure Synapse Analytics limita o número de pipelines que podem ser executados simultaneamente. Quando você tiver um grande número de alterações de dados, poderá atingir esse limite.

  • Um gatilho personalizado baseado em evento. Esse tipo de gatilho tem a vantagem de que está fora do Azure Synapse Analytics, portanto, é mais fácil de controlar. A versão da Grade de Eventos do aplicativo Web grava o documento de dados alterado no armazenamento de blobs. Ao mesmo tempo, o aplicativo cria um novo evento da Grade de Eventos. Os dados no evento contêm o nome do arquivo do blob. O pipeline disparado pelo evento recebe o nome do arquivo como um parâmetro e, em seguida, usa o arquivo para atualizar o pool de SQL dedicado.

Propagar as alterações para um pool de SQL dedicado

Um pipeline do Azure Synapse Analytics propaga as alterações para um pool de SQL dedicado. A solução fornece um pipeline CopyPipeline_mdb_synapse_ded_pool_RTS no GitHub que copia a alteração no blob do Data Lake Storage para o pool de SQL dedicado. Esse pipeline é disparado pelo armazenamento ou pelo gatilho da Grade de Eventos.

Possíveis casos de uso

Os casos de uso dessa solução abrangem muitos setores e áreas:

  • Retail

    • Criando inteligência no agrupamento de produtos e na promoção de produtos
    • Otimizando o armazenamento frio que usa o streaming de IoT
    • Otimizando a reposição de inventário
    • Adicionando valor à distribuição omnichannel
  • Serviços bancários e financeiros

    • Personalizando serviços financeiros do cliente
    • Detectando transações potencialmente fraudulentas
  • Telecomunicações

    • Otimizando redes de última geração
    • Maximizando o valor das redes de borda
  • Automotivo

    • Otimizando a parametrização de veículos conectados
    • Detectando anomalias na comunicação de IoT em veículos conectados
  • Produção

    • Fornecendo manutenção preditiva para máquinas
    • Otimizando o gerenciamento de armazenamento e inventário

Aqui estão dois exemplos específicos:

  • Como este artigo descreve anteriormente na integração do Lote, você pode recuperar dados do MongoDB em um lote e, em seguida, atualizar os dados à medida que as alterações ocorrem. Essa funcionalidade possibilita insights em tempo real para conclusões e tomadas de decisão just-in-time. Essa funcionalidade é útil para análise de informações confidenciais e críticas, como transações financeiras e dados de detecção de fraudes.
  • Como a integração do Lote também descreve, você pode agendar um pipeline para recuperar dados do MongoDB regularmente. Essa funcionalidade é útil em cenários de varejo, como atualizar níveis de inventário com dados de vendas diários. Nesses casos, relatórios de análise e dashboards não são de importância crítica, e a análise em tempo real não vale o esforço.

As seções a seguir analisam mais de perto dois casos de uso do setor de varejo.

Agrupamento de produtos

Para promover a venda de um produto, você pode vender o produto como parte de um pacote junto com outros produtos relacionados. O objetivo é usar dados de padrão de vendas para desenvolver estratégias para agrupar um produto em pacotes.

Há duas fontes de dados:

  • Os dados do catálogo de produtos do MongoDB
  • Dados de vendas do SQL do Azure

Ambos os conjuntos de dados são migrados para um pool de SQL dedicado do Azure Synapse Analytics usando um pipeline do Azure Synapse Analytics. Gatilhos e capturas de dados de alteração são usados para obter uma sincronização de dados quase em tempo real sobre os dados migrados uma vez.

Os gráficos do Power BI a seguir mostram a afinidade entre os produtos e os padrões de vendas. A afinidade da caneta e da recarga à base de tinta é alta. Os dados de vendas mostram que a caneta tem um volume de vendas alto na área especificada.

Diagram that shows pipeline stages and charts that show pen sales by product, year, region, and affinity. Pen sales are highest in 2022 in the South.

A análise faz duas sugestões para gerar vendas melhores:

  • Agrupando a caneta e a recarga à tinta
  • Promovendo o pacote em determinadas áreas

Promoção de produtos

Para promover a venda de um produto, você pode recomendar o produto aos clientes interessados em produtos relacionados. O objetivo é usar dados de vendas e dados padrão de compra do cliente para desenvolver estratégias para recomendar um produto aos clientes.

Usando o Azure Synapse Analytics, você pode desenvolver modelos de IA e machine learning para determinar quais produtos recomendar aos clientes.

Os diagramas a seguir mostram o uso de vários tipos de dados para criar um modelo para determinar recomendações alternativas do produto. Os dados incluem padrões de compra do cliente, lucros, afinidades de produto, o volume de vendas dos produtos e parâmetros do catálogo de produtos.

Diagrams that show pipeline stages and a workflow for an AI model. Data fields include the customer ID, price, sales, and profit.

Se o modelo alcançar alta precisão, ele fornecerá uma lista de produtos que você pode recomendar ao cliente.

Considerações

Essas 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.

Segurança

A segurança fornece garantias contra ataques deliberados e o abuso de seus dados e sistemas valiosos. Para saber mais, confira Visão geral do pilar de segurança.

Para obter informações detalhadas sobre os requisitos de segurança e controles dos componentes do Azure na solução, consulte a seção de segurança da documentação de cada produto.

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.

  • Para estimar o custo de produtos e configurações do Azure, use a calculadora de preços do Azure.
  • O Azure ajuda você a evitar custos desnecessários identificando o número correto de recursos para suas necessidades, analisando os gastos ao longo do tempo e dimensionando para atender às necessidades de negócios sem gastos excessivos. Por exemplo, você pode pausar os pools de SQL dedicados quando não espera nenhuma carga. Você pode retomá-los mais tarde.
  • Você pode substituir o Serviço de Aplicativo pelo Azure Functions. Ao orquestrar as funções em um pipeline do Azure Synapse Analytics, você pode reduzir custos.
  • Para reduzir o custo do cluster Spark, escolha o tipo de computação de fluxo de dados correto. Opções gerais e com otimização de memória estão disponíveis. Escolha também a contagem de núcleos apropriada e os valores de TTL (vida útil).
  • Para saber mais sobre como gerenciar os custos dos principais componentes da solução, confira estes recursos:

Eficiência de desempenho

A eficiência de desempenho é a capacidade da carga de trabalho de dimensionar para atender às demandas que são colocadas nela pelos usuários de maneira eficiente. Para saber mais, confira Visão geral do pilar de eficiência de desempenho.

Quando há um grande volume de alterações, a execução de milhares de pipelines no Azure Synapse Analytics para cada alteração na coleção pode resultar em um backlog de pipelines enfileirados. Para melhorar o desempenho nesse cenário, considere as seguintes abordagens:

  • Use o código do Serviço de Aplicativo baseado em armazenamento, que grava os documentos JSON com as alterações no Data Lake Storage. Não vincule o gatilho baseado em armazenamento com o pipeline. Em vez disso, use um gatilho agendado em um intervalo curto, como a cada dois ou cinco minutos. Quando o gatilho agendado é executado, ele usa todos os arquivos no diretório do Data Lake Storage especificado e atualiza o pool de SQL dedicado para cada um deles.
  • Modifique o código do Serviço de Aplicativo da Grade de Eventos. Programe-o para adicionar um microlote de cerca de 100 alterações ao armazenamento de blobs antes de adicionar o novo tópico ao evento com os metadados que incluem o nome do arquivo. Com essa modificação, você dispara apenas um pipeline para um blob com as 100 alterações. Você pode ajustar o tamanho do microlote para atender ao seu cenário. Use microlotes pequenos em alta frequência para fornecer atualizações próximas ao tempo real. Ou use microlotes maiores em uma frequência mais baixa para atualizações atrasadas e sobrecarga reduzida.

Para obter mais informações sobre como melhorar o desempenho e a escalabilidade da atividade de cópia de pipeline do Azure Synapse Analytics, consulte a Guia de desempenho e escalabilidade da atividade Copy.

Implantar este cenário

Para obter informações sobre como implementar essa solução, consulte a Solução de Sincronização em Tempo Real para a Integração do Atlas do MongoDB com o Synapse.

Colaboradores

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

Principais autores:

Outros colaboradores:

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

Próximas etapas

Para obter mais informações sobre a solução, entre em contato partners@mongodb.com.

Para obter informações sobre o MongoDB, consulte estes recursos:

Para obter informações sobre os componentes da solução do Azure, consulte estes recursos: