Share via


教學課程:設定資料產品批次

在本教學課程中,瞭解如何設定已部署的資料產品服務。 使用 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 資料來源。

  1. Azure 入口網站 的入口網站全域控制項中,選取 Cloud Shell 圖示以開啟 Azure Cloud Shell 終端機。 針對終端機類型選取 [Bash ]。

    Screenshot that shows the Cloud Shell icon in the Azure portal.

  2. 在 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 以編錄資料產品批次的步驟。 您一開始會建立服務主體。 然後,您可以設定必要的資源,並指派角色和存取權限。

建立服務主體

  1. Azure 入口網站 的入口網站全域控制項中,選取 Cloud Shell 圖示以開啟 Azure Cloud Shell 終端機。 針對終端機類型選取 [Bash ]。

  2. 修改下列腳本:

    • 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
    
  3. 檢查 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 儲存體帳戶許可權

  1. 在Azure 入口網站中,移至 <DLZ-prefix>devraw Azure 儲存體帳戶。 在資源功能表中,選取 [存取控制 [IAM]。

    Screenshot that shows the storage account service principal permissions pane, with Access Control highlighted.

  2. 選取新增>新增角色指派

    Screenshot that shows the storage account service principal Access Control pane that shows how to add a role assignment.

  3. [新增角色指派 ] 的 [ 角色 ] 索引標籤上,搜尋並選取 [儲存體 Blob 資料讀取器 ]。 然後選取下一步

    Screenshot that shows searching for Storage Blob Data Reader under Add role assignment.

  4. 在 [成員] 中 ,選擇 [ 選取成員 ]。

    Screenshot that shows select members pane under add role assignment.

  5. 在 [ 選取成員 ] 中,搜尋您所建立的服務主體名稱。

    Screenshot that shows how to search for a service principal name.

  6. 在搜尋結果中,選取服務主體,然後選擇 [ 選取 ]。

    Screenshot that shows the results pane after searching for a service principal name.

  7. 若要完成角色指派,請選取 [ 檢閱 + 指派 兩次]。

針對其餘儲存體帳戶重複本節中的步驟:

  • <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 虛擬機器。

  1. 移至 <DP-prefix>-dev-sqlserver001 Azure SQL 虛擬機器。 在 [資源] 功能表的 [設定] 下 ,選取 [Microsoft Entra ID ]。

    Screenshot that shows the Microsoft Entra pane in Azure SQL Database Server.

  2. 在命令列中,選取 [ 設定系統管理員 ]。搜尋並選取您自己的帳戶。 選擇選取

    Screenshot that shows how to search for an account to make a user an admin.

  3. 在資源功能表中,選取 [SQL 資料庫 ],然後選取 AdatumCRM 資料庫。

    Screenshot that shows a search for the correct database, with AdatumCRM highlighted.

  4. 在 [ AdatumCRM 資源] 功能表中,選取 [查詢編輯器][預覽]。 在 [Active Directory 驗證] 底 下,選取 [繼續身分] 按鈕以 登入。

    Screenshot that shows how to sign in to the query editor by using Active Directory authentication.

  5. 在查詢編輯器中,修改下列語句,以 <service principal name> 取代為您建立的服務主體名稱(例如 , purview-service-principal 。 然後,執行 語句。

    
    CREATE USER [<service principal name>] FROM EXTERNAL PROVIDER
    GO
    
    EXEC sp_addrolemember 'db_datareader', [<service principal name>]
    GO
    
    

    Screenshot that shows how to execute statements in the query editor.

針對 AdatumERP 資料庫重複步驟 3 到 5。

設定金鑰保存庫

Purview 會從 Azure 金鑰保存庫 實例讀取服務主體金鑰。 金鑰保存庫會在資料管理登陸區域部署中建立。 設定金鑰保存庫需要下列步驟:

  1. 將服務主體金鑰新增至金鑰保存庫作為秘密。

  2. 在金鑰保存庫中授與 Purview MSI 秘密讀取者許可權。

  3. 將金鑰保存庫新增至 Purview 作為金鑰保存庫連線。

  4. 在 Purview 中建立指向金鑰保存庫秘密的認證。

新增許可權以將秘密新增至金鑰保存庫

  1. 在Azure 入口網站中,移至 Azure 金鑰保存庫服務。 搜尋 <DMLZ-prefix>-dev-vault001 金鑰保存庫。

    Screenshot that shows the Access Control Key Vault pane.

  2. 在資源功能表中,選取 [存取控制][IAM]。 在命令列中,選取 [新增 ],然後選取 [ 新增角色指派 ]。

    Screenshot that shows adding a role assignment in Purview.

  3. 在 [ 角色] 索引標籤上,搜尋 ,然後選取 [金鑰保存庫 管理員istrator ]。 選取 [下一步] 。

    Screenshot that shows how to search for the Key Vault Administrator role.

  4. 在 [成員] 中 ,選擇 [ 選取成員 ] 以新增目前登入的 帳戶。

    Screenshot that shows the Select members button highlighted.

  5. 在 [ 選取成員 ] 中,搜尋目前登入的帳戶。 選取帳戶,然後選擇 [ 選取 ]。

    Screenshot that shows the select member search box.

  6. 若要完成角色指派程式,請選取 [ 檢閱 + 指派 兩次]。

將秘密新增至金鑰保存庫

完成下列步驟,以從 Bastion 主機虛擬機器登入Azure 入口網站。

  1. 在金鑰 <DMLZ-prefix>-dev-vault001 保存庫資源功能表中,選取 [ 秘密 ]。 在命令列中,選取 [產生/匯 入] 以建立新的秘密。

    Screenshot that shows the key vault Generate/Import button highlighted.

  2. [建立秘密 ] 中,選取或輸入下列值:

    設定 動作
    上傳選項 選取 [ 手動 ]。
    名稱 輸入 service-principal-secret
    輸入您稍早建立的服務主體密碼。

    Screenshot that shows the key vault Create a secret pane.

    注意

    此步驟會使用服務主體密碼金鑰,在金鑰保存庫中建立名為 service-principal-secret 的秘密。 Purview 會使用秘密來連線並掃描資料來源。 如果您輸入不正確的密碼,您將無法完成下列各節。

  3. 選取建立

在金鑰保存庫中設定 Purview 許可權

若要讓 Purview 實例讀取儲存在金鑰保存庫中的秘密,您必須指派 Purview 金鑰保存庫中的相關許可權。 若要設定許可權,您可以將 Purview 受控識別新增至金鑰保存庫秘密讀取者角色。

  1. 在金鑰 <DMLZ-prefix>-dev-vault001 保存庫資源功能表中,選取 [ 存取控制][IAM]。

  2. 在命令列中,選取 [新增 ],然後選取 [ 新增角色指派 ]。

    Screenshot that shows the Access Control pane, with the add role assignment button highlighted.

  3. 在 [角色] 中,搜尋並選取 [金鑰保存庫秘密使用者 ]。 選取 [下一步] 。

    Screenshot that shows the search for Key Vault Secret User pane.

  4. 在 [成員] 中 ,選擇 [ 選取成員 ]。

    Screenshot that shows the add role assignment pane with the select member button highlighted.

  5. 搜尋 <DMLZ-prefix>-dev-purview001 Purview 實例。 選取實例以新增相關的帳戶。 然後選擇 [ 選取 ]。

    Screenshot that shows the search box for the Purview instance name.

  6. 若要完成角色指派程式,請選取 [ 檢閱 + 指派 兩次]。

    Screenshot that shows how to complete a role assignment.

在 Purview 中設定金鑰保存庫連線

若要設定與 Purview 的金鑰保存庫連線,您必須使用 Azure Bastion 主機虛擬機器登入Azure 入口網站。

  1. 在Azure 入口網站中,移至 <DMLZ-prefix>-dev-purview001 Purview 帳戶。 在 [開始使用] 底 下,在 [開啟 Microsoft Purview 治理入口網站 ] 中,選取 [ 開啟 ]。

    Screenshot that shows the Microsoft Purview account overview.

  2. 在 Purview Studio 中,選取 [管理 > 認證]。 在 [ 認證] 命令列中,選取 [ 管理金鑰保存庫連線 ],然後選取 [ 新增 ]。

    Screenshot that shows the Manage Key Vault connections button.

  3. [新增金鑰保存庫連線 ] 中,選取或輸入下列資訊:

    設定 動作
    名稱 輸入 < DMLZ-prefix-dev-vault001 > 。
    Azure 訂用帳戶 選取裝載金鑰保存庫的訂用帳戶。
    金鑰保存庫名稱 < 選取 DMLZ-prefix-dev-vault001 > 金鑰保存庫。

    Screenshot that shows the new Key Vault connections pane.

  4. 選取建立

  5. [確認授與存取權 ] 中,選取 [ 確認 ]。

在 Purview 中建立認證

設定金鑰保存庫的最後一個步驟是在 Purview 中建立認證,以指向您在服務主體金鑰保存庫中建立的秘密。

  1. 在 Purview Studio 中,選取 [管理 > 認證]。 在 [ 認證] 命令列中,選取 [ 新增 ]。

    Screenshot that shows the new Purview Credentials pane.

  2. 在 [ 新增認證 ] 中,選取或輸入下列資訊:

    設定 動作
    名稱 輸入 purviewServicePrincipal
    驗證方法 選取 [服務主體]
    租用戶識別碼 值會自動填入。
    服務主體識別碼 輸入服務主體的應用程式識別碼或用戶端識別碼。
    金鑰保存庫連線 選取您在上一節中建立的金鑰保存庫連線。
    秘密名稱 在金鑰保存庫中輸入秘密的名稱( service-principal-secret )。

    Screenshot that shows the new credentials form, with values highlighted.

  3. 選取建立

註冊資料來源

此時,Purview 可以連線到服務主體。 現在您可以註冊及設定資料來源。

註冊 Azure Data Lake 儲存體 Gen2 帳戶

下列步驟概述註冊 Azure Data Lake 儲存體 Gen2 儲存體帳戶的程式。

  1. 在 Purview Studio 中,選取資料對應圖示、選取 [來源 ],然後選取 [ 註冊 ]。

    Screenshot that shows the data map button highlighted in Purview.

  2. [註冊來源 ] 中,選取 [Azure Data Lake 儲存體 Gen2 ],然後選取 [ 繼續 ]。

    Screenshot that shows the Azure Data Lake Storage Gen2 registration source.

  3. [註冊來源][Azure Data Lake 儲存體 Gen2] 中,選取或輸入下列資訊:

    設定 動作
    名稱 輸入 < DLZ 前置 > 詞 dldevraw
    Azure 訂用帳戶 選取裝載儲存體帳戶的訂用帳戶。
    儲存體帳戶名稱 選取相關的儲存體帳戶。
    端點 此值會根據選取的儲存體帳戶自動填入。
    選取集合 選取根集合。

    Screenshot that shows the Register Azure Data Lake Storage Gen2 pane, with values highlighted.

  4. 選取 [ 註冊 ] 以建立資料來源。

針對下列儲存體帳戶重複這些步驟:

  • <DMLZ-prefix>devencur
  • <DMLZ-prefix>devwork

將SQL 資料庫實例註冊為數據源

  1. 在 Purview Studio 中 ,選取 [資料對應 ] 圖示,選取 [來源 ],然後選取 [ 註冊 ]。

    Screenshot that shows the data map button highlighted in the Purview interface.

  2. 在 [ 註冊來源 ] 中,選取 [Azure SQL 資料庫 ],然後選取 [ 繼續 ]。

    Screenshot that shows the Azure SQL Database registration source.

  3. [註冊來源](Azure SQL 資料庫) 中,選取或輸入下列資訊:

    設定 動作
    名稱 輸入 SQLDatabase (建立 Azure SQL 資料庫 實例 中所 建立的資料庫名稱)。
    訂用帳戶 選取裝載資料庫的訂用帳戶。
    伺服器名稱 輸入 < DP-prefix-dev-sqlserver001 > 。

    Screenshot that shows the Register SQL Database form, with values highlighted.

  4. 選取註冊

設定掃描

接下來,設定資料來源的掃描。

掃描 Data Lake 儲存體 Gen2 資料來源

  1. 在 Purview Studio 中,移至資料對應。 在資料來源上,選取 [ 新增掃描] 圖示。

    Screenshot that shows how to set up a new Data Lake Storage Gen2 scan.

  2. 在新的掃描窗格中,選取或輸入下列資訊:

    設定 動作
    名稱 輸入 Scan_ < DLZ 前置 > 詞 devraw
    透過整合執行時間連線 選取使用資料登陸區域部署的自我裝載整合執行時間。
    認證 選取您為 Purview 設定的服務主體。

    Screenshot that shows the scan Data Lake Storage Gen2 credential form with values entered.

  3. 選取 [ 測試連線 ] 以確認連線能力,以及該許可權已就緒。 選取 [繼續]。

  4. [設定掃描 範圍] 中,選取整個儲存體帳戶作為掃描範圍,然後選取 [ 繼續]。

    Screenshot that shows the Scope your scan pane with storage accounts selected.

  5. [選取掃描規則集 ] 中,選取 [AdlsGen2 ],然後選取 [ 繼續 ]。

    Screenshot that shows the Data Lake Storage Gen2 scan rule set selection.

  6. [設定掃描觸發程式 ] 中,選取 [一次 ],然後選取 [ 繼續 ]。

    Screenshot that shows the set a scan Trigger pane, with Once selected.

  7. 在 [ 檢閱您的掃描 ] 中,檢閱掃描設定。 選取 [ 儲存並執行] 以開始掃描。

    Screenshot that shows reviewing your scan before you save and run it.

針對下列儲存體帳戶重複這些步驟:

  • <DMLZ-prefix>devencur
  • <DMLZ-prefix>devwork

掃描SQL 資料庫資料來源

  1. 在 Azure SQL 資料庫資料來源中,選取 [ 新增掃描 ]。

    Screenshot that shows how to create a new SQL Database scan.

  2. 在新的掃描窗格中,選取或輸入下列資訊:

    設定 動作
    名稱 輸入 Scan_Database001
    透過整合執行時間連線 選取 [Purview-SHIR ]。
    資料庫名稱 選取資料庫名稱。
    認證 選取您在 Purview 中建立的金鑰保存庫認證。
    譜系擷取 (預覽) 選取 [關閉]

    Screenshot that shows the scan credential form, with values entered.

  3. 選取 [ 測試連線 ] 以確認連線能力,以及該許可權已就緒。 選取 [繼續]。

  4. 選取掃描的範圍。 若要掃描整個資料庫,請使用預設值。

    Screenshot that shows how to set the scope for the scan to the whole database.

  5. 在 [ 選取掃描規則集 ] 中,選取 [AzureSqlDatabase ],然後選取 [ 繼續 ]。

    Screenshot that shows the SQL Database scan rule set selection.

  6. [設定掃描觸發程式 ] 中,選取 [一次 ],然後選取 [ 繼續 ]。

    Screenshot that shows the set a scan to run pane with once selected.

  7. 在 [ 檢閱您的掃描 ] 中,檢閱掃描設定。 選取 [ 儲存並執行] 以開始掃描。

針對 AdatumERP 資料庫重複這些步驟。

Purview 現在已針對已註冊的資料來源設定資料控管。

將資料 SQL 資料庫複製到 Data Lake 儲存體 Gen2

在下列步驟中,您會使用 Data Factory 中的複製資料工具來建立管線,以從 SQL 資料庫 實例 AdatumCRM 複製資料表,以及 AdatumERP 複製到 Data Lake 儲存體 Gen2 帳戶中的 <DLZ-prefix>devraw CSV 檔案。

環境已鎖定為公用存取,因此您必須先設定私人端點。 若要使用私人端點,您會在本機瀏覽器中登入Azure 入口網站,然後連線到 Bastion 主機虛擬機器以存取所需的 Azure 服務。

建立私人端點

若要為所需的資源設定私人端點:

  1. 在資源群組中 <DMLZ-prefix>-dev-bastion ,選取 <DMLZ-prefix>-dev-vm001

    Screenshot that shows the resource groups for connecting to the bastion host virtual machine.

  2. 在命令列中,選取 [連線 ],然後選取 [Bastion ]。

    Screenshot that shows the connect to bastion selection pane.

  3. 輸入虛擬機器的使用者名稱和密碼,然後選取 [連線 ]。

    Screenshot that shows the username and password entry pane.

  4. 在虛擬機器的網頁瀏覽器中,移至Azure 入口網站。 移至 <DLZ-prefix>-dev-shared-integration 資源群組,然後開啟 <DLZ-prefix>-dev-integration-datafactory001 資料處理站。

    Screenshot that shows how to go to a different resource group to open Azure Data Factory.

  5. 在 [開始使用] 底 下,在 [開啟 Azure Data Factory Studio ] 中,選取 [ 開啟 ]。

    Screenshot that shows how to open Azure Data Factory Studio.

  6. 在 Data Factory Studio 功能表中,選取 [ 管理 ] 圖示(圖示看起來像一個方塊工具箱,上面印有扳手圖章)。 在資源功能表中,選取 [受控私人端點 ],以建立將 Data Factory 連線至其他受保護 Azure 服務所需的私人端點。

    稍後一節將討論核准私人端點的存取要求。 核准私人端點存取要求之後,其核准狀態會是 [已 核准],如下列儲存體帳戶範例 <DLZ-prefix>devencur 所示。

    Screenshot that shows how to go to the Manage Private Endpoints pane.

  7. 核准私人端點連線之前,請選取 [ 新增 ]。 輸入 Azure SQL 以尋找您用來為 Azure SQL 虛擬機器建立新受控私人端點的 <DP-prefix>-dev-sqlserver001 Azure SQL 資料庫 連接器。 虛擬機器包含您稍早建立的 AdatumCRMAdatumERP 資料庫。

  8. 新的受控私人端點 (Azure SQL 資料庫)中,針對 [名稱 ] ,輸入 data-product-dev-sqlserver001 。 輸入您用來建立資源的 Azure 訂用帳戶。 針對 [ 伺服器名稱 ],選取 <DP-prefix>-dev-sqlserver001 ,讓您可以在下一節中從這個資料處理站連線到它。

    Screenshot that shows how to name the new private endpoint.

核准私人端點存取要求

若要為必要的服務提供 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 管理私人端點存取要求。 在儲存體帳戶的資源功能表中,選取 [ 網路]。 在命令列中,選取 [私人端點連線 ]。

Screenshot that shows how to go to the Private endpoint connections pane.

針對某些 Azure 資源,您會在資源功能表中選取 [私人端點連線 ]。 下列螢幕擷取畫面顯示 Azure SQL Server 的範例。

若要核准私人端點存取要求,請在 [私人端點連線 ] 中選取擱置的存取要求,然後選取 [ 核准 ]:

Screenshot that shows to approve a private endpoint access request.

在您核准每個必要服務中的存取要求之後,要求可能需要幾分鐘的時間,才會在 Data Factory Studio 的受控私人端點 顯示為 [已核准 ]。 即使您在命令列中選取 [重新 整理],核准狀態可能已過時幾分鐘。

當您完成核准必要服務的所有存取要求時,在 受控私人端點 中, 所有服務的核准狀態 值會 核准

Screenshot that shows the private endpoint SQL connections as Approved.

角色指派

當您完成核准私人端點存取要求時,請為 Data Factory 新增適當的角色許可權以存取這些資源:

  • SQL 資料庫 實例 AdatumCRMAdatumERP Azure SQL Server 中 <DP-prefix>-dev-sqlserver001
  • 儲存體 帳戶 <DLZ-prefix>devraw<DLZ-prefix>devencur<DLZ-prefix>devwork
  • Purview 帳戶 <DMLZ-prefix>-dev-purview001

Azure SQL 虛擬機器

  1. 若要新增角色指派,請從 Azure SQL 虛擬機器開始。 在資源群組中 <DMLZ-prefix>-dev-dp001 ,移至 <DP-prefix>-dev-sqlserver001

  2. 在資源功能表中,選取 [存取控制][IAM]。 在命令列中,選取 [新增 > 角色指派 ]。

  3. 在 [ 角色] 索引標籤上,選取 [ 參與者 ],然後選取 [ 下一步 ]。

    Screenshot that shows the Contributor role selection pane.

  4. 在 [成員] 中 ,針對 [指派存取權] 選取 [ 受控識別 ]。 針對 [ 成員 ],選擇 [ 選取成員 ]。

    Screenshot that shows the select Managed Identity Members pane.

  5. 在 [ 選取受控識別] 中,選取您的 Azure 訂用 帳戶。 針對 [受控識別 ],選取 [ Data Factory][V2], 以查看可用的資料處理站。 在資料處理站清單中,選取 [Azure Data Factory < DLZ-prefix-dev-integration-datafactory001 > ]。 選擇選取

    Screenshot that shows the role assignment completion pane.

  6. 選取 [ 檢閱 + 指派 兩次] 以完成此程式。

儲存體帳戶

接下來,將必要的角色指派給 <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 帳戶。

  1. 在資源群組 <DMLZ-prefix>-dev-governance 中,移至 <DMLZ-prefix>-dev-purview001 Purview 帳戶。

  2. 在 Purview Studio 中 ,選取 [資料對應 ] 圖示,然後選取 [ 集合 ]。

  3. 選取集合的 [ 角色指派] 索引 標籤。 在 [資料策劃者 ] 下 ,新增 的 <DLZ-prefix>-dev-integration-datafactory001 受控識別:

    Screenshot that shows how to add data curators to your Purview role assignment.

連線 Data Factory 至 Purview

許可權已設定,Purview 現在可以看到資料處理站。 下一個步驟是連線 <DMLZ-prefix>-dev-purview001<DLZ-prefix>-dev-integration-datafactory001

  1. 在 Purview Studio 中 ,選取 [管理 ] 圖示,然後選取 [Data Factory ]。 選取 [ 新增 ] 以建立 Data Factory 連線。

  2. 在 [ 新增 Data Factory 連線 ] 窗格中,輸入您的 Azure 訂用帳戶,然後選取 <DLZ-prefix>-dev-integration-datafactory001 Data Factory。 選取 [確定]。

    Screenshot that shows what the Purview Studio pane looks like while selecting a new connection.

  3. 在 Data Factory Studio 實例的 <DLZ-prefix>-dev-integration-datafactory001 [管理 Azure Purview ] > ,重新整理 Azure Purview 帳戶。

    整合 Data Lineage - Pipeline 現在會顯示綠色 連線圖示

    Screenshot that shows the Azure Data Factory Purview account pane with the data lineage pipeline connected.

建立 ETL 管線

<DLZ-prefix>-dev-integration-datafactory001既然 具有必要的存取權限,請在 Data Factory 中建立複製活動,以將資料從 SQL 資料庫 實例 <DLZ-prefix>devraw 移至原始儲存體帳戶。

搭配 AdatumCRM 使用複製資料工具

此程式會從 SQL 資料庫 實例擷 AdatumCRM 取客戶資料,並將其複製到 Data Lake 儲存體 Gen2 儲存體。

  1. 在 Data Factory Studio 中,選取 [ 作者] 圖示,然後選取 [ Factory 資源 ]。 選取加號 (+),然後選取 [ 複製資料] 工具

    Screenshot that shows the Copy Data tool under factory resources.

    完成複製資料工具精靈中的每個步驟:

    1. 若要建立觸發程式以每隔 24 小時執行管線,請選取 [ 排程 ]。

      Screenshot that shows how to schedule a Trigger to run periodically in CRM.

    2. 若要建立連結服務,將此資料處理站連線到 AdatumCRM 伺服器 (來源) 上的 <DP-prefix>-dev-sqlserver001 SQL 資料庫 實例,請選取 [新增連線ion ]。

      Screenshot that shows connecting to the AdatumCRM database.

      注意

      如果您在SQL 資料庫實例或儲存體帳戶中連線或存取資料時發生錯誤,請檢閱您在 Azure 訂用帳戶中的許可權。 請確定資料處理站具有任何有問題的資源所需的認證和存取權限。

    3. 選取這三個數據表:

      • SalesLT.Address
      • SalesLT.Customer
      • SalesLT.CustomerAddress

      Screenshot that shows the select tables pane with tables highlighted.

    4. 建立新的連結服務,以存取 <DLZ-prefix>devraw Azure Data Lake 儲存體 Gen2 儲存體(目的地)。

      Screenshot that shows the raw storage connection.

    5. 流覽儲存體中的 <DLZ-prefix>devraw 資料夾,然後選取 [資料 ] 作為目的地。

      Screenshot that shows the destination as raw data.

    6. 將檔案名尾碼變更為 .csv ,並使用其他預設選項。

      Screenshot that shows the file name suffix field with CSV entered.

    7. 移至下一個窗格,然後選取 [將標頭新增至檔案 ]。

      Screenshot that shows how to add a header to a file.

    8. 當您完成精靈時,[ 部署完成 ] 窗格看起來會類似下列範例:

      Screenshot that shows the Copy Data tool deployment completed.

新的管線會列在 [管線]

執行管線

此程式會在 Data\CRM 資料夾中建立三個 .csv 檔案,其中一個用於資料庫中每個選取的 AdatumCRM 資料表。

  1. 重新命名管線 CopyPipeline_CRM_to_Raw

  2. 重新命名資料集 CRM_Raw_StorageCRM_DB

  3. 在 [ 處理站資源] 命令列中,選取 [ 全部 發佈]。

  4. CopyPipeline_CRM_to_Raw選取管線,然後在管線命令列中,選取 [觸發程式 ] 將三個數據表從 SQL 資料庫 複製到 Data Lake 儲存體 Gen2。

    Screenshot that shows how to use the trigger tool to copy data from the SQL Database to Data Lake Storage Gen2.

搭配 AdatumERP 使用複製資料工具

接下來,從 AdatumERP 資料庫擷取資料。 資料代表來自 ERP 系統的銷售資料。

  1. 仍在 Data Factory Studio 中,使用複製資料工具建立新的管線。 這次,您會將銷售資料從 AdatumERP 傳送至 <DLZ-prefix>devraw 儲存體帳戶資料檔案夾,就像您使用 CRM 資料一樣。 完成相同的步驟,但使用 AdatumERP 資料庫作為來源。

    1. 建立每小時觸發的排程。

    2. 建立SQL 資料庫實例的連結 AdatumERP 服務。

      Screenshot that shows the Adatum ERP connection pane completed.

    3. 選取下列七個數據表:

      • SalesLT.Product
      • SalesLT.ProductCategory
      • SalesLT.ProductDescription
      • SalesLT.ProductModel
      • SalesLT.ProductModelProductDescription
      • SalesLT.SalesOrderDetail
      • SalesLT.SalesOrderHeader

      Screenshot that shows Adatum ERP Table options.

    4. 使用儲存體帳戶的現有連結服務, <DLZ-prefix>devraw 並將副檔名設定為 .csv

      Screenshot that shows a raw storage account with the file extension set to CSV.

    5. 選取 [將標頭新增至檔案 ]。

      Screenshot that shows adding a header to a file under File format settings.

    6. 再次完成精靈,並重新命名管線 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 資料夾。

  1. 在 Azure Data Factory 中,移至資料處理站,然後選取 [協調]。

    Screenshot that shows the Orchestrate button in Azure Data Factory.

  2. 在 [一般] ,將管線 Pipeline_transform_CRM 命名為 。

  3. 在 [ 活動] 窗格中,展開 [移動和轉換 ]。 拖曳資料流程活動,並將其放在管線畫布中。

    Screenshot that shows the Activities pane and Move and transform highlighted.

  4. 在 [新增資料流程 ] 中 ,選取 [ 建立新的資料流程 ],並將資料流程 CRM_to_Customer 命名為 。 選取 [完成]

    注意

    在管線畫布的命令列中,開啟 資料流程偵錯 。 在偵錯模式中,您可以對即時 Apache Spark 叢集以互動方式測試轉換邏輯。 資料流程叢集需要 5 到 7 分鐘才能熱身。 建議您在開始資料流程開發之前開啟偵錯。

    Screenshot that shows the Open Data Flow button.

    當您完成選取資料流程中的 CRM_to_Customer 選項時, Pipeline_transform_CRM 管線看起來會類似下列範例:

    Screenshot that shows the pipeline transform CRM.

    資料流程看起來像下列範例:

    Screenshot that shows the CRM to Customer data flow.

  5. 接下來,修改來來源資料流 CRMAddress 中的這些設定:

    1. 從 Data Lake 儲存體 Gen2 建立新的資料集。 使用 DelimitedText 格式。 將資料集 DevRaw_CRM_Address 命名為 。

    2. 連線連結的服務至 <DLZ-prefix>devraw

    3. 選取檔案 Data\CRM\SalesLTAddress.csv 作為來源。

  6. 修改配對 CustAddress 接收資料流程中的這些設定:

    1. 建立名為 DevEncur_Cust_Address 的新資料集。

    2. 選取 中的 <DLZ-prefix>devencur Data\Customer 資料夾作為接收。

    3. 在 [設定\Output 到單一檔案] 下 ,將檔案 轉換成 Address.parquet

針對資料流程組態的其餘部分,請使用下表中每個元件的資訊。 請注意, CRMAddressCustAddress 是前兩個數據列。 使用它們做為其他物件的範例。

下表中沒有的專案是 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

下一步