【Apache NIFI Processor】ConvertAvroToJson
NIFI项目路径
nifi\nifi-nar-bundles\nifi-avro-bundle\nifi-avro-processors
\src\main\java\org\apache\nifi\processors\avro\ConvertAvroToJSON.java
Description 描述
将Binary Avro record转换为JSON对象。该处理器提供了一个Avro字段到JSON字段的直接映射,这样生成的JSON将具有与Avro文档相同的层次结构。请注意,Avro schema信息将丢失,因为这不是从二进制Avro到JSON格式的Avro的转换。
输出JSON编码为UTF-8编码。如果传入的FlowFile包含多个Avro record的流,则生成的FlowFile将包含一个JSON Array,其中包含所有Avro record或JSON对象序列。
如果传入的FlowFile不包含任何record,那么将输出一个空的JSON对象。空/单个Avro record FlowFile输入可以根据“Wrap Single Record’”的要求选择是否包装在容器中。
Properties 属性
在下面的列表中,必需属性的名称以粗体显示。任何其他属性(不是粗体)都被认为是可选的,并且指出属性默认值(如果有默认值),以及属性是否支持表达式语言。
属性名称 | 默认值 | 可选值 | 描述 |
---|---|---|---|
JSON container options | array | ·none ·array | 确定如何显示记录流: none:单个Object序列(即将每个Object写入新行) array: Objects数组(array)。 |
Wrap Single Record | false | ·true ·false | 确定是否应将空记录或单个记录的结果输出包装在“ 'JSON container options”指定的容器数组中 |
Avro schema | 如果流中的avro格式数据没有自带schema,需要你在这里设置avro的schema |
连接关系
名称 | 描述 |
---|---|
success | 将FlowFile转换为JSON后,将其路由到该关系 |
failure | 如果无法将FlowFile解析为Avro或由于某种原因而无法将其转换为JSON,则会将其路由到该关系 |
读取属性
没有指定。
写属性
没有指定。
Name | Description |
---|---|
mime.type | 设置为application/json |
状态管理
此组件不存储状态。
限制
此组件不受限制。
输入要求
此组件需要传入关系。
系统资源方面的考虑
未指定。
应用场景
示例说明
iGetJDBC设置:
SplitAvro设置:
SplitAvro设置:
UpdateAttribute设置:
表数据:
队列:
1:
2:
3: