【发布时间】:2020-08-11 17:23:22
【问题描述】:
我使用 ExecuteSQL 从数据库中检索了一些二进制文件(在本例中为一些 PDF),它以 Avro FlowFile 的形式返回结果。我不知道如何从 Avro 记录中获取二进制结果。
我试过使用 ConvertAvroToJSON,它给了我一个像这样的对象:
{"MYBLOB": {"bytes": "%PDF-1.4\n [...] " }}
但是,使用 EvaluateJSONPath 并抓取 $.MYBLOB.bytes 会导致损坏,因为二进制字节会转换为 UTF8。
使用 ConvertRecord 的记录写入器选项似乎都不适合二进制数据。
我能想到的最佳解决方案是在二进制文件离开数据库之前对其进行 base64 编码,然后我只处理字符数据并可以在 NiFi 中对其进行解码。但这是额外的步骤,我不想这样做。
【问题讨论】:
标签: encoding apache-nifi avro