教學課程:設定數據產品批次

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

    顯示 Azure 入口網站 中 Cloud Shell 圖示的螢幕快照。

  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]。

    顯示記憶體帳戶服務主體許可權窗格的螢幕快照,其中已醒目提示 存取控制。

  2. 選取 [新增>][新增角色指派]。

    顯示記憶體帳戶服務主體 存取控制 窗格的螢幕快照,其中顯示如何新增角色指派。

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

    顯示搜尋 [新增角色指派] 底下的 [儲存體 Blob 數據讀取器] 的螢幕快照。

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

    顯示 [新增角色指派] 底下 [選取成員] 窗格的螢幕快照。

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

    顯示如何搜尋服務主體名稱的螢幕快照。

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

    螢幕快照,顯示搜尋服務主體名稱之後的結果窗格。

  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]。

    顯示 Azure SQL 資料庫 Server 中 [Microsoft Entra] 窗格的螢幕快照。

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

    顯示如何搜尋帳戶以讓用戶成為系統管理員的螢幕快照。

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

    顯示搜尋正確資料庫的螢幕快照,其中已醒目提示 AdatumCRM。

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

    顯示如何使用 Active Directory 驗證登入查詢編輯器的螢幕快照。

  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
    
    

    顯示如何在查詢編輯器中執行語句的螢幕快照。

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

設定金鑰保存庫

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

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

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

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

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

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

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

    顯示 [存取控制 金鑰保存庫] 窗格的螢幕快照。

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

    顯示在 Purview 中新增角色指派的螢幕快照。

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

    顯示如何搜尋 金鑰保存庫 管理員 istrator 角色的螢幕快照。

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

    顯示醒目提示 [選取成員] 按鈕的螢幕快照。

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

    顯示 [選取成員搜尋] 方塊的螢幕快照。

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

將秘密新增至金鑰保存庫

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

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

    顯示已醒目提示金鑰保存庫 [產生/匯入] 按鈕的螢幕快照。

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

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

    顯示金鑰保存庫 [建立秘密] 窗格的螢幕快照。

    注意

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

  3. 選取 建立

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

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

  1. 在密鑰 <DMLZ-prefix>-dev-vault001 保存庫資源功能表中,選取 [存取》[ 存取》[存取》

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

    顯示 [存取控制] 窗格的螢幕快照,其中已醒目提示 [新增角色指派] 按鈕。

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

    顯示 [金鑰保存庫 秘密使用者] 窗格搜尋的螢幕快照。

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

    顯示 [新增角色指派] 窗格的螢幕快照,其中已醒目提示 [選取成員] 按鈕。

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

    顯示 Purview 實體名稱搜尋方塊的螢幕快照。

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

    顯示如何完成角色指派的螢幕快照。

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

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

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

    顯示 Microsoft Purview 帳戶概觀的螢幕快照。

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

    顯示 [管理 金鑰保存庫 連線] 按鈕的螢幕快照。

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

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

    顯示新 金鑰保存庫 連線窗格的螢幕快照。

  4. 選取 建立

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

在 Purview 中建立認證

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

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

    顯示新 [Purview 認證] 窗格的螢幕快照。

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

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

    顯示新認證表單的螢幕快照,其中已醒目提示值。

  3. 選取 建立

註冊資料來源

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

註冊 Azure Data Lake 儲存體 Gen2 帳戶

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

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

    顯示 Purview 中醒目提示資料地圖按鈕的螢幕快照。

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

    顯示 Azure Data Lake 儲存體 Gen2 註冊來源的螢幕快照。

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

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

    顯示 [註冊 Azure Data Lake 儲存體 Gen2] 窗格的螢幕快照,其中已醒目提示值。

  4. 選取 [ 註冊 ] 以建立數據源。

針對下列記憶體帳戶重複這些步驟:

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

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

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

    顯示 Purview 介面中醒目提示之數據對應按鈕的螢幕快照。

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

    顯示 Azure SQL 資料庫 註冊來源的螢幕快照。

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

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

    顯示 [註冊] SQL 資料庫 窗體的螢幕快照,其中已醒目提示值。

  4. 選取註冊

設定掃描

接下來,設定數據源的掃描。

掃描 Data Lake 儲存體 Gen2 數據源

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

    顯示如何設定新的 Data Lake 儲存體 Gen2 掃描的螢幕快照。

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

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

    此螢幕快照顯示已輸入值的掃描 Data Lake 儲存體 Gen2 認證表單。

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

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

    此螢幕快照顯示已選取記憶體帳戶的 [設定掃描範圍] 窗格。

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

    顯示 Data Lake 儲存體 Gen2 掃描規則集選取項目的螢幕快照。

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

    顯示 [設定掃描觸發程式] 窗格的螢幕快照,並已選取 [一次]。

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

    顯示在您儲存並執行掃描之前檢閱掃描的螢幕快照。

針對下列記憶體帳戶重複這些步驟:

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

掃描 SQL 資料庫 數據源

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

    顯示如何建立新 SQL 資料庫 掃描的螢幕快照。

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

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

    顯示掃描認證表單的螢幕快照,其中包含輸入的值。

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

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

    顯示如何將掃描範圍設定為整個資料庫的螢幕快照。

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

    顯示 SQL 資料庫 掃描規則集選取項目的螢幕快照。

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

    此螢幕快照顯示已選取後要執行窗格的掃描設定。

  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

    顯示連線至防禦主機虛擬機之資源群組的螢幕快照。

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

    顯示 [連線至防禦] 選取窗格的螢幕快照。

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

    顯示使用者名稱和密碼輸入窗格的螢幕快照。

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

    顯示如何移至不同資源群組以開啟 Azure Data Factory 的螢幕快照。

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

    顯示如何開啟 Azure Data Factory Studio 的螢幕快照。

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

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

    顯示如何移至 [管理私人端點] 窗格的螢幕快照。

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

  8. 新的受控私人端點 (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 的受控私人端點顯示為 [已核准]。 即使您在命令行中選取 [重新 整理],核准狀態可能已過時幾分鐘。

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

顯示私人端點 SQL 連線為 [已核准] 的螢幕快照。

角色指派

當您完成核准私人端點存取要求時,請為 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. 在 [ 角色] 索引標籤上,選取 [ 參與者],然後選取 [ 下一步]。

    顯示 [參與者角色選取] 窗格的螢幕快照。

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

    顯示 [選取受控識別成員] 窗格的螢幕快照。

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

    顯示角色指派完成窗格的螢幕快照。

  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受控識別:

    顯示如何將數據策劃者新增至 Purview 角色指派的螢幕快照。

連線 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。 選取 [確定]。

    顯示 [Purview Studio] 窗格在選取新連線時的外觀螢幕快照。

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

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

    此螢幕快照顯示已連線數據歷程管線的 Azure Data Factory Purview 帳戶窗格。

建立 ETL 管線

<DLZ-prefix>-dev-integration-datafactory001既然 具有必要的訪問許可權,請在 Data Factory 中建立複製活動,以將數據從 SQL 資料庫 實例<DLZ-prefix>devraw移至原始記憶體帳戶。

搭配 AdatumCRM 使用複製資料工具

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

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

    顯示 Factory 資源下複製資料工具的螢幕快照。

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

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

      顯示如何在CRM中排程觸發程式定期執行的螢幕快照。

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

      顯示線上到 AdatumCRM 資料庫的螢幕快照。

      注意

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

    3. 選取這三個資料表:

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

      顯示 [選取數據表] 窗格的螢幕快照,其中已醒目提示數據表。

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

      顯示原始記憶體連線的螢幕快照。

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

      顯示目的地為原始數據的螢幕快照。

    6. 將檔名後綴變更為 .csv 並使用其他預設選項。

      此螢幕快照顯示已輸入 CSV 的檔名後綴欄位。

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

      顯示如何將標頭新增至檔案的螢幕快照。

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

      顯示複製資料工具部署已完成的螢幕快照。

新的管線會列在 [管線]

執行管線

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

  1. 重新命名管線 CopyPipeline_CRM_to_Raw

  2. 重新命名資料集 CRM_Raw_StorageCRM_DB

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

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

    顯示如何使用觸發程式工具將數據從 SQL 資料庫 複製到 Data Lake 儲存體 Gen2 的螢幕快照。

搭配 AdatumERP 使用複製資料工具

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

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

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

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

      顯示 Adatum ERP 連線窗格已完成的螢幕快照。

    3. 選取下列七個資料表:

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

      顯示 Adatum ERP 數據表選項的螢幕快照。

    4. 使用記憶體帳戶的現有連結服務, <DLZ-prefix>devraw 並將擴展名設定為 .csv

      此螢幕快照顯示擴展名設定為 CSV 的原始記憶體帳戶。

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

      顯示將標頭新增至 [檔案格式設定] 底下檔案的螢幕快照。

    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>devrawData\CRM 資料夾中的 CSV 檔案。 轉換檔案,並將 .parquet 檔案格式的轉換檔案複製到 中的<DLZ-prefix>devencurData\Customer 資料夾。

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

    顯示 Azure Data Factory 中 Orchestrate 按鈕的螢幕快照。

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

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

    顯示 [活動] 窗格和醒目提示 [移動和轉換] 的螢幕快照。

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

    注意

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

    顯示 [開啟數據流] 按鈕的螢幕快照。

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

    顯示管線轉換CRM的螢幕快照。

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

    顯示 CRM 至客戶數據流的螢幕快照。

  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。 若要新增此架構修飾詞,請移至 [ 選取設定 ] 並移除 PasswordHashPasswordSalt

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>devencurData\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

下一步