Uso de una conexión de MongoDB - AWS Glue

Uso de una conexión de MongoDB

Después de crear una conexión para MongoDB, puede usar esta conexión en su trabajo de ETL. Puede crear una tabla en la AWS Glue Data Catalog y especificar la conexión de MongoDB para el atributo connection de la tabla. La url, el username y la password de conexión se almacenan en la conexión de MongoDB. Se pueden especificar otras opciones en el script de trabajo como opciones adicionales. 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.

  • "ssl": (opcional) si es true, AWS Glue inicia una conexión SSL. El valor predeterminado es false.

  • "ssl.domain_match": (opcional) si es true y ssl es true, AWS Glue realiza la comprobación de coincidencia de dominio. El valor predeterminado es true.

  • "batchSize": (opcional): el número de documentos que se deben devolver por lote, que se utilizan dentro del cursor de lotes internos.

  • "partitioner": (opcional): el nombre de la clase del particionador para leer los datos de entrada de MongoDB. El conector proporciona los siguientes particionadores:

    • MongoDefaultPartitioner (predeterminado)

    • MongoSamplePartitioner (Requiere MongoDB 3.2 o posterior)

    • MongoShardedPartitioner

    • MongoSplitVectorPartitioner

    • MongoPaginateByCountPartitioner

    • MongoPaginateBySizePartitioner

  • "partitionerOptions": ( opcional) opciones para el particionador designado. Se admiten las siguientes opciones para cada particionador:

    • MongoSamplePartitioner: partitionKey, partitionSizeMB y samplesPerPartition

    • MongoShardedPartitionershardkey

    • MongoSplitVectorPartitioner: partitionKey y partitionSizeMB

    • MongoPaginateByCountPartitioner: partitionKey y numberOfPartitions

    • MongoPaginateBySizePartitioner: partitionKey y partitionSizeMB

Para obtener más información sobre estas opciones, consulte https://docs.mongodb.com/spark-connector/master/configuration/#partitioner-conf.

Los siguientes ejemplos muestran cómo obtener un DynamicFrame desde el origen del catálogo.

Python
glue_context.create_dynamic_frame_from_catalog( database = nameSpace, table_name = tableName, additional_options = {"database":"database_name", "collection":"collection_name"})
Scala
val resultFrame: DynamicFrame = glueContext.getCatalogSource( database = nameSpace, tableName = tableName, additionalOptions = JsonOptions(Map("database" -> DATABASE_NAME, "collection" -> COLLECTION_NAME)) ).getDynamicFrame()