Utilisation des connexions MongoDB dans les tâches ETL - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation des connexions MongoDB dans les tâches ETL

Vous pouvez créer une connexion pour MongoDB, puis utiliser cette connexion dans votre tâche AWS Glue. Pour plus d'informations, consultez Connexions MongoDB dans le Guide de programmation AWS Glue. Les connexions url, username et password sont stockées dans la connexion MongoDB. D'autres options peuvent être spécifiées dans votre script de tâche ETL à l'aide du paramètre additionalOptions de glueContext.getCatalogSource. Les autres options peuvent inclure :

  • database: (Obligatoire) La base de données MongoDB à lire.

  • collection : (Obligatoire) La collection MongoDB à lire.

En plaçant les informations database et collection dans le script de tâche ETL, vous pouvez utiliser la même connexion pour plusieurs tâches.

  1. Création d'une connexion AWS Glue Data Catalog pour la source de données MongoDB. Consultez "connectionType": "mongodb" pour obtenir une description des paramètres de connexion. Vous pouvez créer la connexion à l'aide de la console, des API ou de la CLI.

  2. Créez une base de données dans AWS Glue Data Catalog pour stocker les définitions de table pour vos données MongoDB. Pour en savoir plus, consultez Création de bases de données.

  3. Créez un crawler qui explore les données dans MongoDB en utilisant les informations de la connexion pour se connecter à MongoDB. L'crawler crée les tables dans AWS Glue Data Catalog qui décrivent celles de la base de données MongoDB que vous utilisez dans votre tâche. Pour en savoir plus, consultez Utilisation de robots d'exploration pour alimenter le catalogue de données .

  4. Créez une tâche avec un script personnalisé. Vous pouvez créer la tâche à l'aide de la console, des API ou de la CLI. Pour plus d'informations, consultez Ajout de tâches dans AWS Glue.

  5. Choisissez les cibles de données de votre tâche. Les tables qui représentent les données cible peuvent être définies dans votre catalogue de données ou votre tâche peut créer les tables cible lors son exécution. Vous choisissez un emplacement cible lorsque vous créez la tâche. Si la cible nécessite une connexion, la connexion est également référencée dans votre tâche. Si votre tâche nécessite plusieurs cibles de données, vous pouvez les ajouter ensuite en modifiant le script.

  6. Personnalisez l'environnement de traitement de tâche en fournissant des arguments pour votre tâche et le script généré.

    Voici un exemple de création de DynamicFrame à partir de la base de données MongoDB basée sur la structure de table définie dans le catalogue de données. Le code utilise additionalOptions pour fournir les informations supplémentaires sur la source de données :

    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. Exécutez la tâche, à la demande ou via un déclencheur..