表達式概述
更新時間 2023-08-11 09:54:32
最近更新時間: 2023-08-11 09:54:32
分享文章
本章節主要介紹DataArts Studio的EL表達式操作。
數據開發模塊作業中的節點參數可以使用表達式語言(Expression Language,簡稱EL),根據運行環境動態生成參數值。可以根據Pipeline輸入參數、上游節點輸出等決定是否執行此節點。數據開發模塊 EL表達式使用簡單的算術和邏輯計算,引用內嵌對象,包括作業對象和一些工具類對象。
作業對象:提供了獲取作業中上一個節點的輸出消息、作業調度計劃時間、作業執行時間等屬性和方法。
工具類對象:提供了一系列字符串、時間、JSON操作方法,例如從一個字符串中截取一個子字符串、時間格式化等。
語法
表達式的語法:
#{expr}
其中,“expr”指的是表達式。“#”和“{}”是數據開發模塊 EL中通用的操作符,這兩個操作符允許您通過數據開發模塊內嵌對象訪問作業屬性。
舉例
在Rest Client節點的參數“URL參數”中使用EL表達式
“tableName=#{JSONUtil.path(Job.getNodeOutput("get_cluster"),"tables[0].table_name")}”。
表達式說明如下:
- 獲取作業中“get_cluster”節點的執行結果(“Job.getNodeOutput("get_cluster")”),執行結果是一個JSON字符串。
- 通過JSON路徑(“tables[0].table_name”),獲取JSON字符串中字段的值。
調試方法介紹
下面為您介紹幾種EL表達式的調試方法,能夠在調試過程中方便地看到替換結果。
后文以#{DateUtil.now()}表達式為例進行介紹。
- 使用DIS Client節點。
- 前提:您需要具備DIS通道。
- 方法:選擇DIS Client節點,將EL表達式直接寫在要發送的數據中,點擊“測試運行”,然后在節點上右鍵查看日志,日志中會把EL表達式的值打印出來。




- 使用Kafka Client節點。
- 前提:您需要具備MRS集群,且集群有Kafka組件。
- 方法:選擇Kafka Client節點,將EL表達式直接寫在要發送的數據中,點擊“測試運行”,然后在節點上右鍵查看日志,日志中會把EL表達式的值打印出來。




- 使用Shell節點。
- 前提:您需要具備ECS彈性云主機。
- 方法:創建一個主機連接,將EL表達式直接通過echo打印出來,點擊“測試運行”之后查看日志,日志中會打印出EL表達式的值。




- 使用Create OBS節點。
如果上述方法均不可用,則可以通過Create OBS去創建一個OBS目錄,目錄名稱就是EL表達式的值,點擊“測試運行”后,再去OBS界面查看創建出來的目錄名稱。



