

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

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

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

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

# 创建 SAP HANA 连接
<a name="creating-saphana-connection"></a>

要从 AWS Glue 连接到 SAP HANA，您需要创建 SAP HANA 凭证并将其存储在某个 AWS Secrets Manager 密钥中，然后将该密钥关联到某个 SAP HANA AWS Glue 连接。您需要配置 SAP HANA 服务与 AWS Glue 之间的网络连接。

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

  在 Amazon VPC 中，确定或创建 AWS Glue 将在执行作业时使用的 **VPC**、**子网**和**安全组**。此外，您的 Amazon VPC 配置需要允许您的 SAP HANA 端点与该位置之间的网络流量。您的作业需要与您的 SAP HANA JDBC 端口建立 TCP 连接。有关 SAP HANA 端口的更多信息，请参阅 [SAP HANA 文档](https://help.sap.com/docs/HANA_SMART_DATA_INTEGRATION/7952ef28a6914997abc01745fef1b607/88e2e8bded9e4041ad3ad87dc46c7b55.html?locale=en-US)。根据您的网络布局，这可能需要更改安全组规则、网络 ACL、NAT 网关和对等连接。

**配置 SAP HANA 连接：**

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

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

     SAP HANA JDBC URL 的格式为 `jdbc:sap://saphanaHostname:saphanaPort/?databaseName=saphanaDBname,ParameterName=ParameterValue`

     AWS Glue 需要以下 JDBC URL 参数：
     + `databaseName` – SAP HANA 中要连接的默认数据库。
   + 选择 **AWS 密钥**时，请提供 *secretName*。

创建 AWS Glue SAP HANA 连接后，您需要完成以下操作，然后才能运行 AWS Glue 作业：
+ 向与您的 AWS Glue 作业关联的 IAM 角色授予读取 *secretName* 的权限。

# 创建 SAP HANA 源节点
<a name="creating-saphana-source-node"></a>

## 所需的先决条件
<a name="creating-saphana-source-node-prerequisites"></a>
+ 使用 AWS Secrets Manager 密钥配置的 AWS Glue SAP HANA 连接，如上一节“[创建 SAP HANA 连接](creating-saphana-connection.md)”中所述。
+ 对您的作业具有读取连接使用的密钥的相应权限。
+ 您要读取的 SAP HANA 表 *tableName* 或查询 *targetQuery*。

  可以使用 SAP HANA 表名和 Schema 名（格式为 `schemaName.tableName`）来指定表。如果表的 Schema 为默认的“public”，则不需要指定 Schema 名和“.”分隔符。调用此 *tableIdentifier* 操作。请注意，数据库在 `connectionName` 中是以 JDBC URL 参数的形式提供的。

## 添加 SAP HANA 数据来源
<a name="creating-saphana-source-node-add"></a>

**添加**数据来源 - SAP HANA** 节点：**

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

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

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

1.  如果您选择单个表，请输入 *tableName*。

    如果选择**输入自定义查询**，请输入一个 SQL SELECT 查询。

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

# 创建 SAP HANA 目标节点
<a name="creating-saphana-target-node"></a>

## 所需的先决条件
<a name="creating-saphana-target-node-prerequisites"></a>
+ 使用 AWS Secrets Manager 密钥配置的 AWS Glue SAP HANA 连接，如上一节“[创建 SAP HANA 连接](creating-saphana-connection.md)”中所述。
+ 对您的作业具有读取连接使用的密钥的相应权限。
+ 您要写入的 SAP HANA 表 *tableName*。

  可以使用 SAP HANA 表名和 Schema 名（格式为 `schemaName.tableName`）来指定表。如果表的 Schema 为默认的“public”，则不需要指定 Schema 名和“.”分隔符。调用此 *tableIdentifier* 操作。请注意，数据库在 `connectionName` 中是以 JDBC URL 参数的形式提供的。

## 添加 SAP HANA 数据目标
<a name="creating-saphana-target-node-add"></a>

**添加**数据目标 - SAP HANA** 节点：**

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

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

1. 要配置**表名**，请提供 *tableName*。

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

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

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

请参阅[SAP HANA 连接](aws-glue-programming-etl-connect-saphana-home.md)。