Trabajar con conexiones MongoDB en trabajos de ETL - AWS Glue

Trabajar con conexiones MongoDB en trabajos de ETL

Puede crear una conexión para MongoDB y luego usar esa conexión en su trabajo de AWS Glue. Para obtener más información, consulte Conexiones a MongoDB en la guía de progrmación de AWS Glue. La url, el username y la password de la conexión se almacenan en la conexión de MongoDB. Se pueden especificar otras opciones en el script de trabajo de ETL mediante el parámetro additionalOptions de glueContext.getCatalogSource. Las otras opciones pueden incluir lo siguiente:

  • database: (obligatorio) la base de datos de MongoDB de la que se va a leer.

  • collection: (obligatorio) la colección de MongoDB de la que se va a leer.

Al colocar la información de database y collection dentro del script de trabajo de ETL, puede utilizar la misma conexión para varios trabajos.

  1. Creación de una conexión de AWS Glue Data Catalog para el origen de datos MongoDB. Consulte "connectionType": "mongodb" para ver una descripción de los parámetros de conexión. Puede crear la conexión mediante la consola, las API o CLI.

  2. Cree una base de datos en AWS Glue Data Catalog para almacenar las definiciones de la tabla para sus datos de MongoDB. Para obtener más información, consulte Creación de bases de datos.

  3. Cree un rastreador que rastree los datos en MongoDB usando la información en la conexión para conectarse a MongoDB. El rastreador crea las tablas en AWS Glue Data Catalog, que describen las tablas en la base de datos MongoDB que usa en su trabajo. Para obtener más información, consulte Uso de rastreadores para completar el Catálogo de datos .

  4. Cree un trabajo con un script personalizado. Puede crear un trabajo mediante la consola, la API o CLI. Para obtener más información, consulte Agregar trabajos en AWS Glue.

  5. Elija los destinos de datos para su trabajo. Las tablas que representan el destino de datos se pueden definir en el Data Catalog, o bien, el trabajo puede crear las tablas de destino cuando se ejecute. El usuario elige la ubicación de destino al crear el trabajo. Si el destino requiere una conexión, esta también estará referenciada en el trabajo. Si el trabajo requiere varios destinos de datos, puede agregarlos más tarde al editar el script.

  6. Personalice el entorno de procesamiento del flujo de trabajo mediante argumentos para el flujo de trabajo y el script que se generó.

    A continuación, se muestra un ejemplo de creación de un DynamicFrame desde la base de datos MongoDB en función de la estructura de la tabla definida en el Data Catalog. El código utiliza additionalOptions para proporcionar la información adicional del origen de datos:

    Scala
    val resultFrame: DynamicFrame = glueContext.getCatalogSource( database = catalogDB, tableName = catalogTable, additionalOptions = JsonOptions(Map("database" -> DATABASE_NAME, "collection" -> COLLECTION_NAME)) ).getDynamicFrame()
    Python
    glue_context.create_dynamic_frame_from_catalog( database = catalogDB, table_name = catalogTable, additional_options = {"database":"database_name", "collection":"collection_name"})
  7. Ejecute el trabajo, ya sea bajo demanda o a través de un desencadenador.