模組 2:使用資料流程在 Data Factory 中轉換資料
本模組大約需要 25 分鐘的時間來建立資料流程、套用轉換,以及將未經處理資料從銅級資料表移至金級 Lakehouse 資料表。
從最後一個模組將未經處理資料載入您的銅級 Lakehouse 資料表後,您現在可以準備該資料,並透過將該資料與另一個包含每個廠商的折扣及其在特定日期的形成的資料表結合在一起,加以擴充。 此最終金級 Lakehouse 資料表已載入並可供取用。
資料流程中的高階步驟如下:
- 從模組 1:使用 Data Factory 建立管線中的複製活動建立的 Lakehouse 資料表取得未經處理資料。
- 轉換從 Lakehouse 資料表匯入的資料。
- 連線到包含折扣資料的 CSV 檔案。
- 轉換折扣資料。
- 合併車程和折扣資料。
- 將輸出查詢載入金級 Lakehouse 資料表。
從 Lakehouse 資料表取得資料
從新的資料流程功能表中,選取 [取得資料],然後選取 [更多...]。
搜尋並選取 "Lakehouse" 連接器。
[連線到資料來源] 對話方塊隨即出現,系統會根據目前登入的使用者自動為您建立新連線。 選取 [下一步]。
隨即顯示 [選擇資料] 對話方塊。 使用瀏覽窗格來尋找您在先前模組中為目的地建立的 Lakehouse,然後選取 [Tutorial_Lakehouse] 資料表。
(選用) 當您的畫布填入資料之後,您可以設定資料行設定檔資訊,因為這對於資料分析很有用。 您可以套用正確的轉換,並基於它以正確的資料值為目標。
若要這樣做,請從緞帶窗格中選取 [選項],然後選取 [資料行設定檔] 底下的前三個選項,然後選取 [確定]。
轉換從 Lakehouse 匯入的資料
選取第二個資料行的資料行標頭 "IpepPickupDatetime" 中的資料類型圖示,以顯示下拉式功能表,然後從功能表選取資料類型,將資料行從 [日期/時間] 轉換成 [日期] 類型。
(選用) 在緞帶的 [首頁] 索引標籤上,從 [管理資料行] 群組中選取 [選擇資料行] 選項。
(選用) 在 [選擇資料行] 對話方塊中,取消選取此處列出的某些資料行,然後選取 [確定]。
- lpepDropoffDatetime
- puLocationId
- doLocationId
- pickupLatitude
- dropoffLongitude
- rateCodeID
選取 "storeAndFwdFlag" 資料行的篩選和排序下拉式功能表。 (如果您看到警告 [清單可能不完整],選取 [載入更多] 以查看所有資料。)
選取 "Y" 僅顯示套用折扣的資料列,然後選取 [確定]。
選取 "IpepPickupDatetime" 資料行排序和篩選下拉式功能表,然後選取 [日期篩選],並選擇為 [日期] 和 [日期/時間] 類型提供的 [介於...] 篩選。
在 [篩選資料列] 對話方塊中,選取介於 2015 年 1 月 1 日到 2015 年 1 月 31 日之間的日期,然後選取 [確定]。
連線到包含折扣資料的 CSV 檔案
現在,有了行程資料,我們想要載入包含每天和 VendorID 的各自折扣的資料,並在將資料與行程資料之前先準備好資料。
從資料流程編輯器功能表中的 [首頁] 索引標籤,選取 [取得資料] 選項,然後選擇 [文字/CSV]。
在 [連線到資料來源] 對話方塊中,提供下列詳細資料:
- 檔案路徑或 URL -
https://raw.githubusercontent.com/ekote/azure-architect/master/Generated-NYC-Taxi-Green-Discounts.csv
- 驗證種類 - 匿名
然後選取下一步。
- 檔案路徑或 URL -
在 [預覽檔案資料] 對話方塊中,選取 [建立]。
轉換折扣資料
檢閱資料時,我們看到標頭似乎在第一個資料列中。 選取預覽方格區域左上方的資料表特色選單,以選取 [使用第一個資料列作為標頭],將其升階為標頭。
注意
在升級標頭之後,您可以看到資料流程編輯器頂端 [套用的步驟] 窗格中新增了一個新步驟,以新增至資料行的資料類型。
以滑鼠右鍵按一下 "VendorID" 資料行,然後從顯示的特色選單中,選取 [取消樞紐其他資料行] 選項。 這可讓您將資料行轉換成屬性值組,其中資料行會變成資料列。
取消樞紐資料表後,按兩下 [屬性] 和 [值] 資料行,並將 [屬性] 變更為 [日期],並將 [值] 變更為 [折扣]。
選取資料行名稱左邊的資料類型功能表,然後選擇 [日期],以變更 [日期] 資料行的資料類型。
選取 [折扣] 資料行,然後選取功能表上的 [轉換] 索引標籤。 選取 [數字資料行],然後從子選單選取 [標準] 數值轉換,並選擇 [除]。
在 [除] 對話方塊中,輸入值 100。
合併車程和折扣資料
下一個步驟是將這兩個資料表合併成單一資料表,其中包含應套用至行程的折扣,以及調整後的總計。
首先,切換 [圖表檢視] 按鈕,以便您可以看到這兩個查詢。
選取 "nyc_taxi" 查詢,然後在 [首頁] 索引標籤上,選取 [合併] 功能表並選擇 [合併查詢],然後選擇 [合併查詢作為新查詢]。
在 [合併] 對話方塊中,從 [合併右側資料表] 下拉式清單中選取 "Generated-NYC-Taxi-Green-Discounts",然後選取對話方塊右上方的 [燈泡] 圖示,以查看兩個資料表之間資料行的建議對應。
選擇兩個建議的資料行對應,一次一個,對應這兩個資料表中的 VendorID 和日期資料行。 新增這兩個對應時,會在每個資料表中醒目提示相符的資料行標頭。
系統會顯示一則訊息,要求您允許合併來自多個資料來源的資料以檢視結果。 在 [合併] 對話方塊中,選取 [確定]。
在資料表區域中,您一開始會看到警告:「評估已取消,因為合併來自多個來源的資料可能會將一個來源的資料洩漏給另一個來源。 如果洩漏資料的可能性可接受,請選取 [繼續]」。選取 [繼續] 以顯示合併的資料。
請注意如何在 [圖表] 檢視中建立新查詢,其中顯示新合併查詢與您先前建立的兩個查詢的關聯性。 查看編輯器的資料格窗格,捲動至 [合併查詢資料行] 清單右側,即可看到有一個包含資料表值的新資料行。 這是 "Generated NYC Taxi-Green-Discounts" 資料行,且其類型為 [資料表]。 在資料行標頭中,有兩個方向相反的箭號圖示,可讓您從資料表中選取資料行。 取消選取 [折扣] 以外的所有資料行,然後選取 [確定]。
現在,折扣值處於資料列層級,我們可以建立新的資料行來計算折扣後的總金額。 若要這樣做,請選取編輯器頂端的 [新增資料行] 索引標籤,然後從 [一般] 群組中選擇 [自訂資料行] 資料行。
在 [自訂資料行] 對話方塊中,您可以使用 Power Query 公式語言 (也稱為 M) 來定義應如何計算新資料行。 針對 [新增資料行名稱] 輸入 "TotalAfterDiscount",選取 [資料類型] 的 [貨幣],並為 [自訂資料行公式] 提供下列 M 運算式:
if [totalAmount] > 0 then [totalAmount] * ( 1 -[Discount] ) else [totalAmount]
然後選取確定。
選取新建立的 "TotalAfterDiscount" 資料行,然後選取編輯器視窗頂端的 [轉換] 索引標籤。 在 [數字資料行] 群組,選取 [四捨五入] 下拉式清單,然後選擇 [ROUND...]。
在 [ROUND] 對話方塊中,輸入 2 代表小數位數,然後選取 [確定]。
將 IpepPickupDatetime 的資料類型從 [日期] 變更為 [日期/時間]。
最後,如果尚未展開查詢,則請從編輯器右側展開 [查詢設定] 窗格,然後將查詢從 [合併] 重新命名為 [輸出]。
將輸出查詢載入 Lakehouse 中的資料表
現在輸出查詢已準備妥善,且資料已準備好輸出,我們可以定義查詢的輸出目的地。
選取先前建立的 [輸出] 合併查詢。 然後選取編輯器中的 [首頁] 索引標籤,並從 [查詢] 分組 [新增資料目的地],以選取 "Lakehouse" 目的地。
在 [連線到資料目的地] 對話方塊中,您的連線應已被選取。 選取下一步以繼續。
在 [選擇目的地目標] 對話方塊中,瀏覽至您想要載入資料的 Lakehouse,並將新資料表命名為 "nyc_taxi_with_discounts",然後再次選取 [下一步]。
在 [選擇目的地設定] 對話方塊中,將更新方法保留為預設 [取代],再次檢查您的資料行是否已正確對應,然後選取 [儲存設定]。
返回主要編輯器視窗,確認您在 [輸出] 資料表的 [查詢設定] 窗格上看到輸出目的地,然後選取 [發佈]。
重要
在工作區中建立第一個 Dataflow Gen2 時,Lakehouse 和倉儲項目會連同其相關的 SQL 分析端點和語意模型一起佈建。 這些項目會由工作區中的所有資料流程共用,而且 Dataflow Gen2 必須運作、不應該刪除,而且不適合由使用者直接使用。 這些項目皆為 Dataflow Gen2 的實作詳細資料。 在工作區中不會顯示這些項目,但可能可在如 Notebook、SQL 端點、Lakehouse 和倉儲體驗等其他體驗中存取。 您可以使用名稱中的項目前置詞來辨識項目。 項目的前置詞為 `DataflowsStaging'。
(選用) 在工作區頁面上,您可以選取您選取資料列之後顯示的資料流程名稱右邊的省略號,然後選擇 [屬性],進而重新命名您的資料流程。
選取資料流程的資料列之後,請選取資料流程的重新整理圖示,完成時,您應該會看到根據 [資料目的地] 設定中的設定建立的新 Lakehouse 資料表。
請檢查您的 Lakehouse,以檢視在那裡載入的新資料表。
相關內容
在此端對端教學課程的第二個模組 (使用 Microsoft Fabric 中的 Data Factory 進行首次資料整合) 中,您已了解如何:
- 建立新的 Dataflow Gen2。
- 匯入和轉換範例資料。
- 匯入和轉換文字/CSV 資料。
- 將兩個資料來源中的資料合併到新的查詢。
- 轉換資料並在查詢中產生新的資料行。
- 設定查詢的輸出目的地來源。
- 重新命名並重新整理新的資料流程。
現在繼續進行下一節,以整合您的資料管線。