教學課程:設定數據產品批次
在本教學課程中,瞭解如何設定已部署的數據產品服務。 使用 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
保存庫資源功能表中,選取 [存取》[ 存取》[存取》。在命令行中,選取 [新增],然後選取 [ 新增角色指派]。
在 [角色] 中,搜尋並選取 [金鑰保存庫 秘密使用者]。 選取 [下一步]。
在 [成員] 中,選擇 [選取成員]。
搜尋
<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 |