我正在尝试加密数据,以便仅对某些列进行加密。 例如:{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命令?
答案 0 :(得分:1)
UDF。但是,如果源数据属于NiFi记录读取器/写入器API支持的数据类型,即CSV,Avro,JSON等,则可以使用ConvertRecord
处理器。
ConvertRecord
处理器,并将Record Reader
设置为源数据类型,例如CSVReader
,并将Record Writer
设置为ScriptedRecordSetWriter
。 Script File
或Script Body
字段中提供脚本进行加密。