

# 在 Amazon Glue Studio 中连接到 MongoDB
连接到 MongoDB

 Amazon Glue 提供了对 MongoDB 的内置支持。Amazon Glue Studio 提供了直观的界面，以用于连接到 MongoDB、编写数据集成作业以及在 Amazon Glue Studio 无服务器 Spark 运行时系统上运行这些作业。

**Topics**
+ [

# 创建 MongoDB 连接
](creating-mongodb-connection.md)
+ [

# 创建 MongoDB 源节点
](creating-mongodb-source-node.md)
+ [

# 创建 MongoDB 目标节点
](creating-mongodb-target-node.md)
+ [

## 高级选项
](#creating-mongodb-connection-advanced-options)

# 创建 MongoDB 连接


**先决条件：**
+ 如果您的 MongoDB 实例位于某个 Amazon VPC 中，请确保您的 Amazon VPC 配置允许您的 Amazon Glue 作业与 MongoDB 实例进行通信，并且无需通过公共互联网路由流量。

  在 Amazon VPC 中，确定或创建 Amazon Glue 将在执行作业时使用的 **VPC**、**子网**和**安全组**。此外，您的 Amazon VPC 配置需要允许您的 MongoDB 实例与该位置之间的网络流量。根据您的网络布局，这可能需要更改安全组规则、网络 ACL、NAT 网关和对等连接。

**配置 MongoDB 连接：**

1. 您还可以在 Amazon Secrets Manager 中使用您的 MongoDB 凭证创建密钥。要在 Secrets Manager 中创建密钥，请按照 Amazon Secrets Manager 文档中[创建 Amazon Secrets Manager 密钥](https://docs.amazonaws.cn//secretsmanager/latest/userguide/create_secret.html)中的教程进行操作。创建密钥后，保留密钥名称 *secretName*，以供下一步使用。
   + 在选择**键/值对**时，请使用键 `username` 和值 *mongodbUser* 创建一个键值对。

     在选择**键/值对**时，请使用键 `password` 和值 *mongodbPass* 创建一个键值对。

1. 在 Amazon Glue 控制台中，按照 [添加 Amazon Glue 连接](console-connections.md) 中的步骤创建一个连接。创建连接后，保留连接名为 *connectionName*，以供未来在 Amazon Glue 中使用。
   + 选择**连接类型**时，请选择 **MongoDB** 或 **MongoDB Atlas**。
   + 选择 **MongoDB URL** 或 **MongoDB Atlas URL** 时，请提供 MongoDB 实例的主机名。

     MongoDB URL 的格式为 `mongodb://mongoHost:mongoPort/mongoDBname`。

     MongoDB Atlas URL 的格式为 `mongodb+srv://mongoHost/mongoDBname`。
   + 如果您选择创建 Secrets Manager 密钥，请选择 Amazon Secrets Manager **凭证类型**。

     然后在 **Amazon密钥**中提供 *secretName*。
   + *如果您选择提供**用户名和密码**，请提供 *mongodbUser* 和 mongodbPass*。

1. 对于下列情况，您可能需要添加额外的配置：
   + 

     对于通过 Amazon VPC 在 Amazon 云端托管的 MongoDB 实例
     + 您需要向 Amazon Glue 连接提供用于定义 MongoDB 安全凭证的 Amazon VPC 连接信息。创建或更新连接时，请在**网络选项**中设置 **VPC**、**子网**和**安全组**。

创建 Amazon Glue MongoDB 连接后，您需要完成以下操作，然后才能运行 Amazon Glue 作业：
+ 在可视化编辑器中处理 Amazon Glue 作业时，您必须提供作业的 Amazon VPC 连接信息，才能连接到 MongoDB。确定 Amazon VPC 中的适当位置并将其提供给您的 Amazon Glue MongoDB 连接。
+ 如果您选择创建 Secrets Manager 密钥，请向与您的 Amazon Glue 作业关联的 IAM 角色授予读取 *secretName* 的权限。

# 创建 MongoDB 源节点


## 所需的先决条件

+ 一个 Amazon Glue MongoDB 连接，如上一节“[创建 MongoDB 连接](creating-mongodb-connection.md)”所述。
+ 如果您选择创建 Secrets Manager 密钥，则需要提供对您的作业具有读取连接使用的密钥的相应权限。
+ 您要读取的 MongoDB 集合。您将需要该集合的标识信息。

  MongoDB 集合由数据库名 *mongodbName* 和集合名 *mongodbCollection* 来标识。

## 添加 MongoDB 数据来源


**添加**数据来源 - MongoDB** 节点：**

1.  选择 MongoDB DB 数据来源的连接。由于您已经创建了它，它应该提供在下拉列表中。如果需要创建连接，请选择**创建 MongoDB 连接**。有关更多信息，请参阅之前的 [创建 MongoDB 连接](creating-mongodb-connection.md) 部分。

    选择连接后，您可以通过单击**查看属性**来查看连接属性。

1. 选择一个**数据库**。输入 *mongodbName*。

1. 选择一个**集合**。进入 *mongodbCollection*。

1. 选择**分区程序**、**分区大小（MB）**和**分区键**。有关分区参数的更多信息，请参阅 ["connectionType": "mongodb" as Source](aws-glue-programming-etl-connect-mongodb-home.md#etl-connect-mongodb-as-source)。

1.  在**自定义 Azure MongoDB 属性**中，根据需要输入相关参数和值。

# 创建 MongoDB 目标节点


## 所需的先决条件

+ 使用 Amazon Secrets Manager 密钥配置的 Amazon Glue MongoDB 连接，如上一节“[创建 MongoDB 连接](creating-mongodb-connection.md)”中所述。
+ 对您的作业具有读取连接使用的密钥的相应权限。
+ 您要写入的 MongoDB 表 *tableName*。

## 添加 MongoDB 数据目标


**添加**数据目标 - MongoDB** 节点：**

1.  选择 MongoDB DB 数据来源的连接。由于您已经创建了它，它应该提供在下拉列表中。如果需要创建连接，请选择**创建 MongoDB 连接**。有关更多信息，请参阅之前的 [创建 MongoDB 连接](creating-mongodb-connection.md) 部分。

    选择连接后，您可以通过单击**查看属性**来查看连接属性。

1. 选择一个**数据库**。输入 *mongodbName*。

1. 选择一个**集合**。进入 *mongodbCollection*。

1. 选择**分区程序**、**分区大小（MB）**和**分区键**。有关分区参数的更多信息，请参阅 ["connectionType": "mongodb" as Source](aws-glue-programming-etl-connect-mongodb-home.md#etl-connect-mongodb-as-source)。

1. 在需要时选择**重试写入**。

1.  在**自定义 Azure MongoDB 属性**中，根据需要输入相关参数和值。

## 高级选项


您可以在创建 MongoDB 节点时提供高级选项。这些选项与编程 Spark 脚本的 Amazon Glue 时可用的选项相同。

请参阅[MongoDB 连接选项参考](aws-glue-programming-etl-connect-mongodb-home.md#aws-glue-programming-etl-connect-mongodb)。