Muitas empresas usam o MongoDB como um armazenamento de dados operacional e querem enriquecer o valor desses dados realizando análises complexas neles. Para fazer isso, os dados do MongoDB precisam ser agregados e movidos para um data warehouse em que é possível realizar análises. Nesta arquitetura de referência, descrevemos como configurar esse pipeline de integração no Google Cloud.
Nesta arquitetura, você usa modelos do Dataflow para integrar dados do MongoDB Atlas no BigQuery. Esses modelos do Dataflow transformam o formato do documento usado pelo MongoDB no formato de colunas usado pelo BigQuery. Esses modelos dependem das bibliotecas do Apache Beam para executar essa transformação. Portanto, este documento pressupõe que você esteja familiarizado com o MongoDB e com o Dataflow e o Apache Beam.
Arquitetura
O diagrama a seguir mostra a arquitetura de referência que você usa ao implantar essa solução. Este diagrama mostra como vários modelos do Dataflow movem e transformam dados do MongoDB em um data warehouse do BigQuery.
Como mostrado no diagrama, essa arquitetura é baseada nos três modelos a seguir:
- Modelo do MongoDB para BigQuery Esse modelo do Dataflow é um pipeline em lote que lê documentos do MongoDB e os grava no BigQuery, onde esses dados podem ser analisados. Amplie esse modelo escrevendo uma função definida pelo usuário (UDF, na sigla em inglês) em JavaScript. Para uma amostra de UDF, consulte Eficiência operacional.
- Modelo do BigQuery para MongoDB O modelo do Dataflow é um modelo em lote que pode ser usado para ler os dados analisados do BigQuery e gravá-los no MongoDB.
Modelo do MongoDB para o BigQuery (CDC) Esse modelo do Dataflow é um pipeline de streaming que funciona com fluxos de alterações do MongoDB. Você cria um aplicativo editor que envia as alterações do fluxo de alterações do MongoDB para o Pub/Sub. O pipeline lê os registros JSON do Pub/Sub e os grava no BigQuery. Assim como o modelo do MongoDB para BigQuery, é possível estender esse modelo escrevendo uma UDF.
Ao usar o modelo do MongoDB para BigQuery (CDC), é possível garantir que todas as alterações que ocorrerem na coleção do MongoDB sejam publicadas no Pub/Sub. Para configurar um fluxo de alterações do MongoDB, siga as instruções em Fluxos de alterações na documentação do MongoDB.
Casos de uso
O uso do BigQuery para analisar dados do MongoDB Atlas pode ser útil em vários setores, incluindo aplicativos de serviços financeiros, varejo, manufatura e logística e aplicativos de jogos.
Serviços financeiros
O Google Cloud e o MongoDB Atlas oferecem soluções para lidar com as necessidades de dados complexas e em constante mudança das instituições financeiras de hoje. Ao usar o BigQuery para analisar seus dados financeiros do MongoDB Atlas, é possível desenvolver soluções para as seguintes tarefas:
- Detecção de fraude em tempo real: As instituições financeiras querem detectar e evitar transações fraudulentas em tempo real. Ao usar machine learning (ML) e analisar os dados de comportamento do cliente no BigQuery, é possível identificar padrões que indicam fraude.
- Experiências personalizadas para os clientes. As instituições financeiras também têm interesse em oferecer experiências personalizadas aos clientes. Ao armazenar e analisar dados de clientes no BigQuery, é possível criar soluções que geram recomendações personalizadas, oferecem produtos e serviços sob medida e proporcionam um melhor suporte ao cliente.
- Gerenciamento de riscos As instituições financeiras sempre querem processos que ajudem a identificar e mitigar riscos. Ao analisar dados de uma variedade de fontes no BigQuery, é possível identificar padrões e tendências que indicam possíveis riscos.
Varejo
O uso inteligente dos dados do cliente com a capacidade de combiná-los com dados do produto e a execução de engajamentos personalizados em tempo real definem o e-commerce futuro. Para atender às necessidades dos clientes, os varejistas precisam tomar decisões baseadas em dados, coletando e analisando dados. O BigQuery e o MongoDB Atlas permitem usar os dados do cliente para promover a inovação na personalização, como nas seguintes áreas:
- Comércio omnichannel Use o MongoDB para armazenar e gerenciar dados de várias fontes, incluindo lojas on-line e off-line, apps para dispositivos móveis e mídias sociais. Esse armazenamento e gerenciamento de dados aliados às análises do BigQuery o tornam ideal para varejistas omnichannel que precisam fornecer uma experiência perfeita para os clientes em todos os canais.
- Insights em tempo real Ao usar o BigQuery, você recebe insights em tempo real sobre seus clientes, inventário e desempenho de vendas. Esses insights ajudam você a tomar decisões melhores sobre preços, promoções e posicionamento de produtos.
- Recomendações personalizadas Mecanismos de recomendação personalizados ajudam os varejistas a aumentar as vendas e a satisfação do cliente. Ao armazenar e analisar os dados dos clientes, é possível identificar padrões e tendências que podem ser usados para recomendar produtos que podem ser do interesse de cada cliente.
Manufatura e logística
A análise de dados do MongoDB no BigQuery também oferece os seguintes benefícios para o setor de manufatura e logística:
- Visibilidade em tempo real É possível ter visibilidade em tempo real das suas operações. Isso ajuda você a tomar decisões melhores sobre produção, inventário e envio.
- Otimização da cadeia de suprimentos Gerenciar a incerteza da cadeia de suprimentos e analisar dados de diferentes fontes ajuda a reduzir custos e melhorar a eficiência.
Jogos
A análise no BigQuery também capacita desenvolvedores e editores a criar jogos de ponta e proporcionar experiências de jogo incomparáveis, incluindo:
- Gameplay em tempo real. Use sua análise para criar experiências de jogo em tempo real e gerar placares, sistemas de combinação e recursos multiplayer.
- Experiências personalizadas para os jogadores. É possível usar a inteligência artificial (IA) e o ML para fornecer recomendações segmentadas e personalizar a experiência do jogo para os jogadores.
- Análise do jogo É possível analisar dados do jogo para identificar tendências e padrões que ajudam a melhorar o design, a jogabilidade e as decisões de negócios.
Alternativas de design
Você tem duas alternativas ao uso de modelos do Dataflow como pipeline de integração do MongoDB para o BigQuery: o Pub/Sub com uma assinatura do BigQuery ou o Confluent Cloud.
Pub/Sub com uma assinatura do BigQuery
Como alternativa ao uso de modelos do Dataflow, é possível usar o Pub/Sub para configurar um pipeline de integração entre o cluster do MongoDB e o BigQuery. Para usar o Pub/Sub em vez do Dataflow, siga estas etapas:
- Configure um esquema e um tópico do Pub/Sub para ingerir as mensagens do fluxo de alterações do MongoDB.
Crie uma assinatura do BigQuery no Pub/Sub que grave mensagens em uma tabela do BigQuery conforme elas são recebidas. Se você não usa uma assinatura do BigQuery, precisará de uma assinatura de pull ou push e de um assinante (como o Dataflow) que lê mensagens e as grava no BigQuery.
Configure um fluxo de alterações que detecta novos documentos inseridos no MongoDB e corresponde ao esquema usado para o Pub/Sub.
Para detalhes sobre essa alternativa, consulte Criar um pipeline de dados para o stream de alterações do MongoDB usando a assinatura do BigQuery no Pub/Sub.
Confluent Cloud
Se você não quiser criar seu próprio aplicativo de editor para monitorar o fluxo de alterações do MongoDB, use o Confluent Cloud. Nesta abordagem, você usa o Confluent para configurar um conector de origem do MongoDB Atlas para ler o fluxo de dados do MongoDB. Em seguida, vai configurar um conector de coletor do BigQuery para coletar os dados do cluster do Confluent para o BigQuery.
Para detalhes sobre essa alternativa, consulte Como fazer streaming de dados do MongoDB para o BigQuery usando conectores Confluent.
Considerações sobre o design
Ao criar uma solução do MongoDB Atlas para o BigQuery, considere as áreas a seguir.
Segurança, privacidade e conformidade
Quando você executa o pipeline de integração, o Dataflow usa as duas contas de serviço a seguir para gerenciar a segurança e as permissões:
- A conta de serviço do Dataflow. O serviço Dataflow usa a conta como parte da solicitação de criação do job, por exemplo, para verificar a cota do projeto e criar instâncias de worker em seu nome. O serviço do Dataflow também usa essa conta para gerenciar o job durante a execução. Essa conta também é conhecida como agente de serviço do Dataflow.
- A conta de serviço do worker.
As instâncias de worker usam a
conta de serviço do worker para acessar recursos de entrada e saída depois que você envia seu job. Por padrão, os workers usam a
conta de serviço padrão do Compute Engine
do projeto como a conta de serviço do worker. A conta de serviço do worker precisa ter
roles/dataflow.worker
.
Além disso, os pipelines do Dataflow precisam ser capazes de acessar os recursos do Google Cloud. Para permitir esse acesso, você precisa conceder os
papéis necessários à conta de serviço do worker para o projeto do Dataflow
para que ele possa acessar os recursos enquanto executa o
job do Dataflow. Por exemplo, se o job gravar no BigQuery, sua conta de serviço também precisará ter pelo menos o papel roles/bigquery.dataEditor
na tabela ou em outro recurso a ser atualizado.
Otimização de custos
O custo de execução dos modelos do Dataflow depende dos nós de trabalho programados e do tipo de pipeline. Para entender os custos, consulte Preços do Dataflow.
Cada modelo do Dataflow pode mover os dados entre uma coleção do MongoDB para uma tabela do BigQuery. Portanto, à medida que o número de coleções aumenta, o custo de utilização de modelos do Dataflow também pode aumentar.
Eficiência operacional
Para usar e analisar seus dados do MongoDB de maneira eficiente, pode ser necessário realizar uma transformação personalizada desses dados. Por exemplo, talvez seja necessário reformatar os dados do MongoDB para corresponder a um esquema de destino, encobrir dados confidenciais ou filtrar alguns elementos da saída. Se você precisar realizar essa transformação, use uma UDF para estender a funcionalidade do modelo do MongoDB para o BigQuery sem precisar modificar o código do modelo.
Uma UDF é uma função JavaScript. A UDF deve receber e retornar uma string JSON. O código a seguir mostra um exemplo:
/**
* A simple transform function.
* @param {string} inJson
* @return {string} outJson
*/
function transform(inJson) {
var outJson = JSON.parse(inJson);
outJson.key = "value";
return JSON.stringify(outJson);
}
Para mais informações sobre como criar uma UDF, consulte Criar funções definidas pelo usuário para modelos do Dataflow.
Depois de criar a UDF, siga as etapas abaixo para estender o modelo do MongoDB para o BigQuery e usar essa UDF:
- Primeiro, carregue o arquivo JavaScript que contém a UDF no Google Cloud Storage.
- Em seguida, ao criar o job do Dataflow usando o modelo,
você precisa definir os seguintes parâmetros:
- Defina o parâmetro
javascriptDocumentTransformGcsPath
como o local do arquivo JavaScript no Cloud Storage. - Defina o parâmetro
javascriptDocumentTransformFunctionName
como o nome da UDF.
- Defina o parâmetro
Para mais informações sobre como estender o modelo com uma UDF, consulte Modelo do MongoDB para BigQuery.
Otimização de desempenho
O desempenho da transformação do MongoDB para o BigQuery depende dos seguintes fatores:
- O tamanho do documento do MongoDB.
- O número de coleções do MongoDB.
- Se a transformação depende de um esquema fixo ou variável.
- O conhecimento da equipe de implementação de transformações de esquema que usam UDFs baseadas em JavaScript.
Implantação
Para implantar essa arquitetura de referência, consulte Implantar uma transformação de dados entre o MongoDB e o Google Cloud.
A seguir
- Para personalizar os modelos do Google Dataflow, consulte os modelos no GitHub.
- Saiba mais sobre as soluções do MongoDB Atlas e do Google Cloud no aumento de habilidades do Cloud.
- Saiba mais sobre os produtos do Google Cloud usados nesta arquitetura de referência:
- Para mais arquiteturas de referência, diagramas e práticas recomendadas, confira a Central de arquitetura do Cloud.
Colaboradores
Autores:
- Saurabh Kumar | Engenheiro de parceiros de ISV
- Venkatesh Shanbhag | Arquiteto de soluções sênior (MongoDB)
Outros colaboradores:
- Jun Liu | Líder de tecnologia de suporte
- Maridi (Raju) Makaraju | Líder de tecnologia de suporte
- Sergei Lilichenko, Arquiteto de soluções
- Shan Kulandaivel | Gerente de produtos do grupo