Job內嵌對象
更新時間 2023-07-21 00:01:04
最近更新時間: 2023-07-21 00:01:04
分享文章
本章節主要介紹DataArts Studio的Job內嵌對象功能。
Job為作業對象,提供了獲取作業中上一節點的輸出消息、作業調度計劃時間、作業執行時間等屬性和方法。
屬性和方法
屬性說明
| 屬性 | 類型 | 描述 |
|---|---|---|
| name | String | 作業名稱。 |
| planTime | java.util.Date | 作業調度計劃時間,即周期調度配置的時間,例如每天凌晨1:01調度作業。 |
| startTime | java.util.Date | 作業執行時間,有可能與planTime同一個時間,也有可能晚于planTime(由于作業引擎繁忙等)。 |
| eventData | String | 當作業使用事件驅動調度時,從通道獲取的消息。 |
| projectId | String | 當前數據開發模塊所處項目ID。 |
方法說明
| 方法 | 描述 |
|---|---|
| String getNodeStatus(String nodeName) | 獲取指定節點運行狀態,成功狀態返回success,失敗狀態返回fail。例如,判斷節點是否運行成功,可以使用如下判斷條件,其中test為節點名稱:#{(Job.getNodeStatus("test")) == "success" }。 |
| String getNodeOutput(String nodeName) | 獲取指定節點的輸出。此方法只能獲取前面依賴節點的輸出。 |
| String getParam(String key) | 獲取作業參數。注意此方法只能直接獲取當前作業里配置的參數值,并不能獲取到父作業傳遞過來的參數值,也不能獲取到工作空間里面配置的全局變量,作用域僅為本作業。這種情況下建議使用表達式${job_param_name},既可以獲取到父作業傳遞過來的參數值,也可以獲取到全局配置的變量。 |
| String getPlanTime(String pattern) | 獲取指定pattern的計劃時間字符串,pattern為日期、時間模式,請參考日期和時間模式。 |
| String getYesterday(String pattern) | 獲取執行pattern的計劃時間前一天的時間字符串,pattern為日期、時間模式,請參考日期和時間模式。 |
| String getLastHour(String pattern) | 獲取執行pattern的計劃時間前一小時的時間字符串,pattern為日期、時間模式,請參考日期和時間模式。 |
| String getRunningData(String nodeName) | 獲取指定節點運行中記錄的數據。此方法只能獲取前面依賴節點的輸出。當前只支持獲取DLI SQL節點運行中記錄的DLI作業id。例如,想要獲取DLI節點第3條語句的job ID(DLI節點名為DLI_INSERT_DATA),可以這樣使用:#{JSONUtil.path(Job.getRunningData("DLI_INSERT_DATA"),"jobIds[2]")}。 |
| String getInsertJobId(String nodeName) | 返回指定DLI SQL或Transform Load節點第一個DLI Insert SQL語句的作業ID,不指定參數nodeName時,獲取前面一個節點第一個DLI Insert SQL語句的作業ID,如果無法獲取到作業ID,返回null值。 |
舉例
獲取作業中節點名稱為test的輸出,EL表達式如下:
#{Job.getNodeOutput("test")}