Azure SQL 連線 - AWS Glue

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Azure SQL 連線

您可以使用 AWS Glue for Spark 從 AWS Glue 4.0 及更新版本中的 Azure SQL 受管執行個體讀取和寫入資料表。您可以使用 SQL 查詢定義要從 Azure SQL 讀取的內容。您可以使用透過 AWS Glue 連線儲存於 AWS Secrets Manager 的使用者和密碼憑證來連線至 Azure SQL。

如需有關 Azure SQL 的詳細資訊,請參閱 Azure SQL 文件

設定 Azure SQL 連線

若要從 AWS Glue 連線至 Azure SQL,您將需要在 AWS Secrets Manager 密碼中建立並儲存 Azure SQL 憑證,然後將該密碼與 Azure SQL AWS Glue 連線建立關聯。

設定連至 Azure SQL 的連線:
  1. 在 AWS Secrets Manager 中,使用您的 Azure SQL 憑證建立密碼。若要在 Secrets Manager 中建立機密,請遵循 AWS Secrets Manager 文件中建立 AWS Secrets Manager 機密中提供的教學課程。建立機密之後,請保留機密名稱 secretName,以便進行下一個步驟。

    • 在選取鍵/值組時,請使用 azuresqlUsername 值來建立 user 金鑰對。

    • 在選取鍵/值組時,請使用 azuresqlPassword 值來建立 password 金鑰對。

  2. 在 AWS Glue 主控台中,依照 新增 AWS Glue 連線 中的步驟建立連線。建立連線之後,請保留連線名稱 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 文件

    • 選取 AWS 機密時,請提供 secretName

建立 AWS Glue Azure SQL 連線之後,您將需要執行下列步驟,才能執行 AWS Glue 工作:

  • 授予與您 AWS Glue 任務許可相關聯的 IAM 角色,以讀取 secretName

  • 在您的 AWS Glue 任務組態中,提供 connectionName 作為其他網路連線

從 Azure SQL 資料表讀取

先決條件:

  • 您想要讀取的 Azure SQL 資料表。您將需要資料表的識別資訊 databaseNametableIdentifier

    Azure SQL 資料表由資料庫、結構描述及資料表名稱識別。連線至 Azure SQL 時,您必須提供資料庫名稱和資料表名稱。如果結構描述不是預設的 "public",您也必須提供結構描述。資料庫會透過 connectionName 中的 URL 屬性提供,而結構描述和資料表名稱會透過 dbtable 提供。

  • 完成設定的 AWS Glue Azure SQL 連線,可提供驗證資訊。完成上一個程序設定連至 Azure SQL 的連線的步驟,以設定驗證資訊。您將會需要 AWS 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。如果資料表已具有資訊,則 AWS Glue 會從 DynamicFrame 附加資料。

先決條件:

  • 您想要寫入的 Azure SQL 資料表。您將需要資料表的識別資訊 databaseNametableIdentifier

    Azure SQL 資料表由資料庫、結構描述及資料表名稱識別。連線至 Azure SQL 時,您必須提供資料庫名稱和資料表名稱。如果結構描述不是預設的 "public",您也必須提供結構描述。資料庫會透過 connectionName 中的 URL 屬性提供,而結構描述和資料表名稱會透過 dbtable 提供。

  • Azure SQL 驗證資訊。完成上一個程序設定連至 Azure SQL 的連線的步驟,以設定驗證資訊。您將會需要 AWS Glue 連線的名稱,connectionName

例如:

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

Azure SQL 連線選項參考

  • connectionName – 必要。用於讀取/寫入。完成設定之 AWS Glue Azure SQL 連線的名稱,可向連線方法提供驗證資訊。

  • databaseName:用於讀取/寫入。有效值:Azure SQL 資料庫名稱。要連線之 Azure SQL 的資料庫名稱。

  • dbtable:除非已提供 query,否則為寫入和讀取的必要項目。用於讀取/寫入。有效值:Azure SQL 資料表的名稱,或句點分隔的結構描述/資料表名稱組合。用於指定識別要連線之資料表的資料表和結構描述。預設結構描述為 "public"。如果您的資料表位於非預設的結構描述中,請在表單 schemaName.tableName 中提供此資訊。

  • query – 用於讀取。定義從 Azure SQL 讀取時應擷取之內容的 Transact-SQL SELECT 查詢。如需詳細資訊,請參閱 Microsoft 文件