使用對應資料流程轉換 Delta Lake 中的資料
適用於:Azure Data Factory Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用!
如果您不熟悉 Azure Data Factory,請參閱 Azure Data Factory 簡介。
在本教學課程中,您將使用資料流程畫布建立資料流程,讓您能夠分析並轉換 Azure Data Lake Storage (ADLS) Gen2 中的資料,並將其儲存在 Delta Lake 中。
必要條件
- 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 訂用帳戶。
針對 [資源群組],採取下列其中一個步驟︰
a. 選取 [使用現有的] ,然後從下拉式清單選取現有的資源群組。
b. 選取 [建立新的] ,然後輸入資源群組的名稱。
若要了解資源群組,請參閱使用資源群組管理您的 Azure 資源。
在 [版本] 下,選取 [V2]。
在 [位置] 下,選取資料處理站的位置。 只有受到支援的位置會顯示在下拉式清單中。 資料處理站使用的資料存放區 (例如 Azure 儲存體和 SQL Database) 和計算 (例如 Azure HDInsight) 可位於其他區域。
選取 建立。
建立完成後,您會在 [通知中心] 看到通知。 選取 [移至資源],以瀏覽至 Data Factory 頁面。
選取 [編寫與監視],以在個別索引標籤中啟動 Data Factory 使用者介面。
建立具有資料流程活動的管線
在此步驟中,您將建立包含資料流程活動的管線。
在首頁上,選取 [協調]。
在管線的 [一般] 索引標籤中,輸入 DeltaLake 作為管線的 [名稱]。
在 [活動] 窗格中,展開 [移動和轉換] 摺疊式功能表。 將 [資料流程] 活動從窗格拖放到管線畫布。
在 [新增資料流程] 快顯視窗中,選取 [建立新的資料流程],然後將資料流程命名為 DeltaLake。 完成時,選取 [完成]。
在管線畫布的頂端列中,滑動資料流程偵錯滑桿。 偵錯模式可讓您對即時 Spark 叢集進行轉換邏輯的互動式測試。 資料流程叢集需要 5-7 分鐘的準備時間,如果使用者想要進行資料流程開發,建議使用者先開啟偵錯功能。 如需詳細資訊,請參閱偵錯模式。
在資料流程畫布中建置轉換邏輯
您會在本教學課程中產生兩個資料流程。 第一個資料流程是可從電影 CSV 檔案產生新 Delta Lake 之接收器的簡單來源。 最後,您會建立下面的流程設計,以更新 Delta Lake 中的資料。
教學課程目標
- 使用必要條件中的 MoviesCSV 資料集來源,並從中形成新的 Delta Lake。
- 建置邏輯,將 1988 年電影的評分更新為 '1'。
- 刪除 1950 的所有電影。
- 複製 1960 的電影來插入 2021 的新電影。
從空白資料流程畫布開始
選取資料流程編輯器視窗頂端的來源轉換,然後在 [來源設定] 視窗中,選取 [資料集] 屬性旁的 [+ 新增]:
從出現的 [新增資料集] 視窗中選取 [Azure Data Lake Storage Gen2],然後選取 [繼續]。
針對資料集類型選擇 [DelimitedText],然後再次選取 [繼續]。
將資料集命名為「MoviesCSV」,然後選取 [連結服務] 底下的 [+ 新增],以在檔案中建立新的連結服務。
提供您先前在<必要條件>一節中建立的儲存體帳戶詳細資料,然後瀏覽並選取您上傳至該處的 MoviesCSV 檔案。
新增連結服務後,選取 [第一個資料列為標頭] 核取方塊,然後選取 [確定] 以新增來源。
瀏覽至 [資料流程設定] 視窗的 [投影] 索引標籤,然後選取 [偵測資料類型]。
現在選取 [資料流程編輯器] 視窗中 [來源] 之後的 +,然後向下捲動以選取 [目的地] 區段下的 [接收器],將新的接收器新增至資料流程。
在新增接收器之後所出現接收器設定的 [接收器] 索引標籤中,針對 [接收器類型] 選取 [內嵌],然後針對 [內嵌資料集類型] 選取 [Delta]。 然後選取針對 [連結服務] 選取您的 Azure Data Lake Storage Gen2。
在儲存體容器中選擇您想要讓服務在其中建立 Delta Lake 的資料夾名稱。
最後,瀏覽回到管線設計師,並選取 [偵錯],以在畫布上只有此資料流程活動的偵錯模式下執行管線。 這會在 Azure Data Lake Storage Gen2 中產生新的 Delta Lake。
現在,從畫面左側的 [Factory 資源] 功能表中,選取 + 以新增資源,然後選取 [資料流程]。
如先前所述,再次選取 MoviesCSV 檔案作為來源,然後再次從 [投影] 索引標籤中選取 [偵測資料類型]。
這一次,在建立來源後,於資料流程編輯器視窗中選取 +,然後在來源中新增 [篩選] 轉換。
在 [篩選設定] 視窗中新增 [篩選對象] 條件,只允許符合 1950、1960 和 1988 的電影資料列。
現在新增 [衍生的資料行] 轉換,將每部 1988 電影的評等更新為「1」。
Update, insert, delete, and upsert
原則是在更改資料列轉換中建立的。 在衍生的資料行之後新增更改資料列轉換。您的更改資料列原則看起來應該像這樣。
您現已針對每個更改資料列類型設定適當的原則,接下來請檢查接收器轉換上是否已設定適當的更新規則
在這裡,我們使用 Delta Lake 接收器,以接收 Azure Data Lake Storage Gen2 資料湖,並允許插入、更新、刪除。
請注意,索引鍵資料行是由 Movie 主索引鍵資料行和年份資料行組成的複合索引鍵。 這是因為我們藉由複製 1960 資料列建立了假的 2021 電影。 這可藉由提供唯一性來避免查閱現有資料列時發生衝突。
下載已完成的範例
以下是 Delta 管線的範例解決方案 (英文),其中包含資料湖中更新/刪除資料列的資料流程。
相關內容
深入了解資料流程運算式語言。