共用和接收來自 Azure SQL Database 和 Azure Synapse Analytics 的資料

適用於: Azure SQL Database Azure Synapse Analytics (先前稱為 Azure SQL DW) Azure Synapse Analytics (工作區) SQL 集區

Azure Data Share 可讓您安全地將資料快照集從 Azure SQL Database 和 Azure Synapse Analytics 資源共用至其他 Azure 訂用帳戶。 包括您的租用戶以外的 Azure 訂用帳戶。

本文說明從 Azure SQL DatabaseAzure Synapse Analytics 共用資料。

本文將引導您了解:

您可以使用目錄跳到您需要的小節,或繼續依照程序從頭到尾了解本文內容。

Image showing the data flow between data owners and data consumers.

提供哪些支援

分享資料

Azure Data Share 支援從 Azure 中的數個 SQL 資源共用完整資料快照集。 這些資源目前不支援增量快照集。

資源類型 共用資料表 共用檢視
Azure SQL Database Yes
Azure Synapse Analytics (先前稱為 Azure SQL DW) Yes Yes
Synapse Analytics (工作區) 專用的 SQL 集區 No

注意

Azure Data Share 目前不支援從這些資源共用:

  • Azure Synapse Analytics (工作區) 無伺服器 SQL 集區
  • 已設定「一律加密」的 Azure SQL 資料庫

接收資料

資料取用者可以選擇接受數個 Azure 資源的共用資料:

  • Azure Data Lake Storage Gen2
  • Azure Blob 儲存體
  • Azure SQL Database
  • Azure Synapse Analytics

Azure Data Lake Storage Gen 2Azure Blob 儲存體中的共用資料可以儲存為 csv 或 parquet 檔案。 如果已存在,完整資料快照集會覆寫目標檔案的內容。

Azure SQL DatabaseAzure Synapse Analytics 中的共用資料會儲存在資料表中。 如果目標資料表不存在,Azure Data Share 會建立具有來源結構描述的 SQL 資料表。 如果具有相同名稱的目標資料表已經存在,則會以最新的完整快照集置放並覆寫。

注意

對於具有動態資料遮罩的來源 SQL 資料表,資料會顯示在收件者端。

支援的資料類型

當您從 SQL 來源共用資料時,在快照集處理期間,會使用從 SQL Server 資料類型到 Azure Data Share 過渡期資料類型的下列對應。

注意

  1. 針對對應至 Decimal 過渡期類型的資料類型,快照集目前支援最多 28 個有效位數。 如果您的資料需要大於 28 個有效位數,請考慮轉換成字串。
  2. 如果您要將資料從 Azure SQL 資料庫共用至 Azure Synapse Analytics,則並非所有資料類型都受支援。 如需詳細資訊,請參閱專用 SQL 集區中的資料表資料類型
SQL Server 資料類型 Azure Data Share 過渡期資料類型
BIGINT Int64
BINARY Byte[]
bit Boolean
char String, Char[]
date Datetime
Datetime Datetime
datetime2 Datetime
Datetimeoffset DateTimeOffset
Decimal Decimal
FILESTREAM attribute (varbinary(max)) Byte[]
Float Double
image Byte[]
int Int32
money Decimal
NCHAR String, Char[]
ntext String, Char[]
NUMERIC Decimal
NVARCHAR String, Char[]
real Single
rowversion Byte[]
smalldatetime Datetime
SMALLINT Int16
SMALLMONEY Decimal
sql_variant Object
text String, Char[]
time TimeSpan
timestamp Byte[]
TINYINT Int16
UNIQUEIDENTIFIER Guid
varbinary Byte[]
varchar String, Char[]
xml String

共用資料的必要條件

若要從 Azure SQL 資源共用資料快照集,您必須先準備環境。 您將需要:

來源特定必要條件

共用也有一個必要條件,視您的資料來源而定。 選取您的資料共用來源,並遵循下列步驟:

從 Azure SQL Database 或 Azure Synapse Analytics (先前稱為 Azure SQL DW) 共用的必要條件

您可以使用以下其中一個方法來向 Azure SQL Database 或 Azure Synapse Analytics (先前稱為 Azure SQL DW) 進行驗證:

Microsoft Entra 驗證

這些必要條件涵蓋您需要的驗證,讓 Azure Data Share 可以與您的 Azure SQL Database 連線:

  • 您需要權限才能寫入 SQL 伺服器上的資料庫:Microsoft.Sql/servers/databases/write。 此權限存在於參與者角色中。
  • SQL Server Microsoft Entra 管理員權限。
  • SQL Server 防火牆存取:
    1. Azure 入口網站中,瀏覽至您的 SQL 伺服器。 在左側導覽中選取 [防火牆與虛擬網路]
    2. 在 [允許 Azure 服務和資源存取此伺服器] 上,選取 [是]
    3. 選取 [+ 新增用戶端 IP]。 用戶端 IP 位址可能會變更,因此您可能需要在下次從入口網站共用資料時再次新增用戶端 IP。
    4. 選取 [儲存]。

SQL 驗證

您可以遵循逐步示範影片來設定驗證,或完成下列每個必要條件:

  • 寫入 SQL 伺服器上資料庫的權限:Microsoft.Sql/servers/databases/write。 此權限存在於參與者角色中。

  • Azure Data Share 資源的受控識別用來存取資料庫的權限:

    1. Azure 入口網站中瀏覽至 SQL 伺服器,並將您自己設定為 Microsoft Entra 管理員

    2. 使用查詢編輯器或 SQL Server Management Studio 搭配 Microsoft Entra 驗證,連線到 Azure SQL Database/資料倉儲。

    3. 執行下列指令碼,將 Data Share 資源受控識別新增為 db_datareader。 使用 Active Directory 連線,而不是使用 SQL Server 驗證。

      create user "<share_acct_name>" from external provider;     
      exec sp_addrolemember db_datareader, "<share_acct_name>"; 
      

      注意

      <share_acc_name> 是您 Data Share 資源的名稱。

  • 具有 'db_datareader' 存取權的 Azure SQL Database 使用者,可瀏覽並選取您想共用的資料表或檢視。

  • SQL Server 防火牆存取:

    1. Azure 入口網站中,瀏覽到 SQL 伺服器。 在左側導覽中選取 [防火牆與虛擬網路]
    2. 在 [允許 Azure 服務和資源存取此伺服器] 上,選取 [是]
    3. 選取 [+ 新增用戶端 IP]。 用戶端 IP 位址可能會變更,因此您可能需要在下次從入口網站共用資料時再次新增用戶端 IP。
    4. 選取 [儲存]。

從 Azure Synapse Analytics (工作區) SQL 集區共用的必要條件

  • 寫入 Synapse 工作區中 SQL 集區的權限:Microsoft.Synapse/workspaces/sqlPools/write。 此權限存在於參與者角色中。

  • Data Share 資源的受控識別權限用來存取 Synapse 工作區 SQL 集區的權限:

    1. Azure 入口網站中,瀏覽至您的 Synapse 工作區。 從左側導覽中選取 [SQL Active Directory 管理員],並將您自己設定為 [Microsoft Entra 管理員]

    2. 開啟 Synapse Studio,從左側導覽中選取 [管理]。 選取 [安全性] 底下的 [存取控制]。 將您自己指派為 [SQL 管理員] 或 [工作區管理員] 角色。

    3. 在 Synapse Studio 中,從左側導覽中選取 [開發]。 在 SQL 集區中執行下列指令碼,將 Data Share 資源受控識別新增為 db_datareader。

      create user "<share_acct_name>" from external provider;     
      exec sp_addrolemember db_datareader, "<share_acct_name>"; 
      

      注意

      <share_acc_name> 是您 Data Share 資源的名稱。

  • Synapse 工作區防火牆存取:

    1. Azure 入口網站中,瀏覽至 Synapse 工作區。 從左側導覽中選取 [防火牆]
    2. 在 [允許 Azure 服務與資源能存取此工作區] 上,選取 [開啟]
    3. 選取 [+ 新增用戶端 IP]。 用戶端 IP 位址可能會變更,因此您可能需要在下次從入口網站共用資料時再次新增用戶端 IP。
    4. 選取 [儲存]。

建立共用

  1. 瀏覽至 [Data Share 概觀] 頁面。

    Screenshot showing the data share overview.

  2. 選取 [開始共用資料]

  3. 選取 建立

  4. 填寫共用的詳細資料。 指定名稱、共用類型、共用內容的說明和使用規定 (選擇性)。

    Screenshot of the share creation page in Azure Data Share, showing the share name, type, description, and terms of used filled out.

  5. 選取繼續

  6. 若要將資料集新增至共用,請選取 [新增資料集]

    Screenshot of the datasets page in share creation, the add datasets button is highlighted.

  7. 選取您想要新增的資料集類型。 根據您在先前的步驟中選取的共用類型 (快照集或就地),有不同的資料集類型清單。

    Screenshot showing the available dataset types.

  8. 選取您的 SQL 伺服器或 Synapse 工作區。 如果您使用 Microsoft Entra 驗證,且顯示 [允許 Data Share 代表我執行上述 'create user' SQL 指令碼] 核取方塊,請核取此核取方塊。 如果您使用 SQL 驗證,請提供認證,並確定您已遵循必要條件,如此您才能擁有權限。

    選取 [下一步] 以瀏覽至您想要共用的物件,然後選取 [新增資料集]。 您可以選取 Azure SQL Database 和 Azure Synapse Analytics (先前稱為 Azure SQL DW) 的資料表和檢視,或 Azure Synapse Analytics (工作區) 專用 SQL 集區的資料表。

    Screenshot showing the Azure SQL Database dataset window with a SQL server selected.

  9. 在 [收件者] 索引標籤中,藉由選取 [+ 新增收件者] 來輸入資料取用者的電子郵件地址。 電子郵件地址必須是收件者的 Azure 登入電子郵件。

    Screenshot of the recipients page, showing a recipient added.

  10. 選取繼續

  11. 如果您已選取快照集共用類型,則可以設定快照集排程,將資料的更新提供給資料取用者。

    Screenshot of the settings page, showing the snapshot toggle enabled.

  12. 選取開始時間和週期間隔。

  13. 選取繼續

  14. 在 [檢閱 + 建立] 索引標籤中,檢閱 [套件內容]、[設定]、[收件者] 及 [同步處理設定]。 選取 建立

Azure Data Share 現已建立完成,而且 Data Share 的收件者現在可以接受邀請。

接收資料的必要條件

您必須先準備環境,才能接受資料共用邀請。

確認您已完成所有必要條件再接受資料共用邀請:

此外,也會有儲存已接收資料的資源必要條件。 選取您的資源類型,並遵循下列步驟:

目標儲存體帳戶的必要條件

如果您選擇將資料接收至 Azure 儲存體,請先完成這些必要條件,再接受資料共用:

  • Azure 儲存體帳戶
  • 寫入儲存體帳戶的權限:Microsoft.Storage/storageAccounts/write。 此權限存在於參與者角色中。
  • 將 Data Share 資源受控識別的角色指派新增至儲存體帳戶的權限,存在於 Microsoft.Authorization/role assignments/write。 此權限存在於擁有者角色中。

將資料接收到 Azure SQL Database 或 Azure Synapse Analytics (先前稱為 Azure SQL DW) 的必要條件

對於您是 SQL Server Microsoft Entra 管理員的 SQL Server,請先完成這些必要條件,再接受資料共用:

  • Azure SQL DatabaseAzure Synapse Analytics (先前稱為 Azure SQL DW)
  • 寫入 SQL 伺服器上資料庫的權限:Microsoft.Sql/servers/databases/write。 此權限存在於參與者角色中。
  • SQL Server 防火牆存取:
    1. Azure 入口網站中,瀏覽至您的 SQL 伺服器。 在左側導覽中選取 [防火牆與虛擬網路]
    2. 在 [允許 Azure 服務和資源存取此伺服器] 上,選取 [是]
    3. 選取 [+ 新增用戶端 IP]。 用戶端 IP 位址可能會變更,因此您可能需要在下次從入口網站共用資料時再次新增用戶端 IP。
    4. 選取 [儲存]。

對於您不是 Microsoft Entra 管理員的 SQL Server,請先完成這些必要條件,再接受資料共用:

您可以遵循逐步示範影片或下列步驟來設定必要條件。

  • Azure SQL DatabaseAzure Synapse Analytics (先前稱為 Azure SQL DW)

  • 寫入 SQL 伺服器上資料庫的權限:Microsoft.Sql/servers/databases/write。 此權限存在於參與者角色中。

  • Data Share 資源的受控識別用來存取 Azure SQL Database 或 Azure Synapse Analytics 的權限:

    1. Azure 入口網站中瀏覽至 SQL 伺服器,並將您自己設定為 Microsoft Entra 管理員

    2. 使用查詢編輯器或 SQL Server Management Studio 搭配 Microsoft Entra 驗證,連線到 Azure SQL Database/資料倉儲。

    3. 執行下列指令碼,將 Data Share 受控識別新增為 'db_datareader, db_datawriter, db_ddladmin'。

      create user "<share_acc_name>" from external provider; 
      exec sp_addrolemember db_datareader, "<share_acc_name>"; 
      exec sp_addrolemember db_datawriter, "<share_acc_name>"; 
      exec sp_addrolemember db_ddladmin, "<share_acc_name>";
      

      注意

      <share_acc_name> 是您 Data Share 資源的名稱。

  • SQL Server 防火牆存取:

    1. Azure 入口網站中,瀏覽至 SQL Server,然後選取 [防火牆和虛擬網路]
    2. 在 [允許 Azure 服務和資源存取此伺服器] 上,選取 [是]
    3. 選取 [+ 新增用戶端 IP]。 用戶端 IP 位址可能會變更,因此您可能需要在下次從入口網站共用資料時再次新增用戶端 IP。
    4. 選取 [儲存]。

將資料接收到 Azure Synapse Analytics (工作區) SQL 集區的必要條件

  • Azure Synapse Analytics (工作區) 專用的 SQL 集區。 目前不支援將資料接收到無伺服器 SQL 集區。

  • 寫入 Synapse 工作區中 SQL 集區的權限:Microsoft.Synapse/workspaces/sqlPools/write。 此權限存在於參與者角色中。

  • Data Share 資源的受控識別權限用來存取 Synapse 工作區 SQL 集區的權限:

    1. Azure 入口網站中,瀏覽至 Synapse 工作區。

    2. 從左側導覽中選取 [SQL Active Directory 管理員],並將您自己設定為 Microsoft Entra 管理員

    3. 開啟 Synapse Studio,從左側導覽中選取 [管理]。 選取 [安全性] 底下的 [存取控制]。 將您自己指派為 [SQL 管理員] 或 [工作區管理員] 角色。

    4. 在 Synapse Studio 中,從左側導覽中選取 [開發]。 在 SQL 集區中執行下列指令碼,將 Data Share 資源受控識別新增為'db_datareader, db_datawriter, db_ddladmin'。

      create user "<share_acc_name>" from external provider; 
      exec sp_addrolemember db_datareader, "<share_acc_name>"; 
      exec sp_addrolemember db_datawriter, "<share_acc_name>"; 
      exec sp_addrolemember db_ddladmin, "<share_acc_name>";
      

      注意

      <share_acc_name> 是您 Data Share 資源的名稱。

  • Synapse 工作區防火牆存取:

    1. Azure 入口網站中,瀏覽至 Synapse 工作區。 從左側導覽中選取 [防火牆]
    2. 在 [允許 Azure 服務與資源能存取此工作區] 上,選取 [開啟]
    3. 選取 [+ 新增用戶端 IP]。 用戶端 IP 位址可能會有所變更。 下次從 Azure 入口網站共用 SQL 資料時,可能需要重複執行此程序。
    4. 選取 [儲存]。

接收共用資料

開啟邀請

您可以從電子郵件或直接從 Azure 入口網站開啟邀請。

若要從電子郵件開啟邀請,請檢查您的收件匣是否有來自您資料提供者的邀請。 邀請會來自 Microsoft Azure,標題為來自 yourdataprovider@domain.com 的 Azure Data Share 邀請。 選取 [檢視邀請] 以查看您在 Azure 中的邀請。

若要直接從 Azure 入口網站開啟邀請,請在Azure 入口網站中搜尋 Data Share 邀請,這樣會帶您前往 Data Share 邀請清單。

如果您是租用戶的來賓使用者,您需要在第一次檢視 Data Share 邀請之前,確認租用戶的電子郵件地址。 驗證之後,您的電子郵件有效期為 12 個月。

Screenshot of the invitations page, showing a pending invitation.

然後,選取您想要檢視的共用。

接受邀請

  1. 請確定您已檢閱過所有欄位,包括 [使用規定]。 如果您同意使用規定,則必須核取該方塊以表示您同意。

    Screenshot of the invitation acceptance page, showing the terms of use highlighted and the agreement selected.

  2. 在 [目標 Data Share 帳戶] 底下,選取要作為 Data Share 部署目的地的訂用帳戶和資源群組。

  3. 針對 [Data Share 帳戶] 欄位,如果您沒有現有的 Data Share 帳戶,請選取 [新建]。 否則,請選取您想要用來接受資料共用的現有 Data Share 帳戶。

  4. 針對 [已收到的共用名稱] 欄位,您可以保留資料提供者所指定的預設值,也可以為已接收的共用指定新名稱。

  5. 同意使用規定並指定了管理收到之共用的資料共用帳戶後,請選取 [接受並設定]。 此時會建立共用訂用帳戶。

    Screenshot of the acceptance page, showing the target data share account information filled out.

如果您不想要接受邀請,請選取 [拒絕]

設定已接收的共用

請遵循下列步驟來設定要接收資料的位置。

  1. 選取資料集索引標籤。勾選要指派目的地之資料集旁的方塊。 選取 [+ 對應至目標] 以選擇目標資料存放區。

    Screenshot of the received shares page with the map to target button highlighted.

  2. 選取要儲存共用資料的目標資源。 系統將會覆寫目標資料存放區中,具有相同路徑和名稱的任何資料檔案或資料表。 如果您要將資料接收到 SQL 存放區,且顯示 [允許 Data Share 代表我執行上述 'create user' SQL 指令碼] 核取方塊,請核取此核取方塊。 否則,請依照必要條件中的指示,執行出現在畫面上的指令碼。 這會將 Data Share 資源寫入權限授與目標 SQL DB。

    Screenshot of the map datasets to target window, showing available targets in the dropdown.

  3. 對於以快照集為基礎的共用,如果資料提供者已建立快照集排程來定期更新資料,也可以選取 [快照集排程] 索引標籤來啟用快照集排程。勾選快照集排程旁的方塊,然後選取 [+ 啟用]

    注意

    第一個排程快照集將會在排程時間的一分鐘內啟動,而下一個快照集將會在排程時間的數秒內啟動。

    Screenshot showing the snapshot schedule tab with the enable button selected.

觸發快照集

這些步驟僅適用於以快照集為基礎的共用。

  1. 您可以選取 [觸發程序快照集]及 [詳細資料] 索引標籤以觸發快照集。 在這裡,您可以觸發資料的完整快照集。 如果這是您第一次接收來自資料提供者的資料,請選取 [完整複製]。 快照集執行時,下一個快照集會等到上一個快照集完成後才啟動。

    Screenshot of the received shares page, showing the trigger snapshot dropdown selected and the full copy option highlighted.

  2. 當最後一次執行的狀態為「成功」時,請移至目標資料存放區檢視已接收的資料。 選取 [資料集],然後選取 [目標路徑] 中的連結。

    Screenshot of the datasets tab showing a successful dataset selected.

檢視記錄

此步驟僅適用於以快照集為基礎的共用。 若要檢視快照集的記錄,請選取 [歷程記錄] 索引標籤。您會在這裡找到過去 30 天所有產生的快照集歷程記錄。

快照集效能

SQL 快照集效能受到許多因素影響。 您應自行執行效能測試,這是我們一貫的建議。 以下是影響效能的一些範例因素。

  • 來源或目的地資料存放區每秒輸入/輸出作業 (IOPS) 和頻寬。
  • 來源與目標 SQL 資料存放區的硬體設定 (例如虛擬核心、記憶體、DWU)。
  • 並行存取來源和目標資料存放區。 如果要從相同的 SQL 資料存放區共用多個資料表和檢視,或將多個資料表和資料列接收到相同的 SQL 資料存放區,則會影響效能。
  • 來源與目的地資料存放區之間的網路頻寬,以及來源與目標資料存放區的位置。
  • 共用的資料表和檢視大小。 SQL 快照集共用會執行整個資料表的完整複製。 如果資料表的大小隨著時間成長,快照集需要較長的時間。

對於需要累加式更新的大型資料表,您可以將更新匯出至儲存體帳戶,並使用儲存體帳戶的累加式共用功能來加快效能。

針對快照集失敗進行疑難排解

快照集失敗最常見的原因是 Data Share 沒有來源或目標資料存放區的權限。 若要為 Data Share 授與來源或目標 Azure SQL Database 或 Azure Synapse Analytics (先前稱為 Azure SQL DW) 的權限,您必須在使用 Microsoft Entra 驗證連線到 SQL 資料庫時執行提供的 SQL 指令碼。 若要針對其他 SQL 快照集失敗進行疑難排解,請參閱針對快照集失敗進行疑難排解

下一步

您已了解如何使用 Azure Data Share 服務來共用和接收 SQL 來源的資料。 若要深入了解從其他資料來源共用,請繼續參閱支援的資料存放區