Transmissão de dados do MongoDB para o BigQuery usando conectores Confluent
Venkatesh Shanbhag, Ozan Güzeldereli4 min read • Published Jan 24, 2023 • Updated Jul 11, 2023
Avalie esse Tutorial
Muitos clientes empresariais do MongoDB e Google Cloud têm o volume de trabalho da operação principal executado no MongoDB e executam suas análises no BigQuery. Para facilitar a movimentação de dados entre o MongoDB e o BigQuery, o MongoDB introduziu os modelosde GCP. Embora esses modelos atendam à maioria dos casos de uso comuns, ainda é necessário algum esforço para configurar o modelo de change stream (CDC). A configuração do CDC exige que os usuários criem seu próprio código personalizado para monitorar as alterações que estão ocorrendo em sua collection do MongoDB Atlas. O desenvolvimento de códigos personalizados consome tempo e requer muito tempo para desenvolvimento, suporte, gerenciamento e operações.
A superação do esforço adicional necessário para configurar CDCs para o MongoDB para modelos de fluxo de dados do BigQuery pode ser obtida usando o Confluent Cloud. O Confluent é uma plataforma de dados em escala completa capaz de processamento, integração e transmissão de dados contínuos e em tempo real em qualquer infraestrutura. O Confluent fornece integração de dados declarativa e conectável por meio de seus conectores. Com os conectores de origem MongoDB da Confluent, o processo de criação e implantação de um módulo para CDCs pode ser eliminado. O Confluent Cloud fornece um connector de origem MongoDB Atlas que pode ser facilmente configurado a partir do Confluent Cloud, que lerá as alterações da origem do MongoDB e publicará essas alterações em um tópico. A leitura do MongoDB como fonte é a parte da solução que é aprimorada ainda mais com um connector de coletor Confluent BigQuery para ler as alterações que são publicadas no tópico e, em seguida, gravadas na tabela BigQuery.
Este artigo explica como configurar o cluster MongoDB, o cluster Confluent e o MongoDB Atlas source connector para ler alterações do cluster MongoDB, conjunto de dados BigQuery e Confluent BigQuery sink connector.
Como pré-requisito, precisamos de um MongoDB Atlas cluster, cluster Confluent Cloud e conta do Google Cloud. Se você não tiver as contas, as próximas seções ajudarão você a entender como configurá-las.
Para configurar seu primeiro MongoDB Atlas cluster, você pode se registrar no MongoDB no Google Marketplace ou na página de registro. Uma vez registrado no MongoDB Atlas, você pode configurar seu primeiro MongoDB Atlas cluster Shared M0 camada gratuita. Siga as etapas na documentação do MongoDB para definir o usuário do bancode dados e as configurações derede do MongoDB Atlas cluster.
Depois que o cluster e a configuração do acesso forem concluídos, podemos carregar alguns dados de exemplo no cluster. Navegue até "browse collection " na página inicial do Atlas e clique em "Create Database. " Nomeie seu banco de dados "Sample_company " e a coleção "Sample_employee. "
Insira seu primeiro documento no banco de dados:
1 { 2 "Name":"Jane Doe", 3 "Address":{ 4 "Phone":{"$numberLong":"999999"}, 5 "City":"Wonderland" 6 } 7 } 8 }
Como pré-requisito para configurar o pipeline, precisamos criar um conjunto de dados na mesma região do cluster Confluent. Consulte a documentaçãodo Google para entender como criar um conjunto de dados para seu projeto. Nomeie seu conjunto de dados como “Sample_Dataset.”
Depois de configurar os conjuntos de dados MongoDB e BigQuery, o Confluent será a plataforma para criar o pipeline de dados entre essas plataformas.
Para se inscrever usando o Confluent Cloud, você pode acessar Go site do Confluent ou se registrar no Google Marketplace. Novas inscrições recebem $400 para gastar durante os primeiros 30 dias, e um cartão de crédito não é necessário. Para criar o cluster, você pode seguir a primeira etapa na documentação. Um ponto importante a considerar é que a região do cluster deve ser a mesma região do cluster do GCP BigQuery.
Dependendo das configurações, pode levar alguns minutos para provisionar seu cluster, mas, depois que o cluster for provisionado, podemos obter os dados de amostra do cluster MongoDB para o cluster Confluent.
O connector MongoDB Atlas Source do Confluent ajuda a ler os dados do change stream do MongoDB database e escrevê-los no tópico. Este connector é totalmente gerenciado pelo Confluent e você não precisa operá-lo. Para configurar um connector, navegue até Confluent Cloud e procure o connector de origem do MongoDB Atlas emConnectors. " "A documentação do connector fornece as etapas para provisionar o connector.
Abaixo está a configuração de exemplo para o connector de origem MongoDB.
- Para Seleção de tópico, deixe o prefixo vazio.
- Gere credenciais Kafka e clique em “Continue.”
- Em Autenticação, forneça os detalhes:
- Host de conexão: forneça apenas o nome do host MongoDB no formato "mongodbcluster.mongodb.net. "
- Usuário da conexão: nome de usuário da conexão MongoDB.
- Senha de conexão: Senha do usuário que está sendo autenticado.
- Nome do banco de dados: sample_database e nome da collection: sample_collection.
- Na configuração, selecione o formato de registro Kafka de saída como JSON_SR e clique em "Continue. "
- Deixe o dimensionamento padrão e clique em "Continue. "
- Revise e clique em "Continue. "
1 { 2 "name": "MongoDbAtlasSourceConnector", 3 "config": { 4 "connector.class": "MongoDbAtlasSource", 5 "name": "MongoDbAtlasSourceConnector", 6 "kafka.auth.mode": "KAFKA_API_KEY", 7 "kafka.api.key": "****************", 8 "kafka.api.secret": "****************************************************************", 9 "connection.host": "mongodbcluster.mongodb.net", 10 "connection.user": "testuser", 11 "connection.password": "*********", 12 "database": "Sample_Company", 13 "collection": "Sample_Employee", 14 "output.data.format": "JSON_SR", 15 "publish.full.document.only": "true", 16 "tasks.max": "1" 17 } 18 }
Depois de configurar nosso BigQuery, precisamos provisionar um connector de coletor para coletar os dados do Confluent Cluster para o Google BigQuery. O connector Confluent Cloud to BigQuery Sink pode transmitir registros de tabela de tópicos do Kafka para o Google BigQuery. Os registros da tabela são transmitidos a altas taxas de rendimento para facilitar as queries analíticas em tempo real.
1 { 2 "name": "BigQuerySinkConnector_0", 3 "config": { 4 "topics": "AppEngineTest.emp", 5 "input.data.format": "JSON_SR", 6 "connector.class": "BigQuerySink", 7 "name": "BigQuerySinkConnector_0", 8 "kafka.auth.mode": "KAFKA_API_KEY", 9 "kafka.api.key": "****************", 10 "kafka.api.secret": "****************************************************************", 11 "keyfile": "****************************************************************************** 12 —-- 13 ***************************************", 14 "project": "googleproject-id", 15 "datasets": "Sample_Dataset", 16 "auto.create.tables": "true", 17 "auto.update.schemas": "true", 18 "tasks.max": "1" 19 } 20 }
Para ver os dados sendo carregados no BigQuery, faça algumas alterações na collection do MongoDB. Quaisquer inserções e atualizações serão registradas do MongoDB e enviadas para o BigQuery.
Insira o documento abaixo em sua MongoDB collection usando a UI do MongoDB Atlas. (Navegue até sua collection e clique em "INSERT DOCUMENT. ")
1 { 2 "Name":"John Doe", 3 "Address":{ 4 "Phone":{"$numberLong":"8888888"}, 5 "City":"Narnia" 6 } 7 } 8 }
O MongoDB e o Confluent estão posicionados no centro de muitas arquiteturas de dados modernas que ajudam os desenvolvedores a criar facilmente pipelines de dados robustos e reativos que transmitem eventos entre aplicativos e serviços em tempo real. Neste exemplo, fornecemos um modelo para criar um pipeline do MongoDB para o Bigquery no Confluent Cloud. O Confluent Cloud fornece mais de 200 conectores para criar esses pipelines entre muitas soluções. Embora as soluções mudem, a abordagem geral é usar esses conectores para construir pipelines.
- Para entender os recursos dos conectores de origem e coletor do MongoDB gerenciados pela Confluent Cloud, você pode assistir a este webinar.
- Configure seu primeiro MongoDB cluster usando o Google Marketplace.