Implementa un proceso de transformación de datos entre MongoDB Atlas y Google Cloud

Last reviewed 2023-12-13 UTC

En este documento, se describe cómo implementar la transformación de datos entre MongoDB Atlas y Google Cloud. En este documento, implementarás un proceso de extracción, transformación y carga (ETL) entre los datos de MongoDB Atlas a BigQuery.

Estas instrucciones están destinadas a los administradores de datos que desean usar BigQuery para realizar análisis complejos de los datos operativos almacenados en MongoDB Atlas. Debes conocer MongoDB Atlas, BigQuery y Dataflow.

Arquitectura

En el siguiente diagrama, se muestra la arquitectura de referencia que debes usar cuando implementas esta solución.

Arquitectura para la transformación de datos entre MongoDB Atlas y Google Cloud

Como se muestra en el diagrama, hay tres plantillas de Dataflow que controlan el proceso de integración. La primera plantilla, MongoDB a BigQuery, es una canalización por lotes que lee documentos de MongoDB y los escribe en BigQuery. La segunda plantilla, BigQuery a MongoDB, es una plantilla por lotes que se puede usar para leer los datos analizados de BigQuery y escribirlos en MongoDB. La tercera plantilla, MongoDB a BigQuery (CDC), es una canalización de transmisión que funciona con flujos de cambios de MongoDB para controlar cambios en los datos operativos. Para obtener más detalles, consulta Transformación de datos entre MongoDB Atlas y Google Cloud.

Objetivos

En los siguientes pasos de implementación, se demuestra cómo usar la plantilla de MongoDB a BigQuery para realizar el proceso de ETL entre los datos de MongoDB Atlas a BigQuery. Para implementar este proceso de ETL, debes realizar las siguientes tareas:

  • Aprovisionar un clúster de MongoDB Atlas en Google Cloud.
  • Cargar datos en tu clúster de MongoDB.
  • Configurar el acceso al clúster.
  • Configurar una tabla de BigQuery en Google Cloud.
  • Crear y supervisar el trabajo de Dataflow que transfiere los datos de MongoDB a BigQuery
  • Validar las tablas de salida en BigQuery.

Costos

En este documento, usarás los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios. Es posible que los usuarios nuevos de Google Cloud califiquen para obtener una prueba gratuita.

Cuando finalices las tareas que se describen en este documento, puedes borrar los recursos que creaste para evitar que continúe la facturación. Para obtener más información, consulta Cómo realizar una limpieza.

Antes de comenzar

Completa los siguientes pasos a fin de configurar un entorno para tu arquitectura de MongoDB a BigQuery.

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the BigQuery and Dataflow APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the BigQuery and Dataflow APIs.

    Enable the APIs

Instala MongoDB Atlas

En esta sección, usarás Cloud Marketplace para instalar una instancia de MongoDB Atlas. En estas instrucciones, se supone que no tienes una cuenta de MongoDB existente. Para obtener detalles completos sobre cómo configurar una suscripción y vincular tu cuenta de facturación de Google a tu cuenta de MongoDB, consulta Marketplace de servicio automático de Google Cloud en la documentación de MongoDB.

  1. En la consola de Google Cloud, expande el menú de navegación y, luego, selecciona Marketplace.
  2. En el cuadro de búsqueda de Marketplace, ingresa MongoDB Atlas.
  3. En los resultados de la búsqueda, selecciona MongoDB Atlas (Pay as You Go).
  4. En la página MongoDB Atlas (Pay as You Go), revisa la descripción general de los Términos y Condiciones y, luego, haz clic en Sign up with MongoDB.
  5. En la página de suscripción de MongoDB, selecciona tu cuenta de facturación, acepta las condiciones y haz clic en Suscribirse.
  6. Haz clic en el botón Register with MongoDB y crea una cuenta de MongoDB.
  7. En la página que te solicita que selecciones una organización, selecciona la organización de MongoDB a la que deseas vincular tu cuenta de Facturación de Google Cloud.
  8. Espera a que Google Cloud termine de sincronizar la organización.

Cuando se sincronizan las cuentas, se actualiza la página MongoDBAtlas (Pay as You Go) en la consola de Google Cloud para mostrar el botón Manage on provider.

Crea un clúster de MongoDB Atlas

En esta sección, crearás un clúster de MongoDB. Durante el proceso de creación, debes seleccionar la siguiente información:

  • El tipo de clúster. Selecciona el nivel de clúster según tus requisitos de infraestructura.
  • La región preferida para tu clúster. Te recomendamos que selecciones la región más cercana a tu ubicación física.

Para obtener detalles sobre cómo crear y, luego, implementar un clúster de MongoDB gratuito, consulta Implementa un clúster gratuito en la documentación de MongoDB.

Para crear y configurar tu clúster, sigue estos pasos:

  1. En la consola de Google Cloud, en la página MongoDBAtlas (Pay as You Go), haz clic en Manage on Provider.
  2. En la página de acceso de MongoDB, haz clic en Google y, luego, en la Cuenta de Google que usaste para instalar MongoDB Atlas.

    Como usuario nuevo, la IU de MongoDB se abre de forma automática en la página Database Deployments.

  3. En la IU de Atlas, en la página Database Deployments, haz clic en Crear.

  4. En la página Crear un clúster, haz clic en Shared.

    La opción Shared proporciona un clúster gratuito que puedes usar para probar esta arquitectura de referencia.

  5. En la página Create a Shared Cluster, en la sección Cloud Provider & Region, haz lo siguiente:

    1. Selecciona Google Cloud.
    2. Selecciona la región más cercana a ti geográficamente y que tenga las características que deseas.
  6. En la sección Cluster Tier, selecciona la opción M0.

    Los clústeres M0 son gratuitos y adecuados para aplicaciones pequeñas de prueba de concepto.

  7. En Cluster Name, ingresa un nombre para tu clúster.

  8. Haz clic en Crear clúster para implementar el clúster.

Configura tu clúster de MongoDB

En esta sección, completarás los siguientes procedimientos:

  • Carga los datos de muestra en el clúster.
  • Configura el acceso a tu clúster.
  • Conéctate a tu clúster.

Carga datos de muestra en el clúster de MongoDB

Ahora que ya creaste un clúster de MongoDB, debes cargar datos en ese clúster. MongoDB carga una variedad de conjuntos de datos de muestra. Puedes usar cualquiera de estos conjuntos de datos para probar esta implementación. Sin embargo, es posible que desees usar un conjunto de datos similar a los datos reales que usarás en tu implementación de producción.

Para obtener detalles sobre cómo cargar los datos de muestra, consulta Carga los datos de muestra en la documentación de MongoDB.

Para cargar los datos de muestra, sigue estos pasos:

  1. En la IU de Atlas, en la página Database Deployments, busca el clúster que acabas de implementar.
  2. Haz clic en el botón Puntos suspensivos (...) y, luego, en Load Sample Dataset.

    Cargar los datos de muestra tarda aproximadamente 5 minutos.

  3. Revisa los conjuntos de datos de muestra y toma nota de la colección que deseas usar cuando pruebes esta implementación.

Configura el acceso al clúster

Para conectar tu clúster, debes crear un usuario de base de datos y configurar la dirección IP del clúster:

  • El usuario de base de datos es independiente del usuario de MongoDB. Necesitas el usuario de base de datos para conectarte a MongoDB desde Google Cloud.
  • Para esta arquitectura de referencia, usa el bloque de CIDR de 0.0.0.0/0 como tu dirección IP. Este bloque de CIDR permite el acceso desde cualquier lugar y solo es adecuado para una implementación de prueba de concepto como esta. Sin embargo, cuando implementes una versión de producción de esta arquitectura, asegúrate de ingresar un rango de direcciones IP adecuado que sea adecuado para tu aplicación.

Para obtener detalles sobre cómo configurar un usuario de base de datos y la dirección IP para tu clúster, consulta Configura el acceso al clúster con el asistente de QuickStart en la documentación de MongoDB.

Para configurar el acceso al clúster, sigue estos pasos:

  1. En la sección Seguridad del panel de navegación izquierdo, haz clic en Guía de inicio rápido.
  2. En la página Nombre de usuario y contraseña, haz lo siguiente para crear el usuario de base de datos:
    1. En Nombre de usuario, ingresa el nombre del usuario de base de datos.
    2. En Contraseña, ingresa la contraseña del usuario de base de datos.
    3. Haz clic en Crear usuario.
  3. En la página Nombre de usuario y contraseña, haz lo siguiente para agregar una dirección IP a tu clúster:

    1. En Dirección IP, ingresa 0.0.0.0/0.

      En el entorno de producción, selecciona la dirección IP adecuada para ese entorno.

    2. En Descripción, ingresa una descripción de tu clúster (opcional).

    3. Haz clic en Agregar entrada.

  4. Haz clic en Finalizar y cerrar.

Conéctate a tu clúster.

Ahora que tienes configurado el clúster, debes conectarte a tu clúster. Si deseas obtener detalles sobre cómo conectarte a tu clúster, consulta Conéctate a tu clúster en la documentación de MongoDB.

Sigue estos pasos para conectarte a tu clúster:

  1. En la IU de Atlas, en la página Database Deployments, busca el clúster que acabas de implementar.
  2. Selecciona Conectar.
  3. En la página Conectar, haz clic en la opción Compass.
  4. Ubica el campo Copy the connection string y, luego, copia y guarda la cadena de conexión de MongoDB. Usa esta cadena de conexión mientras ejecutas las plantillas de Dataflow.

    La cadena de conexión tiene la siguiente sintaxis:

    mongodb+srv://<UserName>:<Password>@<HostName>
    

    La cadena de conexión tiene de forma automática el nombre de usuario del usuario de base de datos que creaste en el paso anterior. Sin embargo, se te solicitará la contraseña del usuario de base de datos cuando uses esta cadena para conectarte.

  5. Haz clic en Cerrar.

Crea un conjunto de datos en BigQuery

Cuando creas un conjunto de datos en BigQuery, solo tienes que ingresar un nombre del conjunto de datos y seleccionar una ubicación geográfica para el conjunto de datos. Sin embargo, hay campos opcionales que puedes configurar en tu conjunto de datos. Para obtener más información sobre esos campos opcionales, consulta Crea conjuntos de datos.

  1. En la consola de Google Cloud, ve a la página BigQuery.

    Ir a BigQuery

  2. En el panel Explorer, selecciona el proyecto en el que deseas crear el conjunto de datos.

  3. Expande la opción y haz clic en Crear conjunto de datos.

  4. En la página Crear conjunto de datos, haz lo siguiente:

    1. En ID de conjunto de datos, ingresa un nombre único para el conjunto de datos.
    2. En Tipo de ubicación, elige una ubicación geográfica para el conjunto de datos. Después de crear un conjunto de datos, la ubicación no se puede cambiar.

      Si eliges EU o una región dentro de la UE para la ubicación del conjunto de datos, tus datos principales del cliente de BigQuery residirán en esa región. Para obtener una definición de los datos principales del cliente de BigQuery, consulta Condiciones específicas del servicio.

    3. Haz clic en Crear conjunto de datos.

Crea, supervisa y valida un trabajo por lotes de Dataflow

En Dataflow, usa las siguientes instrucciones para crear un trabajo por lotes único que cargue los datos de muestra de MongoDB a BigQuery. Después de crear el trabajo por lotes, debes supervisar el progreso del trabajo en la interfaz de supervisión de Dataflow. Para obtener detalles completos sobre el uso de la interfaz de supervisión, consulta Usa la interfaz de supervisión de Dataflow.

  1. En la consola de Google Cloud, ve a la página Dataflow.

    Ir a Dataflow

  2. Haz clic en Crear trabajo a partir de una plantilla.

  3. En la página Crear un trabajo a partir de una plantilla, sigue estos pasos:

    1. En Nombre del trabajo, ingresa un nombre de trabajo único, como mongodb-to-bigquery-batch. Asegúrate de que no se ejecute ningún otro trabajo de Dataflow con ese nombre en ese proyecto.
    2. En Extremo regional, selecciona la misma ubicación que la del conjunto de datos de BigQuery que acabas de crear.
    3. En Plantilla de Dataflow, en la lista Process Data in Bulk (batch), selecciona MongoDB to BigQuery.
    4. En la sección Parámetros obligatorios, ingresa los siguientes parámetros:

      1. En MongoDB Connection URI, ingresa la cadena de conexión de Atlas MongoDB.
      2. En Mongo database, ingresa el nombre de la base de datos que creaste antes.
      3. En Mongo collection, ingresa el nombre de la colección de muestra que anotaste antes.
      4. Para la tabla de destino de BigQuery, haz clic en Explorar y, luego, selecciona la tabla de BigQuery que creaste en el paso anterior.
      5. En User option, ingresa NINGUNA o FLATTEN.

        NINGUNA cargará todo el documento en formato de cadena JSON en BigQuery. FLATTEN compacta el documento en un nivel. Si no proporcionas una UDF, la opción FLATTEN solo funciona con documentos que tienen un esquema fijo.

      6. Para iniciar el trabajo, haz clic en Ejecutar trabajo.

  4. Usa los siguientes pasos para abrir la interfaz de supervisión de Dataflow, en la que puedes verificar el progreso del trabajo por lotes y validar que el trabajo se complete sin errores:

    1. En la consola de Google Cloud, en el proyecto para esta implementación, abre el menú de navegación.
    2. En Analytics, haz clic en Dataflow.
  5. Una vez que la canalización se ejecute de forma correcta, haz lo siguiente para validar el resultado de la tabla:

    1. En BigQuery, abre el panel Explorer.
    2. Expande tu proyecto, haz clic en el conjunto de datos y haz doble clic en la tabla.

      Ahora deberías poder ver los datos de MongoDB en la tabla.

Realiza una limpieza

Para evitar que se apliquen cargos a las cuentas de MongoDB y Google Cloud, debes pausar o finalizar el clúster de MongoDB Atlas y borrar el proyecto de Google Cloud que creaste para esta arquitectura de referencia.

Pausa o finaliza el clúster de MongoDB Atlas

En el siguiente procedimiento, se proporcionan los conceptos básicos para pausar tu clúster. Para ver todos los detalles, consulta Pausa, reanuda o termina un clúster en la documentación de MongoDB.

  1. En la IU de Atlas, ve a la página Database Deployments de tu proyecto de Atlas.
  2. En el clúster que deseas pausar, haz clic en .
  3. Haz clic en Pause Cluster.
  4. Haz clic en Pause Cluster para confirmar tu elección.

Borra el proyecto

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

¿Qué sigue?

  • Busca las plantillas de Google Dataflow en GitHub si deseas personalizar las plantillas.
  • Obtén más información sobre las soluciones de MongoDB Atlas y Google Cloud en Cloud skill boost.
  • Obtén más información sobre los productos de Google Cloud que se usan en esta arquitectura de referencia:
  • Para obtener más información sobre las arquitecturas de referencia, los diagramas y las prácticas recomendadas, explora Cloud Architecture Center.

Colaboradores

Autores:

Otros colaboradores: