

# 在 AWS Glue Studio 中连接到 Vertica
<a name="connecting-to-data-vertica"></a>

 AWS Glue 提供对 Vertica 的内置支持。AWS Glue Studio 提供一个可视化界面，用于连接到 Vertica、编写数据集成作业并在 AWS Glue Studio 无服务器 Spark 运行时系统上运行这些作业。

 AWS Glue Studio 为 Vertica 创建统一连接。有关更多信息，请参阅 [注意事项](using-connectors-unified-connections.md#using-connectors-unified-connections-considerations)。

**Topics**
+ [创建 Vertica 连接](creating-vertica-connection.md)
+ [创建 Vertica 源节点](creating-vertica-source-node.md)
+ [创建 Vertica 目标节点](creating-vertica-target-node.md)
+ [高级选项](#creating-vertica-connection-advanced-options)

# 创建 Vertica 连接
<a name="creating-vertica-connection"></a>

**先决条件**
+ 读取和写入数据库时用于临时存储的 Amazon S3 存储桶或文件夹，也称为 *tempS3Path*。
**注意**  
在 AWS Glue 任务数据预览中使用 Vertica 时，临时文件可能不会自动从 *tempS3Path* 中删除。为确保删除临时文件，请在**数据预览**窗格中选择**结束会话**，以直接结束数据预览会话。  
如果无法保证数据预览会话直接结束，请考虑将 Amazon S3 生命周期配置设置为删除旧数据。我们建议根据最大作业运行时间加一定的裕度移除已存在超过 49 小时的数据。有关配置 Amazon S3 生命周期的更多信息，请参阅 Amazon S3 文档中的 [管理存储生命周期](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html)。
+ 对您的 Amazon S3 路径具有适当权限，并且您可以将其关联到您的 AWS Glue 作业角色的 IAM policy。
+ 如果您的 Vertica 实例位于某个 Amazon VPC 中，请确保您的 Amazon VPC 配置允许您的 AWS Glue 作业与 Vertica 实例进行通信，并且无需通过公共互联网路由流量。

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

**配置 Vertica 连接：**

1. 在 AWS Secrets Manager 中，使用您的 Vertica 凭证 *verticaUsername* 和 *verticaPassword* 创建一个密钥。要在 Secrets Manager 中创建密钥，请按照 AWS Secrets Manager 文档中[创建 AWS Secrets Manager 密钥](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html)中的教程进行操作。创建密钥后，保留密钥名称 *secretName*，以供下一步使用。
   + 在选择**键/值对**时，请使用键 `user` 和值 *verticaUsername* 创建一个键值对。
   + 在选择**键/值对**时，请使用键 `password` 和值 *verticaPassword* 创建一个键值对。

1. 在 AWS Glue 控制台中，按照 [添加 AWS Glue 连接](console-connections.md) 中的步骤创建一个连接。创建连接后，保留连接名称 *connectionName*，以供下一步使用。
   + 选择**连接类型**时，请选择 Vertica。
   + 选择 **Vertica 主机**时，请提供您安装了 Vertica 的主机名。
   + 选择 **Vertica 端口**时，请提供可用于访问 Vertica 安装的端口。
   + 选择 **AWS 密钥**时，请提供 *secretName*。

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

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

您需要首先完成以下步骤，然后才能运行 AWS Glue 作业：
+ 向与您的 AWS Glue 作业关联的 IAM 角色授予对 *tempS3Path* 的权限。
+ 向与您的 AWS Glue 作业关联的 IAM 角色授予读取 *secretName* 的权限。

# 创建 Vertica 源节点
<a name="creating-vertica-source-node"></a>

## 所需的先决条件
<a name="creating-vertica-source-node-prerequisites"></a>
+ 一个 Vertica 类型的 AWS Glue Data Catalog 连接 *connectionName* 和一个临时 Amazon S3 位置 *tempS3Path*，如上一节“[创建 Vertica 连接](creating-vertica-connection.md)”所述。
+ 您要读取的 Vertica 表 *tableName* 或查询 *targetQuery*。

## 添加 Vertica 数据来源
<a name="creating-vertica-source-node-add"></a>

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

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

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

1. 选择包含您的表的**数据库**。

1. 选择 **Amazon S3 中的暂存区域**，然后在 *tempS3Path* 中输入一个 S3A URI。

1. 选择 **Vertica 源**。
   +  **选择单个表** – 访问单个表中的所有数据。
   +  **输入自定义查询** - 允许您根据自定义查询访问多个表中的数据集。

1.  如果您选择单个表，请输入 *tableName*，此外还可以选择一个 **Schema**。

    如果选择**输入自定义查询**，请输入一个 SQL SELECT 查询，此外还可以选择一个 **Schema**。

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

# 创建 Vertica 目标节点
<a name="creating-vertica-target-node"></a>

## 所需的先决条件
<a name="creating-vertica-target-node-prerequisites"></a>
+ 一个 Vertica 类型的 AWS Glue Data Catalog 连接 *connectionName* 和一个临时 Amazon S3 位置 *tempS3Path*，如上一节“[创建 Vertica 连接](creating-vertica-connection.md)”所述。

## 添加 Vertica 数据目标
<a name="creating-vertica-target-node-add"></a>

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

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

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

1. 选择包含您的表的**数据库**。

1. 选择 **Amazon S3 中的暂存区域**，然后在 *tempS3Path* 中输入一个 S3A URI。

1. 输入 *tableName*，此外还可以选择一个 **Schema**。

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

## 高级选项
<a name="creating-vertica-connection-advanced-options"></a>

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

请参阅[Vertica 连接](aws-glue-programming-etl-connect-vertica-home.md)。