1. 概述
1.1 預期效果
Excel 數據表爲源數據表,每天會新增數據,用戶希望數據庫中的某張表自動新增 Excel 裏面昨天新增的數據。
1.2 實現思路
Excel 數據集作爲要輸入的數據,使用 Spark SQL 算子篩選出前一天的數據後,通過 DB 表輸出算子輸出到數據庫的某張表中。
2. 示例
2.1 新建 Excel 數據集
示例數據:出入庫信息.xls,爲數據來源表,每天都會更新信息。
具體步驟請參見:數據源類型爲Excel 文檔的 2.1 節内容。
2.2 創建任務
新建一個 ETL 任務,将一個「數據轉換」節點拖到設計界面。如下圖所示:
2.3 設置數據輸入
1)點擊「數據轉換」節點進入設置頁面。
2)将一個「數據集輸入」算子拖到數據轉換的設計界面,進行設置。如下圖所示:
2.4 設置 Spark SQL 算子
1)将 Spark SQL 算子拖到數據轉換的設計界面,并使用線條跟它的上遊「數據集輸入」算子相連。
2)按照下圖配置 Spark SQL 。語句爲:select * from 數據集輸入 where `入庫日期` = date_add("${cyctime}",-1)。如下圖所示:
注1:表名爲上遊節點的名稱;語句不能直接複制,「數據集輸入」需點擊生成。
注2:SQL 語句含義:篩選出前一天入庫的信息。
數據預覽 Tab 頁面如下圖所示:
2.5 設置 DB 表輸出
再将一個「DB表輸出」算子拖到設計界面,并使用線條跟它的上遊「Spark SQL」算子相連。
1)點擊「DB表輸出」算子對它進行設置。如下圖所示:
注:示例中 xinxi 表爲新建的空表。
2)點擊右上角「保存」按鈕。如下圖所示:
2.6 設置定時更新
1)回到 ETL 任務設計界面,點擊右上角「調度配置」,設置任務定時執行時間。如下圖所示:
注:用戶根據實際情況設置執行時間;執行時間在數據來源表更新數據之後就行。
2)點擊右上角「保存」按鈕。
2.7 任務結果
任務執行後,目标表數據如下圖所示: