我正在从 ORACLE DB 获取数据,我想将其保存在 hbase 中而不使用(convertAvroToJson 和 putHbaseJSON)
从oracle我得到4个这样的属性:a:Text b:Text c:Text d:Binary
有没有办法直接从avro文件中保存这些属性
注意:阻止我使用 JSON 的唯一原因是可能包含 (" 或 ') 的 BINARY 属性
谢谢你。
我正在从 ORACLE DB 获取数据,我想将其保存在 hbase 中而不使用(convertAvroToJson 和 putHbaseJSON)
从oracle我得到4个这样的属性:a:Text b:Text c:Text d:Binary
有没有办法直接从avro文件中保存这些属性
注意:阻止我使用 JSON 的唯一原因是可能包含 (" 或 ') 的 BINARY 属性
谢谢你。
我认为没有办法使用 Apache NiFi 提供的开箱即用处理器来做到这一点。您需要实现一个像 PutHBaseAvro 这样的新处理器,它可以直接从 Avro 到 HBase 突变,并正确处理二进制数据。
有一个 AbstractPutHBase 类可以扩展以更轻松地实现新的 put HBase 处理器:
您只需要实现以下方法:
protected abstract PutFlowFile createPut(final ProcessSession session, final ProcessContext context, final FlowFile flowFile);
这会将 FlowFile 的内容读取为 Avro 并转换为 PutFlowFile。
如果您有兴趣从事此工作并将其回馈,那将是 HBase 处理器的一个不错的版本。