Trabajar con conexiones MongoDB en trabajos de ETL - AWS Glue

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Trabajar con conexiones MongoDB en trabajos de ETL

Puede crear una conexión para MongoDB y luego usar esa conexión en suAWS GlueEl trabajo. La conexiónurl,usernameypasswordse almacenan en la conexión MongoDB. Se pueden especificar otras opciones en la secuencia de comandos de trabajo ETL mediante la herramientaadditionalOptionsParámetro deglueContext.getCatalogSource. Las otras opciones pueden incluir:

  • 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 eldatabaseycollectiondentro de la secuencia de comandos de trabajo ETL, puede utilizar la misma conexión para en varios trabajos.

  1. Creación de unAWS Glue Data Catalogpara la fuente 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 la CLI.

  2. Cree una base de datos enAWS Glue Data Catalogpara almacenar las definiciones de tabla para sus datos de MongoDB. Para obtener más información, consulte Definición de una base de datos en su catálogo de datos.

  3. Cree un rastreador que rastrea los datos en el MongoDB usando la información en la conexión para conectarse al MongoDB. El rastreador crea las tablas enAWS Glue Data Catalogque describen las tablas en la base de datos MongoDB que usa en su trabajo. Para obtener más información, consulte Definición de rastreadores.

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

  5. Elija los destinos de datos para el volumen de trabajo. Las tablas que representan el destino de datos se pueden definir en el catálogo de datos o bien, el volumen de trabajo puede crear las tablas de destino cuando se ejecute. El usuario elige la ubicación de destino al crear el flujo de trabajo. Si el destino requiere una conexión, esta también estará referenciada en el flujo de trabajo. Si el trabajo requiere varios destinos de datos, puede añadirlos más tarde editando el script.

  6. Puede personalizar el entorno de procesamiento del volumen de trabajo mediante argumentos para el proceso de trabajo y el script que se generó.

    A continuación se incluye un ejemplo de creación de unDynamicFramede la base de datos MongoDB basada en la estructura de tabla definida en el Catálogo de Datos. El código utilizaadditionalOptionspara proporcionar la información adicional de la fuente 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.