【问题标题】:How to use UDFs in NiFi?如何在 NiFi 中使用 UDF?
【发布时间】:2019-04-09 01:48:12
【问题描述】:

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

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

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

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

同理,是否可以在 NiFi 中对同一个流文件执行多个 sql 命令?

【问题讨论】:

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


    【解决方案1】:

    据我所知,Apache NiFi 不支持 UDF。但是,如果您的源数据属于 NiFi Record Reader/Writer API 支持的数据类型,即 CSV、Avro、JSON 等,您可以使用ConvertRecord 处理器。

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

    【讨论】:

    • 有一个开放的 Jira NIFI-4132 可以在本地实现此逻辑,但目前不在即将发布的范围内。
    猜你喜欢
    • 1970-01-01
    • 2021-11-26
    • 2017-04-30
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-14
    • 2018-08-11
    相关资源
    最近更新 更多