教學課程:使用 Azure Data Share 接受和接收數據
在本教學課程中,您將瞭解如何使用 Azure Data Share 接受數據共享邀請。 您將瞭解如何接收與您共享的數據,以及如何啟用定期重新整理間隔,以確保您一律擁有與您共用之數據的最新快照集。
- 如何接受 Azure Data Share 邀請
- 建立 Azure Data Share 帳戶
- 指定數據的目的地
- 為排程的重新整理建立數據共享的訂用帳戶
必要條件
您必須先建立一些 Azure 資源,才能接受數據共享邀請。
在接受數據共享邀請之前,請確定所有必要條件都已完成。
將數據接收至記憶體帳戶
- Azure 儲存體 帳戶:如果您還沒有帳戶,您可以建立 Azure 儲存體 帳戶。
- 寫入記憶體帳戶的許可權,其存在於 Microsoft.儲存體/storageAccounts/write。 此許可權存在於 儲存體 帳戶參與者角色中。
- 將角色指派新增至記憶體帳戶的許可權,此帳戶存在於 Microsoft.Authorization/role assignments/write 中。 此權限存在於擁有者角色中。
將數據接收至以 SQL 為基礎的目標
如果您選擇將數據接收至 Azure SQL 資料庫,Azure Synapse Analytics,以下是必要條件清單。
- Azure SQL 資料庫 或 Azure Synapse Analytics(先前稱為 Azure SQL DW)。
- 寫入 SQL Server 上資料庫的許可權,其存在於 Microsoft.Sql/servers/databases/write 中。 此權限存在於參與者角色中。
- SQL Server 的 Microsoft Entra 管理員
- SQL Server 防火牆存取。 這可以透過下列步驟來完成:
- 在 Azure 入口網站 的 SQL Server 中,流覽至 [防火牆和虛擬網络]
- 在 [允許 Azure 服務和資源存取此伺服器] 上,選取 [是]。
- 選取 [+新增用戶端 IP]。 用戶端IP位址可能會變更。 下次您從 Azure 入口網站 共用 SQL 資料時,可能需要重複此程式。 您也可以新增IP範圍。
- 選取 [儲存]。
將數據接收至 Azure Synapse Analytics (工作區) SQL 集區的必要條件
Azure Synapse Analytics (工作區) 專用 SQL 集區。 目前不支援將數據接收到無伺服器 SQL 集區。
寫入 Synapse 工作區中 SQL 集區的許可權,其存在於 Microsoft.Synapse/workspaces/sqlPools/write 中。 此權限存在於參與者角色中。
Data Share 資源的受控識別許可權,以存取 Synapse 工作區 SQL 集區。 這可以透過下列步驟來完成:
在 Azure 入口網站 中,流覽至 Synapse 工作區。 從左側導覽中選取 [Microsoft Entra 管理員],並將您自己設定為 Microsoft Entra 系統管理員。
開啟 Synapse Studio,從左側導覽中選取 [管理 ]。 選取 [安全性] 底下的 [存取控制 ]。 指派您自己 SQL 系統管理員 或 工作區管理員 角色。
在 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 資源的名稱。 如果您尚未建立 Data Share 資源,您可以稍後返回此必要條件。
Synapse 工作區防火牆存取。 這可以透過下列步驟來完成:
- 在 Azure 入口網站 中,流覽至 Synapse 工作區。 從左側導覽中選取 [防火牆 ]。
- 針對 [允許 Azure 服務和資源存取此工作區] 選取 [開啟]。
- 選取 [+新增用戶端 IP]。 用戶端IP位址可能會變更。 下次您從 Azure 入口網站 共用 SQL 資料時,可能需要重複此程式。 您也可以新增IP範圍。
- 選取 [儲存]。
將數據接收至 Azure 數據總管叢集:
- 與數據提供者的數據總管叢集相同的 Azure 數據總管叢集中的 Azure 數據總管叢集:如果您還沒有 Azure 數據總管叢集,您可以建立 Azure 數據總管叢集。 如果您不知道數據提供者叢集的 Azure 資料中心,您可以在稍後的程式中建立叢集。
- 寫入 Azure 數據總管叢集的許可權,其存在於 Microsoft.Kusto/clusters/write 中。 此權限存在於參與者角色中。
登入 Azure 入口網站
登入 Azure 入口網站。
開啟邀請
您可以從電子郵件開啟邀請,或直接從 Azure 入口網站 開啟邀請。
若要從電子郵件開啟邀請,請檢查您的收件匣,以取得來自數據提供者的邀請。 邀請來自 Microsoft Azure,標題為 來自 yourdataprovider@domain.com的 Azure Data Share 邀請。 選取 [ 檢視邀請 ],以查看您在 Azure 中的邀請。
若要直接從 Azure 入口網站 開啟邀請,請在 Azure 入口網站 中搜尋 Data Share 邀請。 此動作會帶您前往 Data Share 邀請清單。
如果您是租使用者的來賓用戶,系統會要求您確認租用戶的電子郵件地址,然後再第一次檢視 Data Share 邀請。 驗證之後,有效期為 12 個月。
選取您想要檢視的邀請。
接受邀請
請確定已檢閱所有欄位,包括 使用規定。 如果您同意使用規定,您必須核取方塊,以指出您同意。
在 [目標數據共享帳戶] 下,選取您要在其中部署 Data Share 的訂用帳戶和資源群組。
針對 [ Data Share 帳戶 ] 字段,如果您沒有現有的 Data Share 帳戶,請選取 [新建 ]。 否則,請選取您想要接受數據共享的現有 Data Share 帳戶。
針對 [ 已接收的共享名稱 ] 字段,您可以保留數據提供的預設值,或指定已接收共用的新名稱。
一旦您同意使用規定,並指定 Data Share 帳戶來管理您收到的共用,請選取 [ 接受並設定]。 將會建立共用訂用帳戶。
此動作會帶您前往 Data Share 帳戶中收到的共用。
如果您不想接受邀請,請選取 [拒絕]。
使用 az datashare share-subscription create 命令來建立 Data Share。
az datashare share-subscription create --resource-group share-rg \
--name "fabrikamsolutions" --account-name FabrikamDataShareAccount \
--invitation-id 89abcdef-0123-4567-89ab-cdef01234567 \
--source-share-location "East US 2"
使用 New-AzDataShareSubscription 命令來建立 Data Share。 InvitationId 會是您從上一個步驟收集的標識碼。
New-AzDataShareSubscription -ResourceGroupName share-rg -AccountName FabrikamDataShareAccount -Name "Fabrikam Solutions" -InvitationId "89abcdef-0123-4567-89ab-cdef01234567"
請遵循下列步驟來設定您要接收數據的位置。
選取 [數據集] 索引 標籤。核取您要指派目的地之數據集旁的方塊。 選取 [+ 對應至目標 ] 以選擇目標資料存放區。
選取您想要讓數據登陸的目標數據存放區類型。 將會覆寫目標數據存放區中具有相同路徑和名稱的任何數據檔或數據表。 如果您要將數據接收至 Azure SQL 資料庫 或 Azure Synapse Analytics(先前稱為 Azure SQL DW),請核取 [允許 Data Share 代表我執行上述「建立使用者」腳本的複選框。
針對就地共用,請選取指定位置中的數據存放區。 位置是數據提供者源數據存放區所在的 Azure 資料中心。 對應數據集之後,您可以遵循目標路徑中的連結來存取數據。
針對快照集型共用,如果數據提供者已建立快照集排程以提供數據的定期更新,您也可以選取 [快照集排 程] 索引卷標來啟用快照集排程。核取快照集排程旁的方塊,然後選取 [+ 啟用]。 第一個排程快照集會在排程時間的一分鐘內啟動,後續的快照集將在排程時間的秒內啟動。
每次執行之後,複製的檔案元數據不會保存。 這是原廠設定。
使用這些命令來設定您要接收資料的位置。
執行 az datashare consumer-source-data-set list 命令以取得數據集標識符:
az datashare consumer-source-data-set list --resource-group "share-rg" \
--account-name "FabrikamDataShareAccount" \
--share-subscription-name "fabrikamsolutions" \
如果您需要記憶體帳戶,請執行 az storage account create 命令來建立此 Data Share 的記憶體帳戶:
az storage account create --resource-group "share-rg" --name "FabrikamDataShareStorageAccount" \
使用 az storage account show 命令來取得記憶體帳戶識別碼:
az storage account show --resource-group "share-rg" --name "FabrikamDataShareStorageAccount" \
--query "id"
使用下列命令來取得帳戶主體識別碼:
az datashare account show --resource-group "share-rg" --name "FabrikamDataShareAccount" \
--query "identity.principalId"
使用 az role assignment create 命令,使用帳戶主體標識符和記憶體帳戶標識碼建立帳戶主體的角色指派:
az role assignment create --role "Contributor" \
--assignee-object-id aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
--assignee-principal-type ServicePrincipal --scope "your\storage\account\id\path"
根據步驟 1 的數據集標識元建立對應變數:
$mapping='{\"data_set_id\":\"' + $dataset_id + '\",\"container_name\":\"newcontainer\",
\"storage_account_name\":\"datashareconsumersa\",\"kind\":\"BlobFolder\",\"prefix\":\"consumer\"}'
使用 az datashare data-set-mapping create 命令來建立數據集對應:
az datashare data-set-mapping create --account-name "FabrikamDataShareAccount" \
--data-set-mapping-name "datasetmapping" --resource-group "share-rg" \
--share-subscription-name "fabrikamsolutions" --blob-folder-data-set-mapping $mapping
執行 az datashare share-subscription synchronize 命令以啟動數據集同步處理。
az datashare share-subscription synchronize \
--resource-group "share-rg" --account-name "FabrikamDataShareAccount" \
--name "Fabrikam Solutions" --synchronization-mode "Incremental" \
執行 az datashare share-subscription list-synchronization 命令以查看同步處理的列表:
az datashare share-subscription list-synchronization \
--resource-group "share-rg" --account-name "FabrikamDataShareAccount" \
--share-subscription-name "Fabrikam Solutions" \
使用 az datashare share-subscription list-source-share-synchronization-setting 命令來查看共享上設定的同步處理設定。
az datashare share-subscription list-source-share-synchronization-setting \
--resource-group "share-rg" --account-name "FabrikamDataShareAccount" \
--share-subscription-name "Fabrikam Solutions"
使用這些命令來設定您要接收資料的位置。
執行 Get-AzDataShareSourceDataSet 命令以取得資料集識別碼:
Get-AzDataShareSourceDataSet -ResourceGroupName "share-rg" -AccountName "FabrikamDataShareAccount" -ShareSubscriptionName "fabrikamsolutions"
如果您還沒有想要儲存共享數據的位置,您可以遵循下列步驟來建立記憶體帳戶。 如果您已經有記憶體,可以跳到後續步驟。
執行 New-Az 儲存體 Account 命令來建立 Azure 儲存體 帳戶:
$storageAccount = New-AzStorageAccount -ResourceGroupName "share-rg" -AccountName FabrikamStorageAccount -Location "East US 2" -SkuName Standard_GRS
$ctx = $storageAccount.Context
執行 New-Az 儲存體 Container 命令,在您的新 Azure 儲存體 帳戶中建立容器,以保存您的資料:
$containerName = "StorageContainer"
New-AzStorageContainer -Name $containerName -Context $ctx -Permission blob
執行 Set-Az 儲存體 BlobContent 命令來上傳檔案。 下列範例會將 textfile.csv 從 本機記憶體上的 D:\testFiles 資料夾上傳至您所建立的容器。
Set-AzStorageBlobContent -File "D:\testFiles\textfile.csv" -Container $containerName -Blob "textfile.csv" -Context $ctx
如需在PowerShell中使用 Azure 儲存體的詳細資訊,請遵循此 Azure 儲存體 PowerShell 指南。
使用 Get-Az 儲存體 Account 命令來取得記憶體帳戶識別碼:
Get-AzStorageAccount -ResourceGroupName "share-rg" -Name FabrikamStorageAccount
使用第一個步驟中的數據集標識符,然後執行 New-AzDataShareDataSetMapping 命令來建立數據集對應:
New-AzDataShareDataSetMapping -ResourceGroupName "share-rg" -AccountName "FabrikamDataShareAccount" -ShareSubscriptionName "fabrikamsolutions" -Name "Fabrikam Solutions" -StorageAccountResourceId "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" -DataSetId "0123abcd-ef01-2345-6789-abcdef012345" -Container "StorageContainer"
執行 Start-AzDataShareSubscriptionSynchronization 命令來啟動數據集同步處理。
Start-AzDataShareSubscriptionSynchronization -ResourceGroupName "share-rg" -AccountName "FabrikamDataShareAccount" -ShareSubscriptionName "fabrikamsolutions" -SynchronizationMode "Incremental"
執行 Get-AzDataShareSubscriptionSynchronization 命令以查看同步處理的列表:
Get-AzDataShareSubscriptionSynchronization -ResourceGroupName "share-rg" -AccountName "FabrikamDataShareAccount" -ShareSubscriptionName "fabrikamsolutions"
使用 Get-AzDataShareSubscriptionSynchronizationDetail 命令來查看共用上設定的同步處理設定。
Get-AzDataShareSubscriptionSynchronizationDetail -ResourceGroupName "share-rg" -AccountName "FabrikamDataShareAccount" -ShareSubscriptionName "fabrikamsolutions" -SynchronizationId "a6ee5c8d-0ce0-485e-b2f2-966b187dc6c7"
觸發快照集
這些步驟僅適用於快照式共用。
您可以選取 [詳細數據] 索引標籤,然後選取 [觸發快照集] 來觸發快照集。 在這裡,您可以觸發數據的完整或增量快照集。 如果這是您第一次從數據提供者接收數據,請選取完整複本。
當上次執行狀態 成功時,請移至目標數據存放區以檢視已接收的數據。 選取 [數據集],然後選取 [目標路徑] 中的連結。
執行 az datashare trigger create 命令以觸發快照集:
az datashare trigger create --account-name "FabrikamDataShareAccount" --resource-group "share-rg" --share-subscription-name "Fabrikam Solutions" --scheduled-trigger recurrence-interval="Day" synchronization-mode="Incremental" synchronization-time="2018-11-14T04:47:52.9614956Z" --name "Trigger1"
這些步驟僅適用於快照式共用。
執行 New-AzDataShareTrigger 命令以觸發快照集:
New-AzDataShareTrigger -ResourceGroupName "share-rg" -AccountName "FabrikamDataShareAccount" -Name "Fabrikam Solutions" -RecurrenceInterval "Day" -SynchronizationTime "2018-11-14T04:47:52.9614956Z"
檢視記錄
此步驟僅適用於快照式共用。 若要檢視快照集的歷程記錄,請選取 [ 記錄 ] 索引標籤。您可以在這裡找到過去 30 天內產生之所有快照集的歷程記錄。
清除資源
不再需要資源時,請移至 [數據共用概觀] 頁面,然後選取 [ 刪除 ] 將其移除。
下一步
在本教學課程中,您已瞭解如何接受和接收 Azure Data Share。 若要深入瞭解 Azure Data Share 概念,請繼續進行 Azure Data Share 術語。