教學課程:設定資料產品批次
在本教學課程中,瞭解如何設定已部署的資料產品服務。 使用 Azure Data Factory 整合及協調您的資料,並使用 Microsoft Purview 來探索、管理及控管資料資產。
了解如何:
- 建立和部署必要的資源
- 指派角色和存取權限
- 連線資料整合的資源
本教學課程可協助您熟悉範例資料產品資源群組中 <DMLZ-prefix>-dev-dp001
部署的服務。 體驗 Azure 服務彼此的互動方式,以及有哪些安全性措施。
當您部署新的元件時,您有機會調查 Purview 如何連接服務控管,以建立資料環境的整體最新地圖。 結果是自動化資料探索、敏感性資料分類,以及端對端資料譜系。
必要條件
開始設定資料產品批次之前,請確定您符合下列必要條件:
Azure 訂閱。 如果您沒有 Azure 訂用帳戶, 請立即 建立您的 Azure 免費帳戶。
Azure 訂用帳戶的許可權。 若要設定部署的 Purview 和 Azure Synapse Analytics,您必須擁有 Azure 訂用帳戶中的使用者存取管理員istrator 角色或 擁有者 角色。 您將在教學課程中為服務和服務主體設定更多角色指派。
已部署的資源。 若要完成本教學課程,這些資源必須已在 Azure 訂用帳戶中部署:
Microsoft Purview 帳戶。 帳戶會建立為數據管理登陸區域部署的一部分。
自我裝載整合執行時間。 執行時間會建立為數據登陸區域部署的一部分。
注意
在本教學課程中,預留位置會參考您在開始教學課程之前部署的必要條件資源:
<DMLZ-prefix>
是指您在建立 資料管理登陸區域 部署時所輸入的前置詞。<DLZ-prefix>
是指您在建立 資料登陸區域 部署時所輸入的前置詞。<DP-prefix>
是指您在建立 資料產品批次 部署時所輸入的前置詞。
建立 Azure SQL 資料庫 實例
若要開始本教學課程,請建立兩個範例SQL 資料庫實例。 您將在後續章節中使用資料庫來模擬 CRM 和 ERP 資料來源。
在 Azure 入口網站 的入口網站全域控制項中,選取 Cloud Shell 圖示以開啟 Azure Cloud Shell 終端機。 針對終端機類型選取 [Bash ]。
在 Cloud Shell 中,執行下列腳本。 腳本會
<DLZ-prefix>-dev-dp001
尋找資源群組和<DP-prefix>-dev-sqlserver001
資源群組中的 Azure SQL 伺服器。 然後,腳本會在伺服器上建立兩個SQL 資料庫實例<DP-prefix>-dev-sqlserver001
。 資料庫會預先填入 AdventureWorks 範例資料。 資料包括您在本教學課程中使用的資料表。請確定您將參數預留位置值取代
subscription
為您自己的 Azure 訂用帳戶識別碼。# Azure SQL Database instances setup # Create the AdatumCRM and AdatumERP databases to simulate customer and sales data. # Use the ID for the Azure subscription you used to deployed the data product. az account set --subscription "<your-subscription-ID>" # Get the resource group for the data product. resourceGroupName=$(az group list -o tsv --query "[?contains(@.name, 'dp001')==\`true\`].name") # Get the existing Azure SQL Database server name. sqlServerName=$(az sql server list -g $resourceGroupName -o tsv --query "[?contains(@.name, 'sqlserver001')==\`true\`].name") # Create the first SQL Database instance, AdatumCRM, to create the customer's data source. az sql db create --resource-group $resourceGroupName --server $sqlServerName --name AdatumCRM --service-objective Basic --sample-name AdventureWorksLT # Create the second SQL Database instance, AdatumERP, to create the sales data source. az sql db create --resource-group $resourceGroupName --server $sqlServerName --name AdatumERP --service-objective Basic --sample-name AdventureWorksLT
當腳本完成執行時, <DP-prefix>-dev-sqlserver001
在 Azure SQL 伺服器上,您有兩個新的SQL 資料庫實例, AdatumCRM
以及 AdatumERP
。 這兩個資料庫都在基本計算層上。 資料庫位於您用來部署資料產品批次的相同 <DLZ-prefix>-dev-dp001
資源群組中。
設定 Purview 以編錄資料產品批次
接下來,完成設定 Purview 以編錄資料產品批次的步驟。 您一開始會建立服務主體。 然後,您可以設定必要的資源,並指派角色和存取權限。
建立服務主體
在 Azure 入口網站 的入口網站全域控制項中,選取 Cloud Shell 圖示以開啟 Azure Cloud Shell 終端機。 針對終端機類型選取 [Bash ]。
修改下列腳本:
- 將
subscriptionId
參數預留位置值取代為您自己的 Azure 訂用帳戶識別碼。 - 將
spname
參數預留位置值取代為您想要用於服務主體的名稱。 服務主體名稱在訂用帳戶中必須是唯一的。
更新參數值之後,請在 Cloud Shell 中執行腳本。
# Replace the parameter values with the name you want to use for your service principal name and your Azure subscription ID. spname="<your-service-principal-name>" subscriptionId="<your-subscription-id>" # Set the scope to the subscription. scope="/subscriptions/$subscriptionId" # Create the service principal. az ad sp create-for-rbac \ --name $spname \ --role "Contributor" \ --scope $scope
- 將
檢查 JSON 輸出中是否有類似下列範例的結果。 請注意或複製輸出中的值,以供後續步驟 使用。
{ "appId": "<your-app-id>", "displayName": "<service-principal-display-name>", "name": "<your-service-principal-name>", "password": "<your-service-principal-password>", "tenant": "<your-tenant>" }
設定服務主體存取和許可權
從上一個步驟中產生的 JSON 輸出中,取得下列傳回的值:
- 服務主體識別碼 (
appId
) - 服務主體金鑰 (
password
)
服務主體必須具有下列許可權:
- 儲存體儲存體帳戶上的 Blob 資料讀取者角色。
- SQL 資料庫 實例的資料讀取者許可權。
若要使用必要的角色和許可權來設定服務主體,請完成下列步驟。
Azure 儲存體帳戶許可權
在Azure 入口網站中,移至
<DLZ-prefix>devraw
Azure 儲存體帳戶。 在資源功能表中,選取 [存取控制 [IAM]。選取新增>新增角色指派。
在 [新增角色指派 ] 的 [ 角色 ] 索引標籤上,搜尋並選取 [儲存體 Blob 資料讀取器 ]。 然後選取下一步。
在 [成員] 中 ,選擇 [ 選取成員 ]。
在 [ 選取成員 ] 中,搜尋您所建立的服務主體名稱。
在搜尋結果中,選取服務主體,然後選擇 [ 選取 ]。
若要完成角色指派,請選取 [ 檢閱 + 指派 兩次]。
針對其餘儲存體帳戶重複本節中的步驟:
<DLZ-prefix>devencur
<DLZ-prefix>devwork
SQL 資料庫許可權
若要設定SQL 資料庫許可權,您可以使用查詢編輯器連線到 Azure SQL 虛擬機器。 由於所有資源都位於私人端點後方,因此您必須先使用 Azure Bastion 主機虛擬機器登入Azure 入口網站。
在Azure 入口網站中,連線到部署在資源群組中的 <DMLZ-prefix>-dev-bastion
虛擬機器。 如果您不確定如何使用 Bastion 主機服務連線到虛擬機器,請參閱 連線至 VM 。
若要將服務主體新增為資料庫中的使用者,您必須先將自己新增為 Microsoft Entra 系統管理員。在步驟 1 和 2 中,您會將自己新增為 Microsoft Entra 系統管理員。在步驟 3 到 5 中,您會將服務主體許可權授與資料庫。 當您從 Bastion 主機虛擬機器登入入口網站時,請在Azure 入口網站中搜尋 Azure SQL 虛擬機器。
移至
<DP-prefix>-dev-sqlserver001
Azure SQL 虛擬機器。 在 [資源] 功能表的 [設定] 下 ,選取 [Microsoft Entra ID ]。在命令列中,選取 [ 設定系統管理員 ]。搜尋並選取您自己的帳戶。 選擇選取。
在資源功能表中,選取 [SQL 資料庫 ],然後選取
AdatumCRM
資料庫。在 [ AdatumCRM 資源] 功能表中,選取 [查詢編輯器][預覽]。 在 [Active Directory 驗證] 底 下,選取 [繼續身分] 按鈕以 登入。
在查詢編輯器中,修改下列語句,以
<service principal name>
取代為您建立的服務主體名稱(例如 ,purview-service-principal
。 然後,執行 語句。CREATE USER [<service principal name>] FROM EXTERNAL PROVIDER GO EXEC sp_addrolemember 'db_datareader', [<service principal name>] GO
針對 AdatumERP
資料庫重複步驟 3 到 5。
設定金鑰保存庫
Purview 會從 Azure 金鑰保存庫 實例讀取服務主體金鑰。 金鑰保存庫會在資料管理登陸區域部署中建立。 設定金鑰保存庫需要下列步驟:
將服務主體金鑰新增至金鑰保存庫作為秘密。
在金鑰保存庫中授與 Purview MSI 秘密讀取者許可權。
將金鑰保存庫新增至 Purview 作為金鑰保存庫連線。
在 Purview 中建立指向金鑰保存庫秘密的認證。
新增許可權以將秘密新增至金鑰保存庫
在Azure 入口網站中,移至 Azure 金鑰保存庫服務。 搜尋
<DMLZ-prefix>-dev-vault001
金鑰保存庫。在資源功能表中,選取 [存取控制][IAM]。 在命令列中,選取 [新增 ],然後選取 [ 新增角色指派 ]。
在 [ 角色] 索引標籤上,搜尋 ,然後選取 [金鑰保存庫 管理員istrator ]。 選取 [下一步] 。
在 [成員] 中 ,選擇 [ 選取成員 ] 以新增目前登入的 帳戶。
在 [ 選取成員 ] 中,搜尋目前登入的帳戶。 選取帳戶,然後選擇 [ 選取 ]。
若要完成角色指派程式,請選取 [ 檢閱 + 指派 兩次]。
將秘密新增至金鑰保存庫
完成下列步驟,以從 Bastion 主機虛擬機器登入Azure 入口網站。
在金鑰
<DMLZ-prefix>-dev-vault001
保存庫資源功能表中,選取 [ 秘密 ]。 在命令列中,選取 [產生/匯 入] 以建立新的秘密。在 [建立秘密 ] 中,選取或輸入下列值:
設定 動作 上傳選項 選取 [ 手動 ]。 名稱 輸入 service-principal-secret 。 值 輸入您稍早建立的服務主體密碼。 注意
此步驟會使用服務主體密碼金鑰,在金鑰保存庫中建立名為
service-principal-secret
的秘密。 Purview 會使用秘密來連線並掃描資料來源。 如果您輸入不正確的密碼,您將無法完成下列各節。選取建立。
在金鑰保存庫中設定 Purview 許可權
若要讓 Purview 實例讀取儲存在金鑰保存庫中的秘密,您必須指派 Purview 金鑰保存庫中的相關許可權。 若要設定許可權,您可以將 Purview 受控識別新增至金鑰保存庫秘密讀取者角色。
在金鑰
<DMLZ-prefix>-dev-vault001
保存庫資源功能表中,選取 [ 存取控制][IAM]。在命令列中,選取 [新增 ],然後選取 [ 新增角色指派 ]。
在 [角色] 中,搜尋並選取 [金鑰保存庫秘密使用者 ]。 選取 [下一步] 。
在 [成員] 中 ,選擇 [ 選取成員 ]。
搜尋
<DMLZ-prefix>-dev-purview001
Purview 實例。 選取實例以新增相關的帳戶。 然後選擇 [ 選取 ]。若要完成角色指派程式,請選取 [ 檢閱 + 指派 兩次]。
在 Purview 中設定金鑰保存庫連線
若要設定與 Purview 的金鑰保存庫連線,您必須使用 Azure Bastion 主機虛擬機器登入Azure 入口網站。
在Azure 入口網站中,移至
<DMLZ-prefix>-dev-purview001
Purview 帳戶。 在 [開始使用] 底 下,在 [開啟 Microsoft Purview 治理入口網站 ] 中,選取 [ 開啟 ]。在 Purview Studio 中,選取 [管理 > 認證]。 在 [ 認證] 命令列中,選取 [ 管理金鑰保存庫連線 ],然後選取 [ 新增 ]。
在 [新增金鑰保存庫連線 ] 中,選取或輸入下列資訊:
設定 動作 名稱 輸入 < DMLZ-prefix-dev-vault001 > 。 Azure 訂用帳戶 選取裝載金鑰保存庫的訂用帳戶。 金鑰保存庫名稱 < 選取 DMLZ-prefix-dev-vault001 > 金鑰保存庫。 選取建立。
在 [確認授與存取權 ] 中,選取 [ 確認 ]。
在 Purview 中建立認證
設定金鑰保存庫的最後一個步驟是在 Purview 中建立認證,以指向您在服務主體金鑰保存庫中建立的秘密。
在 Purview Studio 中,選取 [管理 > 認證]。 在 [ 認證] 命令列中,選取 [ 新增 ]。
在 [ 新增認證 ] 中,選取或輸入下列資訊:
設定 動作 名稱 輸入 purviewServicePrincipal 。 驗證方法 選取 [服務主體]。 租用戶識別碼 值會自動填入。 服務主體識別碼 輸入服務主體的應用程式識別碼或用戶端識別碼。 金鑰保存庫連線 選取您在上一節中建立的金鑰保存庫連線。 秘密名稱 在金鑰保存庫中輸入秘密的名稱( service-principal-secret )。 選取建立。
註冊資料來源
此時,Purview 可以連線到服務主體。 現在您可以註冊及設定資料來源。
註冊 Azure Data Lake 儲存體 Gen2 帳戶
下列步驟概述註冊 Azure Data Lake 儲存體 Gen2 儲存體帳戶的程式。
在 Purview Studio 中,選取資料對應圖示、選取 [來源 ],然後選取 [ 註冊 ]。
在 [註冊來源 ] 中,選取 [Azure Data Lake 儲存體 Gen2 ],然後選取 [ 繼續 ]。
在 [註冊來源][Azure Data Lake 儲存體 Gen2] 中,選取或輸入下列資訊:
設定 動作 名稱 輸入 < DLZ 前置 > 詞 dldevraw 。 Azure 訂用帳戶 選取裝載儲存體帳戶的訂用帳戶。 儲存體帳戶名稱 選取相關的儲存體帳戶。 端點 此值會根據選取的儲存體帳戶自動填入。 選取集合 選取根集合。 選取 [ 註冊 ] 以建立資料來源。
針對下列儲存體帳戶重複這些步驟:
<DMLZ-prefix>devencur
<DMLZ-prefix>devwork
將SQL 資料庫實例註冊為數據源
在 Purview Studio 中 ,選取 [資料對應 ] 圖示,選取 [來源 ],然後選取 [ 註冊 ]。
在 [ 註冊來源 ] 中,選取 [Azure SQL 資料庫 ],然後選取 [ 繼續 ]。
在 [註冊來源](Azure SQL 資料庫) 中,選取或輸入下列資訊:
設定 動作 名稱 輸入 SQLDatabase (建立 Azure SQL 資料庫 實例 中所 建立的資料庫名稱)。 訂用帳戶 選取裝載資料庫的訂用帳戶。 伺服器名稱 輸入 < DP-prefix-dev-sqlserver001 > 。 選取註冊。
設定掃描
接下來,設定資料來源的掃描。
掃描 Data Lake 儲存體 Gen2 資料來源
在 Purview Studio 中,移至資料對應。 在資料來源上,選取 [ 新增掃描] 圖示。
在新的掃描窗格中,選取或輸入下列資訊:
設定 動作 名稱 輸入 Scan_ < DLZ 前置 > 詞 devraw 。 透過整合執行時間連線 選取使用資料登陸區域部署的自我裝載整合執行時間。 認證 選取您為 Purview 設定的服務主體。 選取 [ 測試連線 ] 以確認連線能力,以及該許可權已就緒。 選取 [繼續]。
在 [設定掃描 範圍] 中,選取整個儲存體帳戶作為掃描範圍,然後選取 [ 繼續]。
在 [選取掃描規則集 ] 中,選取 [AdlsGen2 ],然後選取 [ 繼續 ]。
在 [設定掃描觸發程式 ] 中,選取 [一次 ],然後選取 [ 繼續 ]。
在 [ 檢閱您的掃描 ] 中,檢閱掃描設定。 選取 [ 儲存並執行] 以開始掃描。
針對下列儲存體帳戶重複這些步驟:
<DMLZ-prefix>devencur
<DMLZ-prefix>devwork
掃描SQL 資料庫資料來源
在 Azure SQL 資料庫資料來源中,選取 [ 新增掃描 ]。
在新的掃描窗格中,選取或輸入下列資訊:
設定 動作 名稱 輸入 Scan_Database001 。 透過整合執行時間連線 選取 [Purview-SHIR ]。 資料庫名稱 選取資料庫名稱。 認證 選取您在 Purview 中建立的金鑰保存庫認證。 譜系擷取 (預覽) 選取 [關閉]。 選取 [ 測試連線 ] 以確認連線能力,以及該許可權已就緒。 選取 [繼續]。
選取掃描的範圍。 若要掃描整個資料庫,請使用預設值。
在 [ 選取掃描規則集 ] 中,選取 [AzureSqlDatabase ],然後選取 [ 繼續 ]。
在 [設定掃描觸發程式 ] 中,選取 [一次 ],然後選取 [ 繼續 ]。
在 [ 檢閱您的掃描 ] 中,檢閱掃描設定。 選取 [ 儲存並執行] 以開始掃描。
針對 AdatumERP
資料庫重複這些步驟。
Purview 現在已針對已註冊的資料來源設定資料控管。
將資料 SQL 資料庫複製到 Data Lake 儲存體 Gen2
在下列步驟中,您會使用 Data Factory 中的複製資料工具來建立管線,以從 SQL 資料庫 實例 AdatumCRM
複製資料表,以及 AdatumERP
複製到 Data Lake 儲存體 Gen2 帳戶中的 <DLZ-prefix>devraw
CSV 檔案。
環境已鎖定為公用存取,因此您必須先設定私人端點。 若要使用私人端點,您會在本機瀏覽器中登入Azure 入口網站,然後連線到 Bastion 主機虛擬機器以存取所需的 Azure 服務。
建立私人端點
若要為所需的資源設定私人端點:
在資源群組中
<DMLZ-prefix>-dev-bastion
,選取<DMLZ-prefix>-dev-vm001
。在命令列中,選取 [連線 ],然後選取 [Bastion ]。
輸入虛擬機器的使用者名稱和密碼,然後選取 [連線 ]。
在虛擬機器的網頁瀏覽器中,移至Azure 入口網站。 移至
<DLZ-prefix>-dev-shared-integration
資源群組,然後開啟<DLZ-prefix>-dev-integration-datafactory001
資料處理站。在 [開始使用] 底 下,在 [開啟 Azure Data Factory Studio ] 中,選取 [ 開啟 ]。
在 Data Factory Studio 功能表中,選取 [ 管理 ] 圖示(圖示看起來像一個方塊工具箱,上面印有扳手圖章)。 在資源功能表中,選取 [受控私人端點 ],以建立將 Data Factory 連線至其他受保護 Azure 服務所需的私人端點。
稍後一節將討論核准私人端點的存取要求。 核准私人端點存取要求之後,其核准狀態會是 [已 核准],如下列儲存體帳戶範例
<DLZ-prefix>devencur
所示。核准私人端點連線之前,請選取 [ 新增 ]。 輸入 Azure SQL 以尋找您用來為 Azure SQL 虛擬機器建立新受控私人端點的
<DP-prefix>-dev-sqlserver001
Azure SQL 資料庫 連接器。 虛擬機器包含您稍早建立的AdatumCRM
和AdatumERP
資料庫。在 新的受控私人端點 (Azure SQL 資料庫)中,針對 [名稱 ] ,輸入 data-product-dev-sqlserver001 。 輸入您用來建立資源的 Azure 訂用帳戶。 針對 [ 伺服器名稱 ],選取
<DP-prefix>-dev-sqlserver001
,讓您可以在下一節中從這個資料處理站連線到它。
核准私人端點存取要求
若要為必要的服務提供 Data Factory 私人端點的存取權,您有幾個選項:
選項 1: 在您要求存取的每個服務中,在Azure 入口網站中,移至服務的網路或私人端點連線選項,並核准對私人端點的存取要求。
選項 2: 在 Bash 模式的 Azure Cloud Shell 中執行下列腳本,以一次核准所需私人端點的所有存取要求。
# Storage managed private endpoint approval # devencur resourceGroupName=$(az group list -o tsv --query "[?contains(@.name, '-dev-storage')==\`true\`].name") storageAcctName=$(az storage account list -g $resourceGroupName -o tsv --query "[?contains(@.name, 'devencur')==\`true\`].name") endPointConnectionName=$(az network private-endpoint-connection list -g $resourceGroupName -n $storageAcctName --type Microsoft.Storage/storageAccounts -o tsv --query "[?contains(@.properties.privateLinkServiceConnectionState.status, 'Pending')==\`true\`].name") az network private-endpoint-connection approve -g $resourceGroupName -n $endPointConnectionName --resource-name $storageAcctName --type Microsoft.Storage/storageAccounts --description "Approved" # devraw resourceGroupName=$(az group list -o tsv --query "[?contains(@.name, '-dev-storage')==\`true\`].name") storageAcctName=$(az storage account list -g $resourceGroupName -o tsv --query "[?contains(@.name, 'devraw')==\`true\`].name") endPointConnectionName=$(az network private-endpoint-connection list -g $resourceGroupName -n $storageAcctName --type Microsoft.Storage/storageAccounts -o tsv --query "[?contains(@.properties.privateLinkServiceConnectionState.status, 'Pending')==\`true\`].name") az network private-endpoint-connection approve -g $resourceGroupName -n $endPointConnectionName --resource-name $storageAcctName --type Microsoft.Storage/storageAccounts --description "Approved" # SQL Database managed private endpoint approval resourceGroupName=$(az group list -o tsv --query "[?contains(@.name, '-dev-dp001')==\`true\`].name") sqlServerName=$(az sql server list -g $resourceGroupName -o tsv --query "[?contains(@.name, 'sqlserver001')==\`true\`].name") endPointConnectionName=$(az network private-endpoint-connection list -g $resourceGroupName -n $sqlServerName --type Microsoft.Sql/servers -o tsv --query "[?contains(@.properties.privateLinkServiceConnectionState.status, 'Pending')==\`true\`].name") az network private-endpoint-connection approve -g $resourceGroupName -n $endPointConnectionName --resource-name $sqlServerName --type Microsoft.Sql/servers --description "Approved" # Key Vault private endpoint approval resourceGroupName=$(az group list -o tsv --query "[?contains(@.name, '-dev-metadata')==\`true\`].name") keyVaultName=$(az keyvault list -g $resourceGroupName -o tsv --query "[?contains(@.name, 'dev-vault001')==\`true\`].name") endPointConnectionID=$(az network private-endpoint-connection list -g $resourceGroupName -n $keyVaultName --type Microsoft.Keyvault/vaults -o tsv --query "[?contains(@.properties.privateLinkServiceConnectionState.status, 'Pending')==\`true\`].id") az network private-endpoint-connection approve -g $resourceGroupName --id $endPointConnectionID --resource-name $keyVaultName --type Microsoft.Keyvault/vaults --description "Approved" # Purview private endpoint approval resourceGroupName=$(az group list -o tsv --query "[?contains(@.name, 'dev-governance')==\`true\`].name") purviewAcctName=$(az purview account list -g $resourceGroupName -o tsv --query "[?contains(@.name, '-dev-purview001')==\`true\`].name") for epn in $(az network private-endpoint-connection list -g $resourceGroupName -n $purviewAcctName --type Microsoft.Purview/accounts -o tsv --query "[?contains(@.properties.privateLinkServiceConnectionState.status, 'Pending')==\`true\`].name") do az network private-endpoint-connection approve -g $resourceGroupName -n $epn --resource-name $purviewAcctName --type Microsoft.Purview/accounts --description "Approved" done
下列範例示範儲存體帳戶如何 <DLZ-prefix>devraw
管理私人端點存取要求。 在儲存體帳戶的資源功能表中,選取 [ 網路]。 在命令列中,選取 [私人端點連線 ]。
針對某些 Azure 資源,您會在資源功能表中選取 [私人端點連線 ]。 下列螢幕擷取畫面顯示 Azure SQL Server 的範例。
若要核准私人端點存取要求,請在 [私人端點連線 ] 中選取擱置的存取要求,然後選取 [ 核准 ]:
在您核准每個必要服務中的存取要求之後,要求可能需要幾分鐘的時間,才會在 Data Factory Studio 的受控私人端點 中 顯示為 [已核准 ]。 即使您在命令列中選取 [重新 整理],核准狀態可能已過時幾分鐘。
當您完成核准必要服務的所有存取要求時,在 受控私人端點 中, 所有服務的核准狀態 值會 核准 :
角色指派
當您完成核准私人端點存取要求時,請為 Data Factory 新增適當的角色許可權以存取這些資源:
- SQL 資料庫 實例
AdatumCRM
和AdatumERP
Azure SQL Server 中<DP-prefix>-dev-sqlserver001
- 儲存體 帳戶
<DLZ-prefix>devraw
、<DLZ-prefix>devencur
和<DLZ-prefix>devwork
- Purview 帳戶
<DMLZ-prefix>-dev-purview001
Azure SQL 虛擬機器
若要新增角色指派,請從 Azure SQL 虛擬機器開始。 在資源群組中
<DMLZ-prefix>-dev-dp001
,移至<DP-prefix>-dev-sqlserver001
。在資源功能表中,選取 [存取控制][IAM]。 在命令列中,選取 [新增 > 角色指派 ]。
在 [ 角色] 索引標籤上,選取 [ 參與者 ],然後選取 [ 下一步 ]。
在 [成員] 中 ,針對 [指派存取權] 選取 [ 受控識別 ]。 針對 [ 成員 ],選擇 [ 選取成員 ]。
在 [ 選取受控識別] 中,選取您的 Azure 訂用 帳戶。 針對 [受控識別 ],選取 [ Data Factory][V2], 以查看可用的資料處理站。 在資料處理站清單中,選取 [Azure Data Factory < DLZ-prefix-dev-integration-datafactory001 > ]。 選擇選取。
選取 [ 檢閱 + 指派 兩次] 以完成此程式。
儲存體帳戶
接下來,將必要的角色指派給 <DLZ-prefix>devraw
、 <DLZ-prefix>devencur
和 <DLZ-prefix>devwork
儲存體帳戶。
若要指派角色,請完成您用來建立 Azure SQL Server 角色指派的相同步驟。 但是,針對角色,選取 [儲存體 Blob 資料參與者 ] ,而不是 [ 參與者 ]。
為這三個儲存體帳戶指派角色之後,Data Factory 可以連線並存取儲存體帳戶。
Microsoft Purview
新增角色指派的最後一個步驟是在 Microsoft Purview 中將 Purview 資料策展人角色新增至資料處理站的 <DLZ-prefix>-dev-integration-datafactory001
受控識別帳戶。 完成下列步驟,讓 Data Factory 可以將多個資料來源的資料目錄資產資訊傳送至 Purview 帳戶。
在資源群組
<DMLZ-prefix>-dev-governance
中,移至<DMLZ-prefix>-dev-purview001
Purview 帳戶。在 Purview Studio 中 ,選取 [資料對應 ] 圖示,然後選取 [ 集合 ]。
選取集合的 [ 角色指派] 索引 標籤。 在 [資料策劃者 ] 下 ,新增 的
<DLZ-prefix>-dev-integration-datafactory001
受控識別:
連線 Data Factory 至 Purview
許可權已設定,Purview 現在可以看到資料處理站。 下一個步驟是連線 <DMLZ-prefix>-dev-purview001
到 <DLZ-prefix>-dev-integration-datafactory001
。
在 Purview Studio 中 ,選取 [管理 ] 圖示,然後選取 [Data Factory ]。 選取 [ 新增 ] 以建立 Data Factory 連線。
在 [ 新增 Data Factory 連線 ] 窗格中,輸入您的 Azure 訂用帳戶,然後選取
<DLZ-prefix>-dev-integration-datafactory001
Data Factory。 選取 [確定]。在 Data Factory Studio 實例的
<DLZ-prefix>-dev-integration-datafactory001
[管理 Azure Purview ] > 下 ,重新整理 Azure Purview 帳戶。整合
Data Lineage - Pipeline
現在會顯示綠色 連線圖示 。
建立 ETL 管線
<DLZ-prefix>-dev-integration-datafactory001
既然 具有必要的存取權限,請在 Data Factory 中建立複製活動,以將資料從 SQL 資料庫 實例 <DLZ-prefix>devraw
移至原始儲存體帳戶。
搭配 AdatumCRM 使用複製資料工具
此程式會從 SQL 資料庫 實例擷 AdatumCRM
取客戶資料,並將其複製到 Data Lake 儲存體 Gen2 儲存體。
在 Data Factory Studio 中,選取 [ 作者] 圖示,然後選取 [ Factory 資源 ]。 選取加號 (+),然後選取 [ 複製資料] 工具 。
完成複製資料工具精靈中的每個步驟:
若要建立觸發程式以每隔 24 小時執行管線,請選取 [ 排程 ]。
若要建立連結服務,將此資料處理站連線到
AdatumCRM
伺服器 (來源) 上的<DP-prefix>-dev-sqlserver001
SQL 資料庫 實例,請選取 [新增連線ion ]。注意
如果您在SQL 資料庫實例或儲存體帳戶中連線或存取資料時發生錯誤,請檢閱您在 Azure 訂用帳戶中的許可權。 請確定資料處理站具有任何有問題的資源所需的認證和存取權限。
選取這三個數據表:
SalesLT.Address
SalesLT.Customer
SalesLT.CustomerAddress
建立新的連結服務,以存取
<DLZ-prefix>devraw
Azure Data Lake 儲存體 Gen2 儲存體(目的地)。流覽儲存體中的
<DLZ-prefix>devraw
資料夾,然後選取 [資料 ] 作為目的地。將檔案名尾碼變更為 .csv ,並使用其他預設選項。
移至下一個窗格,然後選取 [將標頭新增至檔案 ]。
當您完成精靈時,[ 部署完成 ] 窗格看起來會類似下列範例:
新的管線會列在 [管線] 中 。
執行管線
此程式會在 Data\CRM 資料夾中建立三個 .csv 檔案,其中一個用於資料庫中每個選取的 AdatumCRM
資料表。
重新命名管線
CopyPipeline_CRM_to_Raw
。重新命名資料集
CRM_Raw_Storage
和CRM_DB
。在 [ 處理站資源] 命令列中,選取 [ 全部 發佈]。
CopyPipeline_CRM_to_Raw
選取管線,然後在管線命令列中,選取 [觸發程式 ] 將三個數據表從 SQL 資料庫 複製到 Data Lake 儲存體 Gen2。
搭配 AdatumERP 使用複製資料工具
接下來,從 AdatumERP
資料庫擷取資料。 資料代表來自 ERP 系統的銷售資料。
仍在 Data Factory Studio 中,使用複製資料工具建立新的管線。 這次,您會將銷售資料從
AdatumERP
傳送至<DLZ-prefix>devraw
儲存體帳戶資料檔案夾,就像您使用 CRM 資料一樣。 完成相同的步驟,但使用AdatumERP
資料庫作為來源。建立每小時觸發的排程。
建立SQL 資料庫實例的連結
AdatumERP
服務。選取下列七個數據表:
SalesLT.Product
SalesLT.ProductCategory
SalesLT.ProductDescription
SalesLT.ProductModel
SalesLT.ProductModelProductDescription
SalesLT.SalesOrderDetail
SalesLT.SalesOrderHeader
使用儲存體帳戶的現有連結服務,
<DLZ-prefix>devraw
並將副檔名設定為 .csv 。選取 [將標頭新增至檔案 ]。
再次完成精靈,並重新命名管線
CopyPipeline_ERP_to_DevRaw
。 然後,在命令列中,選取 [ 全部 發佈]。 最後,在此新建立的管線上執行觸發程式,將七個選取的資料表從 SQL 資料庫 複製到 Data Lake 儲存體 Gen2。
當您完成這些步驟時,Data Lake 儲存體 Gen2 儲存體中有 <DLZ-prefix>devraw
10 個 CSV 檔案。 在下一節中,您會在 Data Lake 儲存體 Gen2 儲存體中 <DLZ-prefix>devencur
策劃檔案。
在 Data Lake 儲存體 Gen2 中策劃資料
當您完成在原始 <DLZ-prefix>devraw
Data Lake 儲存體 Gen2 儲存體中建立 10 個 CSV 檔案時,請視需要將這些檔案複製到策展 <DLZ-prefix>devencur
的 Data Lake 儲存體 Gen2 儲存體。
繼續使用 Azure Data Factory 來建立這些新管線來協調資料移動。
將 CRM 策展至客戶資料
建立資料流程,以取得 中 <DLZ-prefix>devraw
Data\CRM 資料夾中的 CSV 檔案。 轉換檔案,並將 .parquet 檔案格式的轉換檔案 複製到 中的 <DLZ-prefix>devencur
Data\Customer 資料夾。
在 Azure Data Factory 中,移至資料處理站,然後選取 [協調]。
在 [一般] 中 ,將管線
Pipeline_transform_CRM
命名為 。在 [ 活動] 窗格中,展開 [移動和轉換 ]。 拖曳資料流程活動,並將其放在管線畫布中。
在 [新增資料流程 ] 中 ,選取 [ 建立新的資料流程 ],並將資料流程
CRM_to_Customer
命名為 。 選取 [完成]。注意
在管線畫布的命令列中,開啟 資料流程偵錯 。 在偵錯模式中,您可以對即時 Apache Spark 叢集以互動方式測試轉換邏輯。 資料流程叢集需要 5 到 7 分鐘才能熱身。 建議您在開始資料流程開發之前開啟偵錯。
當您完成選取資料流程中的
CRM_to_Customer
選項時,Pipeline_transform_CRM
管線看起來會類似下列範例:資料流程看起來像下列範例:
接下來,修改來來源資料流
CRMAddress
中的這些設定:從 Data Lake 儲存體 Gen2 建立新的資料集。 使用 DelimitedText 格式。 將資料集
DevRaw_CRM_Address
命名為 。連線連結的服務至
<DLZ-prefix>devraw
。選取檔案
Data\CRM\SalesLTAddress.csv
作為來源。
修改配對
CustAddress
接收資料流程中的這些設定:建立名為
DevEncur_Cust_Address
的新資料集。選取 中的
<DLZ-prefix>devencur
Data\Customer 資料夾作為接收。在 [設定\Output 到單一檔案] 下 ,將檔案 轉換成 Address.parquet 。
針對資料流程組態的其餘部分,請使用下表中每個元件的資訊。 請注意, CRMAddress
和 CustAddress
是前兩個數據列。 使用它們做為其他物件的範例。
下表中沒有的專案是 RemovePasswords
架構修飾詞。 上述螢幕擷取畫面顯示此專案介於 和 CustCustomer
之間 CRMCustomer
。 若要新增此架構修飾詞,請移至 [ 選取設定 ] 並移除 PasswordHash 和 PasswordSalt 。
CRMCustomer
會從 .crv 檔案傳回 15 個數據行架構。 CustCustomer
在架構修飾詞移除兩個密碼資料行之後,只會寫入 13 個數據行。
完整資料表
名稱 | Object type | 資料集名稱 | 資料存放區 | 格式類型 | 連結服務 | 檔案或資料夾 |
---|---|---|---|---|---|---|
CRMAddress |
來源 | DevRaw_CRM_Address |
Azure Data Lake Storage Gen2 | DelimitedText | devraw |
Data\CRM\SalesLTAddress.csv |
CustAddress |
接收 | DevEncur_Cust_Address |
Azure Data Lake Storage Gen2 | Parquet | devencur |
Data\Customer\Address.parquet |
CRMCustomer |
來源 | DevRaw_CRM_Customer |
Azure Data Lake Storage Gen2 | DelimitedText | devraw |
Data\CRM\SalesLTCustomer.csv |
CustCustomer |
接收 | DevEncur_Cust_Customer |
Azure Data Lake Storage Gen2 | Parquet | devencur |
Data\Customer\Customer.parquet |
CRMCustomerAddress |
來源 | DevRaw_CRM_CustomerAddress |
Azure Data Lake Storage Gen2 | DelimitedText | devraw |
Data\CRM\SalesLTCustomerAddress.csv |
CustCustomerAddress |
接收 | DevEncur_Cust_CustomerAddress |
Azure Data Lake Storage Gen2 | Parquet | devencur |
Data\Customer\CustomerAddress.parquet |
ERP to Sales 資料表
現在,重複類似的步驟來建立 Pipeline_transform_ERP
管線、建立 ERP_to_Sales
資料流程來轉換 中 Data\ERP 資料夾中 <DLZ-prefix>devraw
的 .csv 檔案 ,並將轉換的檔案 複製到 中的 <DLZ-prefix>devencur
Data\Sales 資料夾。
在下表中,您會發現在資料流程中 ERP_to_Sales
建立的物件,以及您需要針對每個物件修改的設定。 每個 .csv 檔案都會對應至 .parquet 接收。
名稱 | Object type | 資料集名稱 | 資料存放區 | 格式類型 | 連結服務 | 檔案或資料夾 |
---|---|---|---|---|---|---|
ERPProduct |
來源 | DevRaw_ERP_Product |
Azure Data Lake Storage Gen2 | DelimitedText | devraw |
Data\ERP\SalesLTProduct.csv |
SalesProduct |
接收 | DevEncur_Sales_Product |
Azure Data Lake Storage Gen2 | Parquet | devencur |
Data\Sales\Product.parquet |
ERPProductCategory |
來源 | DevRaw_ERP_ProductCategory |
Azure Data Lake Storage Gen2 | DelimitedText | devraw |
Data\ERP\SalesLTProductCategory.csv |
SalesProductCategory |
接收 | DevEncur_Sales_ProductCategory |
Azure Data Lake Storage Gen2 | Parquet | devencur |
Data\Sales\ProductCategory.parquet |
ERPProductDescription |
來源 | DevRaw_ERP_ProductDescription |
Azure Data Lake Storage Gen2 | DelimitedText | devraw |
Data\ERP\SalesLTProductDescription.csv |
SalesProductDescription |
接收 | DevEncur_Sales_ProductDescription |
Azure Data Lake Storage Gen2 | Parquet | devencur |
Data\Sales\ProductDescription.parquet |
ERPProductModel |
來源 | DevRaw_ERP_ProductModel |
Azure Data Lake Storage Gen2 | DelimitedText | devraw |
Data\ERP\SalesLTProductModel.csv |
SalesProductModel |
接收 | DevEncur_Sales_ProductModel |
Azure Data Lake Storage Gen2 | Parquet | devencur |
Data\Sales\ProductModel.parquet |
ERPProductModelProductDescription |
來源 | DevRaw_ERP_ProductModelProductDescription |
Azure Data Lake Storage Gen2 | DelimitedText | devraw |
Data\ERP\SalesLTProductModelProductDescription.csv |
SalesProductModelProductDescription |
接收 | DevEncur_Sales_ProductModelProductDescription |
Azure Data Lake Storage Gen2 | Parquet | devencur |
Data\Sales\ProductModelProductDescription.parquet |
ERPProductSalesOrderDetail |
來源 | DevRaw_ERP_ProductSalesOrderDetail |
Azure Data Lake Storage Gen2 | DelimitedText | devraw |
Data\ERP\SalesLTProductSalesOrderDetail.csv |
SalesProductSalesOrderDetail |
接收 | DevEncur_Sales_ProductSalesOrderDetail |
Azure Data Lake Storage Gen2 | Parquet | devencur |
Data\Sales\ProductSalesOrderDetail.parquet |
ERPProductSalesOrderHeader |
來源 | DevRaw_ERP_ProductSalesOrderHeader |
Azure Data Lake Storage Gen2 | DelimitedText | devraw |
Data\ERP\SalesLTProductSalesOrderHeader.csv |
SalesProductSalesOrderHeader |
接收 | DevEncur_Sales_ProductSalesOrderHeader |
Azure Data Lake Storage Gen2 | Parquet | devencur |
Data\Sales\ProductSalesOrderHeader.parquet |