使用對應數據流安全地轉換數據

適用於: Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的單一分析解決方案。 Microsoft Fabric 涵蓋從數據移動到數據科學、即時分析、商業智慧和報告等所有專案。 瞭解如何 免費啟動新的試用版

如果您不熟悉 Azure Data Factory,請參閱 Azure Data Factory 簡介。

在本教學課程中,您將使用 Data Factory 使用者介面 (UI) 來建立管線,以使用 Data Factory Managed 虛擬網絡 中的對應數據流,將數據從 Azure Data Lake 儲存體 Gen2 來源複製到 Data Lake 儲存體 Gen2 接收(兩者都允許存取選取的網路)。 當您使用對應資料流轉換資料時,您可以在本教學課程中展開組態模式。

在本教學課程中,您會執行下列步驟:

  • 建立資料處理站。
  • 使用數據流活動建立管線。
  • 建置具有四個轉換的對應數據流。
  • 測試執行管線。
  • 監視數據流活動。

必要條件

我們將在本教學課程中轉換的檔案是moviesDB.csv,您可以在此 GitHub 內容網站上找到。 若要從 GitHub 擷取檔案,請將內容複製到您選擇的文字編輯器,將它儲存在本機為 .csv 檔案。 若要將檔案上傳至記憶體帳戶,請參閱使用 Azure 入口網站 上傳 Blob。 這些範例會參考名為 sample-data的容器。

建立資料處理站

在此步驟中,您會建立數據處理站,並開啟Data Factory UI 以在數據處理站中建立管線。

  1. 開啟 Microsoft Edge 或 Google Chrome。 目前只有 Microsoft Edge 和 Google Chrome 網頁瀏覽器支援 Data Factory UI。

  2. 在左側功能表上,選取 [建立資源>分析>Data Factory]。

  3. 在 [新增數據處理站] 頁面上的 [名稱] 底下,輸入 ADFTutorialDataFactory

    數據處理站的名稱必須是 全域唯一的。 如果您收到名稱值的相關錯誤訊息,請輸入數據處理站的不同名稱(例如 yournameADFTutorialDataFactory)。 如需 Data Factory 成品的命名規則,請參閱 Data Factory 命名規則

  4. 選取您要在其中建立數據處理站的 Azure 用帳戶。

  5. 針對 資源群組,請採取下列步驟之一:

    • 選取 [ 使用現有的],然後從下拉式清單中選取現有的資源群組。
    • 選取 [ 新建],然後輸入資源群組的名稱。

    若要瞭解資源群組,請參閱 使用資源群組來管理您的 Azure 資源

  6. 在 [版本] 底下,選取 [V2]。

  7. 在 [位置]下,選取數據處理站的位置。 只有支援的位置會出現在下拉式清單中。 數據處理站所使用的數據存放區(例如,Azure 儲存體 和 Azure SQL 資料庫)和計算(例如,Azure HDInsight)可以位於其他區域。

  8. 選取 建立

  9. 建立完成後,您會在通知中心看到通知。 選取 [移至資源 ] 以移至 Data Factory 頁面。

  10. 選取 [開啟 Azure Data Factory Studio ] 以在另一個索引標籤中啟動 Data Factory UI。

在 Data Factory 受控 虛擬網絡 中建立 Azure IR

在此步驟中,您會建立 Azure IR,並啟用 Data Factory 受控 虛擬網絡。

  1. 在 Data Factory 入口網站中,移至 [ 管理],然後選取 [ 新增 ] 以建立新的 Azure IR。

    Screenshot that shows creating a new Azure IR.

  2. 在 [ 整合運行時間設定 ] 頁面上,選擇要根據必要功能建立的整合運行時間。 在本教學課程中,選取 [Azure]、[自我裝載] ,然後按兩下 [ 繼續]。

  3. 選取 [Azure ],然後按兩下 [ 繼續 ] 以建立 Azure 整合運行時間。

    Screenshot that shows a new Azure IR.

  4. 在 [虛擬網络組態][預覽],選取 [啟用]。

    Screenshot that shows enabling a new Azure IR.

  5. 選取 建立

使用數據流活動建立管線

在此步驟中,您將建立包含數據流活動的管線。

  1. 在 Azure Data Factory 的首頁上,選取 [協調]。

    Screenshot that shows the data factory home page with the Orchestrate button highlighted.

  2. 在管線的屬性窗格中,輸入 Pipeline 名稱的 TransformMovies

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

  4. 在 [ 新增數據流 ] 彈出視窗中,選取 [建立新的數據流 ],然後選取 [ 對應數據流]。 完成時選取 [ 確定 ]。

    Screenshot that shows Mapping Data Flow.

  5. 將數據流 命名為 [屬性] 窗格中的 TransformMovies

  6. 在管線畫布的頂端列中,滑動 [ 數據流偵錯 ] 滑桿。 偵錯模式允許對即時Spark叢集進行轉換邏輯的互動式測試。 數據流叢集需要 5-7 分鐘才能熱身,如果使用者打算進行數據流開發,建議先開啟偵錯。 如需詳細資訊,請參閱 偵錯模式

    Screenshot that shows the Data flow debug slider.

在數據流畫布中建置轉換邏輯

建立數據流之後,系統會自動傳送至數據流畫布。 在此步驟中,您將建立一個數據流,以在 Data Lake 儲存體 中採用 moviesDB.csv 檔案,並將喜劇的平均評等從 1910 年匯總到 2000 年。 接著,您會將此檔案寫回 Data Lake 儲存體。

新增來源轉換

在此步驟中,您會將 Data Lake 儲存體 Gen2 設定為來源。

  1. 在數據流畫布中,選取 [新增來源] 方塊來新增來源

  2. 將來源 命名為MoviesDB。 選取 [ 新增 ] 以建立新的來源數據集。

  3. 選取 [Azure Data Lake 儲存體 Gen2],然後選取 [繼續]。

  4. 選取 [DelimitedText],然後選取 [ 繼續]。

  5. 將數據集 命名為MoviesDB。 在鏈接的服務下拉式清單中,選取 [ 新增]。

  6. 在連結服務建立畫面中,將 Data Lake 儲存體 Gen2 鏈接服務命名為 ADLSGen2,並指定您的驗證方法。 然後輸入您的連線認證。 在本教學課程中,我們會使用 帳戶密鑰 來連線到記憶體帳戶。

  7. 請確定您啟用 互動式撰寫。 可能需要一分鐘的時間才能啟用。

    Screenshot that shows Interactive authoring.

  8. 選取測試連線。 它應該會失敗,因為記憶體帳戶不會在沒有建立和核准私人端點的情況下啟用存取。 在錯誤訊息中,您應該會看到建立私人端點的連結,您可以遵循該連結來建立受控私人端點。 替代方式是直接移至 [管理] 索引標籤,並遵循本節中的指示來建立受控私人端點。

  9. 讓對話框保持開啟,然後移至您的記憶體帳戶。

  10. 請依照本節中的指示核准私人連結。

  11. 返回對話框。 再次選取 [ 測試連線 ],然後選取 [ 建立] 以部署鏈接的服務。

  12. 在數據集建立畫面上,輸入您的檔案位於 [檔案路徑] 欄位底下的位置。 在本教學課程中,moviesDB.csv 檔案位於容器 sample-data 中。 因為檔案有標頭,請選取 [ 第一個數據列作為標頭 ] 複選框。 選取 [從連線/存放區 ],直接從記憶體中的檔案匯入標頭架構。 完成時選取 [ 確定 ]。

    Screenshot that shows the source path.

  13. 如果您的偵錯叢集已啟動,請移至 來源轉換的 [數據預覽 ] 索引卷標,然後選取 [ 重新 整理] 以取得數據的快照集。 您可以使用資料預覽來確認轉換已正確設定。

    Screenshot that shows the Data Preview tab.

建立受控私人端點

如果您在測試上述連接時未使用超連結,請遵循路徑。 現在,您必須建立受控私人端點,以連線到您所建立的連結服務。

  1. 移至 [ 管理] 索引標籤。

    注意

    [ 管理] 索引標籤可能無法供所有 Data Factory 實例使用。 如果您沒有看到,您可以選取 [作者> 連線 私人>端點] 來存取私人端點。

  2. 移至 [受控私人端點] 區 段。

  3. 選取 [受控私人端點] 下的 [+ 新增]。

    Screenshot that shows the Managed private endpoints New button.

  4. 從清單中選取 [Azure Data Lake 儲存體 Gen2] 圖格,然後選取 [繼續]。

  5. 輸入您建立的記憶體帳戶名稱。

  6. 選取 建立

  7. 幾秒鐘之後,您應該會看到所建立的私人連結需要核准。

  8. 選取您建立的私人端點。 您可以看到一個超連結,可讓您在記憶體帳戶層級核准私人端點。

    Screenshot that shows the Manage private endpoint pane.

  1. 在記憶體帳戶中,移至 [設定] 區段下的私人端點連線

  2. 選取您所建立私人端點的複選框,然後選取 [ 核准]。

    Screenshot that shows the private endpoint Approve button.

  3. 新增描述,然後選取 [ ]。

  4. 返回 Data Factory 中 [管理] 索引標籤的 [受控私人端點] 區段。

  5. 大約一分鐘之後,您應該會看到私人端點的核准出現。

新增篩選轉換

  1. 在數據流畫布上的來源節點旁邊,選取加號圖示以新增轉換。 您要新增的第一個轉換是篩選條件。

    Screenshot that shows adding a filter.

  2. 將篩選轉換 命名為 FilterYears。 選取 [篩選] 旁的表達式方塊,以開啟表達式產生器。 在這裡,您將指定篩選條件。

    Screenshot that shows FilterYears.

  3. 數據流表達式產生器可讓您以互動方式建置運算式,以用於各種轉換。 表達式可以包含內建函數、輸入架構中的數據行,以及使用者定義參數。 如需如何建置表達式的詳細資訊,請參閱 數據流表達式產生器

    • 在本教學課程中,您想要篩選 1910 年至 2000 年間喜劇流派中的電影。 因為年份目前是字串,所以您必須使用 toInteger() 函式將它轉換成整數。 使用大於或等於 (>=) 且小於或等於 (<=) 運算符,與常值年份值 1910 和 2000 進行比較。 將這些表達式與 和 (&&) 運算子結合在一起。 表示式會以下欄位方式顯示:

      toInteger(year) >= 1910 && toInteger(year) <= 2000

    • 若要尋找哪些電影是喜劇,您可以使用 函 rlike() 式來尋找數據行內容類型中的模式 「喜劇」。 將 rlike 表示式與年份比較結合以取得:

      toInteger(year) >= 1910 && toInteger(year) <= 2000 && rlike(genres, 'Comedy')

    • 如果您有使用中的偵錯叢集,您可以選取 [重新 整理] 來確認邏輯,以查看與所使用的輸入相較之下的表達式輸出。 有一個以上的正確答案,說明如何使用數據流表達式語言來完成此邏輯。

      Screenshot that shows the filter expression.

    • 選取 [ 儲存],然後在 完成表達式之後完成。

  4. 擷取 數據預覽 以確認篩選正常運作。

    Screenshot that shows the filtered Data Preview.

新增匯總轉換

  1. 您將新增的下一個轉換是 [架構修飾詞] 底下的彙總轉換。

    Screenshot that shows adding the aggregate.

  2. 將匯總轉換 命名為 AggregateComedyRating。 在 [ 分組依據 ] 索引卷標上,從下拉式方塊中選取 [年份 ],依電影發行年份分組匯總。

    Screenshot that shows the aggregate group.

  3. 移至 [ 匯總] 索引標籤 。在左側文本框中,將匯總數據行 命名為AverageComedyRating。 選取正確的表達式方塊,以透過表達式產生器輸入匯總表達式。

    Screenshot that shows the aggregate column name.

  4. 若要取得數據行 評等的平均值,請使用 avg() 聚合函數。 由於 Rating 是字串,並 avg() 接受數值輸入,因此我們必須透過 toInteger() 函式將值轉換成數位。 此表示式看起來如下:

    avg(toInteger(Rating))

  5. 選取 [ 儲存] 並在完成之後完成

    Screenshot that shows saving the aggregate.

  6. 移至 [ 資料預覽] 索引標籤以檢視轉換輸出。 請注意,只有兩個數據行存在 yearAverageComedyRating

新增接收轉換

  1. 接下來,您想要在 [目的地] 底下新增接收轉換。

    Screenshot that shows adding a sink.

  2. 將接收命名為接收。 選取 [ 新增 ] 以建立您的接收數據集。

    Screenshot that shows creating a sink.

  3. 在 [新增數據集] 頁面上,選取 [Azure Data Lake 儲存體 Gen2],然後選取 [繼續]。

  4. 在 [ 選取格式] 頁面上,選取 [ DelimitedText ],然後選取 [ 繼續]。

  5. 將接收數據集 命名為MoviesSink。 針對連結服務,請選擇您為來源轉換建立的相同 ADLSGen2 鏈接服務。 輸入要寫入資料的輸出資料夾。 在本教學課程中,我們會寫入容器 sample-data 中的文件夾輸出。 資料夾不需要事先存在,而且可以動態建立。 選取 [第一個數據列為標頭] 複選框,然後針對 [匯入架構] 選取 [無]。 選取 [確定]。

    Screenshot that shows the sink path.

現在您已完成數據流的建置。 您已準備好在管線中執行。

執行及監視數據流

您可以在發佈管線之前進行偵錯。 在此步驟中,您會觸發數據流管線的偵錯執行。 雖然數據預覽不會寫入數據,但偵錯執行會將數據寫入至接收目的地。

  1. 移至管線畫布。 選取 [ 錯] 以觸發偵錯執行。

  2. 數據流活動的管線偵錯會使用作用中的偵錯叢集,但仍需要至少一分鐘的時間才能初始化。 您可以透過 [ 輸出 ] 索引標籤來追蹤進度。執行成功之後,請選取眼鏡圖示以取得執行詳細數據。

  3. 在詳細數據頁面上,您可以看到每個轉換步驟所花費的數據列數目和時間。

    Screenshot that shows a monitoring run.

  4. 選取轉換以取得數據行和數據分割的詳細資訊。

如果您已正確遵循本教學課程,您應該已將 83 個數據列和 2 個數據行寫入接收資料夾。 您可以檢查 Blob 記憶體來確認資料是否正確。

摘要

在本教學課程中,您已使用 Data Factory UI 建立管線,以使用 Data Factory Managed 虛擬網絡 虛擬網絡 中的對應數據流,將數據從 Data Lake 儲存體 Gen2 來源複製到 Data Lake 儲存體 Gen2 接收。這兩者都允許只存取選取的網路。