在 ETL 作业中使用 MongoDB 连接 - Amazon连接词
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 ETL 作业中使用 MongoDB 连接

您可以为 MongoDB 创建连接,然后在Amazon Glue任务。该连接urlusernamepassword存储在 MongoDB 连接中。其他选项可以在 ETL 作业脚本中使用additionalOptions参数glueContext.getCatalogSource。其他选项可以包括:

  • database:(必需)要从中读取数据的 MongoDB 数据库。

  • collection:(必需)要从中读取数据的 MongoDB 集合。

通过将databasecollection信息,则可以在多个作业中使用相同的连接。

  1. 创建Amazon Glue Data Catalog连 MongoDB。请参阅"connectionType": "mongodb"以获取连接参数的说明。您可以使用控制台、API 或 CLI 创建连接。

  2. 在中创建数据库Amazon Glue Data Catalog来存储 MongoDB 数据的表定义。参阅 在数据目录中定义数据库 了解更多信息。

  3. 创建一个抓取程序,使用连接中的信息对 MongoDB 中的数据进行爬网以连接到 MongoDB。该爬网程序将在Amazon Glue Data Catalog,它描述了您在作业中使用的 MongoDB 数据库中的表。参阅 定义爬网程序 了解更多信息。

  4. 使用自定义脚本创建作业。您可以使用控制台、API 或 CLI 创建作业。有关更多信息,请参阅在 Amazon Glue 中添加作业

  5. 为您的作业选择数据目标。表示数据目标的表可以在数据目录中定义,或者您的作业可以在运行时创建目标表。在编写作业时,您会选择目标位置。如果目标需要连接,连接也会在您的作业中被引用。如果您的作业需要多个数据目标,您可以稍后通过编辑脚本来添加这些数据目标。

  6. 通过为作业和生成的脚本提供参数,您可以自定义作业处理环境。

    下面是一个创建DynamicFrame基于在数据目录中定义的表结构的 MongoDB 数据库。该代码使用additionalOptions以提供其他数据源信息:

    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. 按需运行或通过触发器运行作业。