Azure SQL 连接 - Amazon Glue
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Azure SQL 连接

在 Amazon Glue 4.0 及更高版本中,您可以使用 Amazon Glue for Spark 来读取和写入 Azure SQL 托管实例中的表。您可以使用 SQL 查询来定义要从 Azure SQL 中读取的信息。您可以通过 Amazon Glue 连接并使用存储在 Amazon Secrets Manager 中的用户名和密码凭证连接到 Azure SQL。

有关 Azure SQL 的更多信息,请参阅 Azure SQL 文档

配置 Azure SQL 连接

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

配置 Azure SQL 连接:
  1. 在 Amazon Secrets Manager 中,使用您的 Azure SQL 凭证创建密钥。要在 Secrets Manager 中创建密钥,请按照 Amazon Secrets Manager 文档中创建 Amazon Secrets Manager 密钥中的教程进行操作。创建密钥后,保留密钥名称 secretName,以供下一步使用。

    • 在选择键/值对时,请使用键 user 和值 azuresqlUsername 创建一个键值对。

    • 在选择键/值对时,请使用键 password 和值 azuresqlPassword 创建一个键值对。

  2. 在 Amazon Glue 控制台中,按照 添加 Amazon Glue 连接 中的步骤创建一个连接。创建连接后,保留连接名为 connectionName,以供未来在 Amazon Glue 中使用。

    • 选择连接类型时,请选择 Azure SQL。

    • 在提供 Azure SQL URL 时,请提供 JDBC 端点的 URL。

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

      Amazon Glue 需要以下 URL 属性:

      • databaseName – Azure SQL 中要连接的默认数据库。

      有关 Azure SQL 托管实例的 JDBC URL 的更多信息,请参阅 Microsoft 文档

    • 选择 Amazon 密钥时,请提供 secretName

创建 Amazon Glue Azure SQL 连接后,您需要完成以下操作,然后才能运行 Amazon Glue 作业:

  • 向与您的 Amazon Glue 作业关联的 IAM 角色授予读取 secretName 的权限。

  • 在 Amazon Glue 作业配置中,提供 connectionName 作为附加网络连接

读取 Azure SQL 表

先决条件:

  • 您要读取的 Azure SQL 表。您将需要表的标识信息 databaseNametableIdentifier

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

  • 为了提供身份验证信息而配置的 Amazon Glue Azure SQL 连接。完成上一节“配置 Azure SQL 连接”中的步骤,以配置您的身份验证信息。您需要 Amazon Glue 连接的名称 connectionName

例如:

azuresql_read_table = glueContext.create_dynamic_frame.from_options( connection_type="azuresql", connection_options={ "connectionName": "connectionName", "dbtable": "tableIdentifier" } )

您还可以提供 SELECT SQL 查询来筛选返回到 DynamicFrame 的结果。您将需要配置 query

例如:

azuresql_read_query = glueContext.create_dynamic_frame.from_options( connection_type="azuresql", connection_options={ "connectionName": "connectionName", "query": "query" } )

写入 Azure SQL 表

此示例会将来自现有 DynamicFrame dynamicFrame 的信息写入 Azure SQL。如果表中已经含有信息,Amazon Glue 会将来自 DynamicFrame 的数据附加到现有信息之后。

先决条件:

  • 您要写入的 Azure SQL 表。您将需要表的标识信息 databaseNametableIdentifier

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

  • Azure SQL 身份验证信息。完成上一节“配置 Azure SQL 连接”中的步骤,以配置您的身份验证信息。您需要 Amazon Glue 连接的名称 connectionName

例如:

azuresql_write = glueContext.write_dynamic_frame.from_options( connection_type="azuresql", connection_options={ "connectionName": "connectionName", "dbtable": "tableIdentifier" } )

Azure SQL 连接选项参考

  • connectionName – 必需。用于读/写。为了向您的连接方法提供身份验证信息而配置的 Amazon Glue Azure SQL 连接的名称。

  • databaseName - 用于读/写。有效值:Azure SQL 数据库名。要连接的 Azure SQL 数据库的名称。

  • dbtable – 对于写入为必填项,对于读取也为必填项,但提供了 query 时除外。用于读/写。有效值:Azure SQL 表名或用句点分隔的 Schema 名/表名组合。用于指定表和 Schema,以标识要连接的表。默认 Schema 为“public”。如果您的表并非使用默认 Schema,请在表单 schemaName.tableName 中提供此信息。

  • query – 用于读取。用来定义从 Azure SQL 读取数据时要检索的内容的 Transact-SQL SELECT 查询。有关更多信息,请参阅 Microsoft 文档