表達式使用示例
更新時間 2023-07-21 00:14:58
最近更新時間: 2023-07-21 00:14:58
分享文章
本章節主要介紹DataArts Studio的表達式使用示例流程。
通過本示例,用戶可以了解數據開發模塊EL表達式的如下應用:
- 如何在數據開發模塊的SQL腳本中使用變量?
- 作業如何傳遞參數給SQL腳本變量?
- 在參數中如何使用EL表達式?
背景信息
使用數據開發模塊的作業編排和作業調度功能,每日通過統計交易明細表,生成日交易統計報表。
本示例涉及的數據表如下所示:
- trade_log:記錄每一筆交易數據。
- trade_report:根據trade_log統計產生,記錄每日交易匯總。
前提條件
- 已建立DLI的數據連接,以“dli_demo”數據連接為例。
如未建立,請參考創建數據連接進行操作。
- 已在DLI中創建數據庫,以“dli_db”數據庫為例。
如未創建,請參考新建數據庫進行操作。
- 已在“dli_db”數據庫中創建數據表trade_log和trade_report。
如未創建,請參考新建數據表進行操作。
操作步驟
1.新建和開發SQL腳本。
a.在數據開發模塊控制臺的左側導航欄,選擇“數據開發 > 腳本開發”。
b.進入右側區域頁面,選擇“新建SQL腳本 > DLI”。
c.進入SQL腳本開發頁面,在腳本屬性欄選擇“數據連接”、“數據庫”、“資源隊列”。
d.在腳本編輯器中輸入以下SQL語句。
INSERT OVERWRITE TABLE trade_report
SELECT
sum(trade_count),
'${yesterday}'
FROM
trade_log
where
date_format(trade_time, 'yyyy-MM-dd') = '${yesterday}'
e.單擊
,將腳本的名稱設置為“generate_trade_report”。
2.新建和開發作業。
a.在數據開發模塊控制臺的左側導航欄,選擇“數據開發 > 作業開發”。
b.進入右側區域頁面,單擊“新建作業”,新建一個名稱為“job”的空作業。
c.進入作業開發頁面,將DLI SQL節點拖至畫布中,單擊其圖標并配置“節點屬性”。
關鍵屬性說明:
- SQL腳本:關聯步驟1中開發完成的SQL腳本“generate_trade_report”。
- 數據庫名稱:自動填寫SQL腳本“generate_trade_report”中選擇的數據庫。
- 隊列名稱:自動填寫SQL腳本“generate_trade_report”中選擇的資源隊列。
- 腳本參數:顯示SQL腳本“generate_trade_report”中的參數“yesterday”,輸入以下EL表達式作為其參數值。
#{Job.getYesterday("yyyy-MM-dd")}
EL表達式說明:Job為作業對象,通過getYesterday方法獲取作業計劃執行時間前一天的時間,時間格式為yyyy-MM-dd。
假設作業計劃執行時間為2018/9/26 01:00:00,這個表達式計算結果是2018-09-25,該計算結果將替換SQL腳本中的${yesterday}參數。替換后的SQL內容如下:
INSERT OVERWRITE TABLE trade_report
SELECT
sum(trade_count),
'2018-09-25'
FROM
trade_log
where
date_format(trade_time, 'yyyy-MM-dd') = '2018-09-25'
d.單擊
,測試運行作業。
e.作業測試無問題后,單擊
,保存作業配置。