如何在NiFi中使用UDF?

时间:2018-11-05 16:55:58

标签: hive user-defined-functions apache-nifi

我正在尝试加密数据,以便仅对某些列进行加密。 例如:{col1,col2,col3,col4} => {col1,加密(col2),col3,加密(col4)}

如果我的加密过程可以通过使用udf完成,那么如何在NiFi中注册和/或使用udf?

在Hive中,这可以通过首先注册udf来完成,例如: 使用jar'hdfs / path / to / jar / abc.jar'创建临时函数udf_name作为'abc.efg.udf_class_name'; 然后执行:从表中选择col1,udf_name(col2),col3,udf_name(col4);

在NiFi中,有一个QueryRecord,它允许我对流文件的内容执行选择查询。但是,我不确定如何在NiFi中注册udf。

在类似的情况下,是否可以在同一个流文件的NiFi中执行多个sql命令?

1 个答案:

答案 0 :(得分:1)

据我所知,Apache NiFi不支持

UDF。但是,如果源数据属于NiFi记录读取器/写入器API支持的数据类型,即CSV,Avro,JSON等,则可以使用ConvertRecord处理器。

  • 配置ConvertRecord处理器,并将Record Reader设置为源数据类型,例如CSVReader,并将Record Writer设置为ScriptedRecordSetWriter
  • 然后必须使用您选择的脚本语言配置
  • ScriptedRecordSetWriter:我猜Clojure&Groovy可以在您的情况下工作。
  • 然后在Script FileScript Body字段中提供脚本进行加密。

enter image description here

enter image description here

enter image description here