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

適用于: Azure SQL 資料庫 Azure Synapse Analytics (先前稱為 Azure SQL DW) Azure Synapse Analytics (工作區) SQL 集區

Azure Data Share 可讓您安全地將 Azure SQL 資料庫和 Azure Synapse Analytics 資源的資料快照集共用至其他 Azure 訂用帳戶。 在您的租使用者外部包含 Azure 訂用帳戶。

本文說明從 Azure SQL 資料庫 Azure 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 集區
  • 已設定 Always Encrypted 的 Azure SQL 資料庫

接收資料

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

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

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

Azure SQL 資料庫 Azure Synapse Analytics 中的 共用資料會儲存在資料表中。 如果目標資料表尚未存在,Azure Data Share 會建立具有來源架構的 SQL 資料表。 如果目標資料表已有相同名稱,則會以最新的完整快照集卸載和覆寫。

注意

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

支援的資料類型

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

注意

  1. 對於對應至十進位過渡型別的資料類型,目前快照集支援最多 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 資料庫或 Azure Synapse Analytics 共用的必要條件(先前稱為 Azure SQL DW)

您可以使用下列其中一種方法向 Azure SQL 資料庫或 Azure Synapse Analytics 進行驗證(先前稱為 Azure SQL DW):

Microsoft Entra 驗證

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

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

SQL 驗證

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

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

  • Azure Data Share 資源的受控識別存取資料庫的許可權:

    1. Azure 入口網站 中,流覽至 SQL Server,並將自己設定為 Microsoft Entra 管理員

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

    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 資料庫 使用者,可流覽並選取您想要共用的資料表或檢視表。

  • SQL Server 防火牆存取:

    1. 在Azure 入口網站 ,流覽至 [SQL Server]。 從左側導覽中選取 [防火牆和虛擬網路 ]。
    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. 流覽至 [資料共用概觀] 頁面。

    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 Server 或 Synapse 工作區。 如果您使用 Microsoft Entra 驗證,且 [允許 Data Share 代表 我執行上述 'create user' SQL 腳本] 核取方塊 ,請核取核取方塊。 如果您使用 SQL 驗證,請提供認證,並確定您已遵循必要條件,以便您擁有許可權。

    選取 [下一步 ] 以流覽至您想要共用的物件,然後選取 [新增資料集]。 您可以從 Azure SQL 資料庫和 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.儲存體/storageAccounts/write 。 此權限存在於參與者角色中。
  • 將 Data Share 資源受控識別的角色指派許可權新增至儲存體帳戶:存在於 Microsoft.Authorization/role assignments/write 中。 此權限存在於擁有者角色中。

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

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

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

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

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

  • Azure SQL 資料庫 Azure Synapse Analytics(先前稱為 Azure SQL DW)。

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

  • Data Share 資源的受控識別許可權,可存取 Azure SQL 資料庫或 Azure Synapse Analytics:

    1. Azure 入口網站 中,流覽至 SQL Server,並將自己設定為 Microsoft Entra 管理員

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

    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 的訂用帳戶和資源群組。

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

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

  5. 一旦您同意使用規定,並指定 Data Share 帳戶來管理您收到的共用,請選取 [ 接受並設定 ]。 將會建立共用訂用帳戶。

    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 存放區,且 [允許資料共用代表我 執行上述 '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 資料庫或 Azure Synapse Analytics(先前稱為 Azure SQL DW),您必須在使用 Microsoft Entra 驗證連線到 SQL 資料庫時執行提供的 SQL 腳本。 若要針對其他 SQL 快照集失敗進行疑難排解,請參閱 針對快照集失敗 進行疑難排解。

下一步

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