JsonRecordSetWriter

文档中心 › 组件索引 › JsonRecordSetWriter

JsonRecordSetWriter Controller Service

类型全限定名:cn.org.acal.lynxus.json.JsonRecordSetWriter

所属 Bundle:cn.org.acal.lynxus:lynxus-record-serialization-services-nar:2.11.8

描述

将 RecordSet 的结果写入 JSON 数组或每行一个 JSON 对象。 如果使用数组输出,那么即使 RecordSet 由一行组成,它也会被写入为具有单个元素的数组。 如果使用每个对象一行输出,则无法漂亮地打印 JSON 对象。

标签

jsonresultsetwriterserializerecordrecordsetrow

属性

下表中,加粗的属性为必填项;其余为可选项。表格同时标注默认值、是否支持表达式语言,以及是否为敏感属性(值会被加密)。

名称默认值可选值描述
Schema Write Strategyno-schema
  • 不写出 Schema — 不向 FlowFile 添加任何 Schema 相关信息。
  • Set 'schema.name' Attribute — FlowFile 将被赋予一个名为 'schema.name' 的属性,该属性将指示 Schema Registry 中 schema 的名称。请注意,如果记录的 schema 不是从 Schema Registry 获取的,则不会添加任何属性。
  • 设置 'avro.schema' 属性 — FlowFile 将获得一个名为 'avro.schema' 的属性,该属性将包含描述 FlowFile 中记录的 Avro Schema。FlowFile 的内容不需要是 Avro 格式,但将使用 Schema 的文本。
  • Schema 引用写入器 — Schema 引用信息将通过配置的 Schema 引用写入器服务实现写出。
指定记录的模式应如何添加到数据中。
Schema Cache控制器服务 API:
RecordSchemaCacheService
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
指定要添加记录模式的模式缓存,以便记录读取器可以快速查找模式。
Schema Reference Writer控制器服务 API:
SchemaReferenceWriter
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
负责使用模式参考信息写入 FlowFile 属性或内容头的服务实现
Schema Access Strategyinherit-record-schema
  • 继承记录 Schema — 用于写入记录的 Schema 与创建 Record 时给出的 Schema 相同。
  • 使用 'Schema Name' 属性 — 要使用的 Schema 名称由 'Schema Name' 属性指定。此属性的值用于在配置的 Schema Registry 服务中查找 Schema。
  • 使用 'Schema Text' 属性 — Schema 本身的文本由 'Schema Text' 属性指定。此属性的值必须是有效的 Avro Schema。如果使用表达式语言,则 'Schema Text' 属性的值在替换表达式后必须有效。
指定如何获取用于解释数据的架构。
Schema Registry控制器服务 API:
SchemaRegistry
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
指定用于架构Registry的Controller Service
Schema Name${schema.name}指定要在架构Registry属性中查找的架构名称
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Schema Version指定在 Schema Registry 中查找 Schema 的版本。如果未指定,则检索 Schema 的最新版本。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Schema Branch指定在 Schema Registry 属性中查找 Schema 时使用的分支名称。如果选择的 Schema Registry 不支持分支,则此值将被忽略。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Schema Text${avro.schema}Avro 格式的架构文本
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Schema Reference Reader控制器服务 API:
SchemaReferenceReader
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
服务实现负责读取 FlowFile 属性或内容以确定架构参考标识符
Date Format指定读取/写入日期字段时使用的格式。如果未指定,日期字段将被视为自纪元(1970 年 1 月 1 日午夜 GMT)以来的毫秒数。如果指定,值必须匹配 Java java.time.format.DateTimeFormatter 格式(例如,MM/dd/yyyy 表示两位数字的月份,后跟两位数字的日期,后跟四位数字的年份,全部以 '/' 字符分隔,如 01/01/2017)。
Time Format指定读取/写入时间字段时使用的格式。如果未指定,时间字段将被视为自纪元(1970 年 1 月 1 日午夜 GMT)以来的毫秒数。如果指定,值必须匹配 Java java.time.format.DateTimeFormatter 格式(例如,HH:mm:ss 表示 24 小时格式的两位数字的小时,后跟两位数字的分钟,后跟两位数字的秒,全部以 ':' 字符分隔,如 18:04:15)。
Timestamp Format指定读取/写入时间戳字段时使用的格式。如果未指定,时间戳字段将被视为自纪元(1970 年 1 月 1 日午夜 GMT)以来的毫秒数。如果指定,值必须匹配 Java java.time.format.DateTimeFormatter 格式(例如,MM/dd/yyyy HH:mm:ss 表示两位数字的月份,后跟两位数字的日期,后跟四位数字的年份,全部以 '/' 字符分隔;然后后跟 24 小时格式的两位数字的小时,后跟两位数字的分钟,后跟两位数字的秒,全部以 ':' 字符分隔,如 01/01/2017 18:04:15)。
Pretty Print JSONfalse
  • true
  • false
指定 JSON 是否应该被漂亮地打印
Suppress Null Valuesnever-suppress
  • 从不抑制 — 缺失(在 Schema 中定义但不在记录中)或值为 null 的字段将作为 null 值写出
  • 始终抑制 — 缺失(在 Schema 中定义但不在记录中)或值为 null 的字段将不会写出
  • 抑制缺失值 — 当字段值为 null 时将被写出。但是,如果字段在 Schema 中定义但不在记录中,则该字段不会写出。
指定编写器应如何处理空字段
Allow Scientific Notationfalse
  • true
  • false
指定在书写数字时是否应使用科学记数法
Output Groupingoutput-array
  • 数组 — 将记录输出为 JSON 数组
  • 每行一个对象 — 每行输出一个 JSON 对象,用换行符分隔
指定 Writer 应如何输出 JSON 记录(如数组或每行一个对象)。请注意,如果选择 'One Line Per Object',则 Pretty Print JSON 必须为 false。
Compression Formatnone
  • none
  • gzip
  • bzip2
  • xz-lzma2
  • snappy
  • snappy framed
  • zstd
要使用的压缩格式。 有效值为:GZIP、BZIP2、ZSTD、XZ-LZMA2、LZMA、Snappy 和 Snappy Framed
Compression Level1
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
要使用的压缩级别;仅在使用 GZIP 压缩时有效。较低的值会产生更快的处理速度但压缩率较低;值为 0 表示不压缩,仅进行归档。
Serialized JSON Input HandlingENABLED
  • 已启用 — 写入器在可以安全执行时,可能会逐字输出输入读取器的原始 JSON 字节,作为吞吐量优化。 Timestamp Format、Date Format、Time Format 和 Suppress Null Values 可能不会应用于这些记录。
  • 已禁用 — 写入器从类型化的字段值重新序列化每条记录,因此 Timestamp Format、Date Format、Time Format 和 Suppress Null Values 会被统一遵循。
启用后,Writer 可能会在安全的情况下逐字输出输入 Reader 的原始 JSON 字节,作为吞吐量优化。在这种情况下,时间戳格式、日期格式、时间格式和抑制空值属性可能不会应用于这些记录。禁用时,Writer 会重新序列化每条记录,以确保这些属性得到统一应用。

状态管理

该组件不存储状态。

受限 (Restricted)

该组件不受限。

提供的 Service API

  • RecordSetWriterFactory (cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8)