

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

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

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

# 创建 Azure SQL 连接
<a name="creating-azuresql-connection"></a>

要从 AWS Glue 连接到 Azure SQL，您需要创建 Azure SQL 凭证并将其存储在一个 AWS Secrets Manager 密钥中，然后将该密钥关联到某个 Azure SQL AWS Glue 连接。

**配置 Azure SQL 连接：**

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

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

      该 URL 必须为以下格式：`jdbc:sqlserver://databaseServerName:databasePort;databaseName=azuresqlDBname;`。

     AWS Glue 需要以下 URL 属性：
     + `databaseName` – Azure SQL 中要连接的默认数据库。

     有关 Azure SQL 托管实例的 JDBC URL 的更多信息，请参阅 [Microsoft 文档](https://learn.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url?view=azuresqldb-mi-current)。
   + 选择 **AWS 密钥**时，请提供 *secretName*。

# 创建 Azure SQL 源节点
<a name="creating-azuresql-source-node"></a>

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

  Azure SQL 表由其数据库、Schema 和表名来标识。连接到 Azure SQL 时，必须提供数据库名和表名。如果 Schema 不是默认值“public”，则还必须提供 Schema。数据库通过 *connectionName* 中的 URL 属性来提供，Schema 和表名通过 `dbtable` 来提供。

## 添加 Azure SQL 数据来源
<a name="creating-azuresql-source-node-add"></a>

**添加**数据来源 – Azure SQL** 节点：**

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

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

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

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

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

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

# 创建 Azure SQL 目标节点
<a name="creating-azuresql-target-node"></a>

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

  Azure SQL 表由其数据库、Schema 和表名来标识。连接到 Azure SQL 时，必须提供数据库名和表名。如果 Schema 不是默认值“public”，则还必须提供 Schema。数据库通过 *connectionName* 中的 URL 属性来提供，Schema 和表名通过 `dbtable` 来提供。

## 添加 Azure SQL 数据目标
<a name="creating-azuresql-target-node-add"></a>

**添加**数据目标 – Azure SQL** 节点：**

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

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

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

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

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

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

请参阅[Azure SQL 连接](aws-glue-programming-etl-connect-azuresql-home.md)。