使用對應資料流程來轉換資料
適用於:Azure Data Factory Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用!
如果您不熟悉 Azure Data Factory,請參閱 Azure Data Factory 簡介。
在本教學課程中,您將使用 Azure Data Factory 使用者介面 (UX) 建立管線,該管線會使用對應資料流程,從 Azure Data Lake Storage (ADLS) Gen2 來源複製資料,並將其轉換到 ADLS Gen2 接收器。 本教學課程中的設定模式,可在使用對應資料流程轉換資料時獲得擴展
注意
本教學課程適用於一般對應資料流程。 您可以在 Azure Data Factory 和 Synapse Pipelines 中使用資料流程。 如果您初次接觸 Azure Synapse Pipelines 中的資料流程,請遵循使用 Azure Synapse Pipelines 進行資料流程中的內容
在本教學課程中,您會執行下列步驟:
- 建立資料處理站。
- 建立具有資料流程活動的管線。
- 建置具有四個轉換的對應資料流。
- 對管線執行測試。
- 監視資料流程活動
必要條件
- Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始前建立免費 Azure 帳戶。
- Azure 儲存體帳戶。 您使用 ADLS 儲存體作為「來源」和「接收」資料存放區。 如果您沒有儲存體帳戶,請參閱建立 Azure 儲存體帳戶,按照步驟建立此帳戶。
我們在本教學課程中轉換的檔案是 MoviesDB.csv,可在這裡找到。 若要從 GitHub 擷取檔案,請將內容複寫到您選擇的文字編輯器,以 .csv 檔案的形式儲存在本機。 若要將檔案上傳到儲存體帳戶,請參閱使用 Azure 入口網站上傳 Blob。 這些範例會參考名為 'sample-data' 的容器。
建立資料處理站
在此步驟中,您可以建立資料處理站,並開啟 Data Factory UX,以在資料處理站中建立管線。
開啟 Microsoft Edge 或 Google Chrome。 目前僅 Microsoft Edge 和 Google Chrome 網頁瀏覽器支援 Data Factory UI。
在左側功能表上,選取 [建立資源]>[整合]>[Data Factory]:
在 [新增資料處理站] 頁面的 [名稱] 下,輸入 ADFTutorialDataFactory。
Azure Data Factory 的名稱必須是 全域唯一的。 如果您收到有關名稱值的錯誤訊息,請輸入不同的資料處理站名稱。 (例如,使用 yournameADFTutorialDataFactory)。 如需 Data Factory 成品的命名規則,請參閱 Data Factory 命名規則。
選取您要在其中建立資料處理站的 Azure 訂用帳戶。
針對 [資源群組],採取下列其中一個步驟︰
a. 選取 [使用現有的] ,然後從下拉式清單選取現有的資源群組。
b. 選取 [建立新的] ,然後輸入資源群組的名稱。
若要了解資源群組,請參閱使用資源群組管理您的 Azure 資源。
在 [版本] 下,選取 [V2]。
在 [位置] 下,選取資料處理站的位置。 只有受到支援的位置會顯示在下拉式清單中。 資料處理站使用的資料存放區 (例如 Azure 儲存體和 SQL Database) 和計算 (例如 Azure HDInsight) 可位於其他區域。
選取 建立。
建立完成後,您會在 [通知中心] 看到通知。 選取 [移至資源],以瀏覽至 Data Factory 頁面。
選取 [編寫與監視],以在個別索引標籤中啟動 Data Factory 使用者介面。
建立包含資料流程活動的管線
在此步驟中,您將建立包含資料流程活動的管線。
在 Azure Data Factory 的首頁上選取 [協調]。
在管線的 [一般] 索引標籤中,針對管線的名稱輸入 TransformMovies。
在 [活動] 窗格中,展開 [移動和轉換] 摺疊式功能表。 將 [資料流程] 活動從窗格拖放到管線畫布。
在 [新增資料流程] 快顯項目中,選取 [建立新的資料流程],並接著將資料流程命名為 TransformMovies。 完成時按一下 [完成]。
在管線畫布的頂端列中,滑動資料流程偵錯滑桿。 偵錯模式可讓您對即時 Spark 叢集進行轉換邏輯的互動式測試。 資料流程叢集需要 5-7 分鐘的準備時間,如果使用者想要進行資料流程開發,建議使用者先開啟偵錯功能。 如需詳細資訊,請參閱偵錯模式。
在資料流程畫布中建置轉換邏輯
建立資料流程之後,會自動傳送到資料流程畫布。 如果您未重新導向資料流程畫布,請在畫布下方的面板中,移至 [設定],然後選取位於資料流程欄位旁邊的 [開啟]。 這會開啟資料流程畫布。
在此步驟中,您將建置一個資料流程來擷取 ADLS 儲存體中的 moviesDB.csv,並彙總 1910 年到 2000 年喜歌劇的平均評等。 然後,您會將此檔案寫回 ADLS 儲存體。
在資料流程畫布中,按一下 [新增來源] 方塊以新增來源。
將來源命名為 MoviesDB。 按一下 [新增] 以建立新的來源資料集。
選擇 [Azure Data Lake Storage Gen2]。 按一下 [繼續]。
選擇 [DelimitedText]。 按一下 [繼續]。
將資料集命名為 MoviesDB。 在連結服務下拉式清單中,選擇 [新增]。
在連結服務建立畫面中,將 ADLS gen2 連結服務命名為 ADLSGen2,並指定驗證方法。 然後輸入您的連線認證。 在本教學課程中,我們會使用帳戶金鑰來連線至儲存體帳戶。 您可以按一下 [測試連線],確認是否正確輸入您的認證。 在完成作業後,按一下 [建立]。
回到資料集建立畫面之後,請在 [檔案路徑] 欄位下輸入檔案的所在位置。 在本教學課程中,moviesDB.csv 檔案位於容器範例資料中。 當檔案有標頭時,請核取 [第一個資料列為標頭]。 選取 [從連線/存放區],以直接從儲存體中的檔案匯入標頭結構描述。 完成時按一下 [確定]。
如果您的偵錯叢集已啟動,請前往來源轉換的 [資料預覽] 索引標籤,然後按一下 [重新整理] 以取得資料的快照集。 您可以使用資料預覽來確認是否已正確設定轉換。
在資料流程畫布的來源節點旁,按一下加號圖示以新增轉換。 您要新增的第一個轉換是篩選。
將篩選轉換命名為 FilterYears。 按一下 [篩選對象] 旁的運算式方塊,以開啟運算式產生器。 您將在這裡指定篩選條件。
資料流程運算式產生器可讓您以互動方式建立要在各種轉換中使用的運算式。 運算式可以包含內建函式、輸入結構描述中的資料行,以及使用者定義的參數。 如需如何建立運算式的詳細資訊,請參閱資料流程運算式產生器。
在本教學課程中,您想要篩選在 1910 年到 2000 年之間上映的喜歌劇內容類型電影。 當年份目前為字串時,您必須使用
toInteger()
函式將其轉換成整數。 使用大於或等於 (>=) 和小於或等於 (<=) 運算子,針對常值年份值 1910 和 2000 進行比較。 使用 and(&&) 運算子來聯集這些運算式。 產生的運算式如下所示:toInteger(year) >= 1910 && toInteger(year) <= 2000
若要找出哪些電影是喜歌劇,您可以使用
rlike()
函式來尋找資料行內容類型中的「喜歌劇」模式。 將rlike
運算式與比較年份聯集以取得:toInteger(year) >= 1910 && toInteger(year) <= 2000 && rlike(genres, 'Comedy')
如果您有使用中偵錯叢集,您可以按一下 [重新整理] 查看運算式輸出與所使用輸入的比較來確認您的邏輯。 如何使用資料流程運算式語言來完成這項邏輯的正確解答不只一個。
完成運算式之後,請按一下 [儲存後結束]。
擷取 [資料預覽] 以確認篩選是否正常運作。
下一個要新增的轉換是 [Schema modifier] \(結構描述修飾詞\) 下的彙總轉換。
將彙總轉換命名為 AggregateComedyRatings。 在 [分組方式] 索引標籤中,從下拉式清單中選取 [year],以依電影上映年份分組彙總。
移至 [彙總] 索引標籤。在左側文字輸入框中,將彙總資料行命名為 AverageComedyRating。 按一下右側運算式方塊,透過運算式產生器輸入彙總運算式。
若要取得資料行 Rating 的平均值,請使用
avg()
彙總函式。 由於 Rating 為字串且avg()
接受數字輸入,因此我們必須透過toInteger()
函式將值轉換成數字。 此運算式的外觀如下所示:avg(toInteger(Rating))
完成時,請按一下 [儲存後結束]。
前往 [資料預覽] 索引標籤以檢視轉換輸出。 請注意,其中只有兩個資料行:[year] 和 [AverageComedyRating]。
接下來,您想要在 [目的地] 下新增接收器轉換。
將您的接收器命名為 Sink。 按一下 [新增] 以建立您的接收器資料集。
選擇 [Azure Data Lake Storage Gen2]。 按一下 [繼續]。
選擇 [DelimitedText]。 按一下 [繼續]。
將接收器資料集命名為 MoviesSink。 針對連結服務,選擇您在步驟 6 中建立的 ADLS den2 連結服務。 輸入要寫入資料的輸出資料夾。 在本教學課程中,我們會寫入容器 'sample-data' 中的資料夾 'output'。 此資料夾不需要事先存在,而且可以動態建立。 將 [第一個資料列為標頭] 設定為 True,並針對 [匯入結構描述] 選取 [無]。 按一下完成。
現在您已完成建立資料流程, 可以立即在管線中執行。
執行和監視資料流程
您可以在發佈管線之前先進行偵錯。 在此步驟中,您將觸發資料流程管線的偵錯執行。 雖然資料預覽不會寫入資料,但偵錯執行會將資料寫入至您的接收目的地。
前往管線畫布。 按一下 [偵錯] 以觸發偵錯執行。
資料流程活動的管線偵錯會使用使用中偵錯叢集,但仍需要至少一分鐘的時間來初始化。 您可以透過 [輸出] 索引標籤來追蹤進度。執行成功之後,請按一下眼鏡圖示以開啟監視窗格。
在監視窗格中,您可以看到每個轉換步驟中的資料列數目及所花費的時間。
按一下轉換以取得資料行和資料分割的詳細資訊。
如果您正確遵循本教學課程的內容,應該已將 83 個資料列和 2 個資料行寫入您的接收資料夾。 您可以檢查 Blob 儲存體來確認資料是否正確無誤。
相關內容
本教學課程中的管線會執行資料流程,其會匯總從 1910 年到 2000 年之間喜歌劇的平均評等,並將資料寫入 ADLS。 您已了解如何︰
- 建立資料處理站。
- 建立具有資料流程活動的管線。
- 建置具有四個轉換的對應資料流。
- 對管線執行測試。
- 監視資料流程活動
深入了解資料流程運算式語言。