Apache NIFI ExecuteGroovyScript

ExecuteGroovyScript


編輯人:酷酷的誠 郵箱:[email protected]


描述

Groovy腳本處理器。腳本負責處理傳入的流文件以及任何腳本創建的流文件(例如,轉移到成功或刪除)。如果處理不完整或不正確,會話將回滾。

屬性配置

在下面的列表中,必需屬性的名稱以粗體顯示。任何其他屬性(不是粗體)都被認爲是可選的,並且指出屬性默認值(如果有默認值),以及屬性是否支持表達式語言。

屬性名稱 默認值 可選值 描述
Script File     要執行的腳本文件的路徑。只能使用一個腳本文件或腳本主體
支持表達式語言:true
Script Body     要執行的腳本體。只能使用一個腳本文件或腳本主體
Failure strategy rollback ▪rollback
▪transfer to failure
如何對待未處理的異常。如果希望通過代碼管理異常,請保留默認值“rollback”。如果選中“transfer to failure”且有未處理異常發生,則此會話會將從傳入隊列接收的所有流文件都傳輸到“failure”關係,並帶有附加屬性:ERROR_MESSAGE和ERROR_STACKTRACE。如果選擇 “rollback”且有未處理異常發生,則將從傳入隊列接收到的所有流文件進行懲罰並返回。如果處理器沒有傳入連接,則此參數無效。
Additional classpath     用分號分隔的類路徑列表。
支持表達式語言:true

動態屬性:

該處理器允許用戶指定屬性的名稱和值。

屬性名稱 屬性值 描述
要更新的腳本引擎屬性 要將其設置爲的值 用動態屬性的值指定的值更新由動態屬性的鍵指定的腳本引擎屬性。
支持表達式語言:true

連接關係

名稱 描述
failure 處理失敗的流文件
sucess 成功處理的流文件

讀取屬性

沒有指定。

寫屬性

沒有指定。

狀態管理

此組件不存儲狀態。

限制

Required Permission Explanation
execute code 提供操作符執行任意代碼的能力,假設NiFi具有所有權限。

輸入要求

沒有指定。

系統資源方面的考慮

沒有指定。

應用場景

該處理器用於執行groovy腳本,可以靈活處理Flowfile.

示例說明

1.使用Groovy腳本組裝數據

groovy腳本:這段腳本執行一個SQL 查詢MySQL 並將結果寫入到輸出流屬性

//By [email protected]
import groovy.json.JsonSlurper
import groovy.sql.Sql
import groovy.json.JsonOutput 
//get the flowfile  
def ff = session.get()
if(!ff)return
Map map = [:]
// get attributes of this flowfile
def tablename= ff.getAttribute('tableName')
// build the sql which select from slave table
def sql = "select * from ${tablename} limit 1"
//SQL.mydb references http://docs.groovy-lang.org/2.4.10/html/api/groovy/sql/Sql.html object
List list = SQL.mydb.rows(sql.toString()) //important to cast to String
map.put("result",list[0].toString())
def output = JsonOutput.toJson(map)
session.remove(ff)
def newff = session.create()
newff.putAttribute("data", output )
//transfer flow file to success
REL_SUCCESS << newff

公衆號

關注公衆號 得到第一手文章/文檔更新推送。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章