Skip to main content

XMLRecordSetWriter

描述:

将记录输出为XML,记录将通过一个XML根元素包装

标签:

xml, resultset, writer, serialize, record, recordset, row

参数:

如下列表中,必填参数则标识为加粗. 其他未加粗参数,则表示为可选参数。表中同时提到参数默认值设置, 并且 参数还支持 表达式语言.

名字默认值允许值列表描述
Schema写入策略不写Schema
- 设置 'schema.name' 属性通过数据流上名为'schema.name'的属性名指定Schema注册服务中的已注册的Schema。如果记录的Schema不能从Schema注册服务中获得,那么数据流中也就没有属性。
- 设置 'avro.schema' 属性通过数据流上名为'avro.schema'的属性来描述记录,且该属性值即为Avro Schema。数据流的内容可以不必是Avro记录,但是数据流上仍然可以有该属性来指定Schema。
- HWX Schema引用属性数据流包含3个用于描述Schema的属性: 'schema.identifier', 'schema.version', 和 'schema.protocol.version'。注意,如果记录中Schema没有包含必要的名字和版本信息,则当写数据时,将报错。
- HWX Schema编码内容引用数据流的内容中包含了引用Schema注册服务的Schema, 引用由'协议版本'的单字符以及8位长度的Schema Id,和4位Schema版本信息组成,用于Hortonworks Schema注册的序列化和反序列化,可从https://github.com/hortonworks/registry中了解更多。注意,如果记录中Schema没有包含必要的名字和版本信息,则当写数据时,将报错。
- Confluent Schema编码内容引用数据流的内容中包含了引用Schema注册服务的Schema,引用由一个单"魔法字符"和4位Schema id名组成,详细参加 http://docs.confluent.io/current/schema-registry/docs/serializer-formatter.html。注意,如果记录中Schema没有包含必要的名字和版本信息,则当写数据时,将报错。支持Confluent Schema注册的3.2.x版本。
- 不写Schema不添加Schema相关的信息到数据流中
指定如何将记录的Schema添加到数据中
Schema Cache控制器服务API:
RecordSchemaCacheService
实现:
VolatileSchemaCache
Specifies a Schema Cache to add the Record Schema to so that Record Readers can quickly lookup the schema.
Schema访问策略继承记录的Schema
- 使用 'Schema名字' 属性Schema的名字通过'Schema名字'属性指定。通过Schema名字来从Schema注册服务中获取相应的Schema。
- 继承记录的Schema用于写入记录的Schema将与创建记录时提供给记录的Schema相同。
- 使用 'Schema内容' 属性通过指定 'Schema内容' 属性提供的自定义Schema内容。无论是否支持表达式,其Schema内容必须提供有效的Avro Schema。
指定如何从数据中获得Schema信息
Schema注册服务控制器服务API:
SchemaRegistry
实现:
AvroSchemaRegistry
ConfluentSchemaRegistry
HortonworksSchemaRegistry
指定Schema注册服务
Schema名字${schema.name}指定从Schema注册服务中获取相应Schema的名字

支持表达式语言 (支持流属性和变量)
Schema版本指定从Schema注册服务中获取相应Schema的版本,如果未指定,则表示最新版本的Schema

支持表达式语言 (支持流属性和变量)
Schema分支当从Schema注册服务中获取相应Schema时,需指定的Schema分支名字。如果指定的<Schema注册服务>不支持分支管理,则该参数将被忽略。

支持表达式语言 (支持流属性和变量)
Schema内容${avro.schema}Avro格式的Schema内容

支持表达式语言 (支持流属性和变量)
日期格式指定当读写日期(Date)字段时使用的格式,如果不指定,默认将假定日期字段为基于纪元的毫秒数(即格林威治时间1970年1月1号午夜)。如果指定,则日期格式必须匹配Java 简单日期格式规范 (比如 MM/dd/yyyy, 具体为 01/01/2017)。
时间格式指定当读写时间(Time)字段时使用的格式。如果不指定,默认将假定日期字段为基于纪元的毫秒数(即格林威治时间1970年1月1号午夜)。 如果指定,则日期格式必须匹配Java 简单日期格式规范 (比如 HH:mm:ss, 具体为 18:04:15)。
时间戳格式指定当读写时间戳(Timestamp)字段时使用的格式。如果不指定,默认将假定日期字段为基于纪元的毫秒数(即格林威治时间1970年1月1号午夜)。 如果指定,则日期格式必须匹配Java 简单日期格式规范 (比如 MM/dd/yyyy HH:mm:ss, 具体为01/01/2017 18:04:15)。
Suppress Null ValuesNever Suppress
- Never SuppressFields that are missing (present in the schema but not in the record), or that have a value of null, will be written out as a null value
- Always SuppressFields that are missing (present in the schema but not in the record), or that have a value of null, will not be written out
- Suppress Missing ValuesWhen a field has a value of null, it will be written out. However, if a field is defined in the schema and not present in the record, the field will not be written out.
Specifies how the writer should handle a null field
格式化XML
- 是
- 否
指定是否格式输出XML
根标签名字指定用于包装记录的根标签名字
记录标签名字指定用于包装XML记录字段的记录标签名字
包装数组元素不包装
- 使用属性<数组标签名>来包装属性&lt;数组标签名&gt;所指定的标签名将被用作标签来包装数组的元素,数组字段的字段名将用于元素的标记名。
- 使用属性<数组标签名>来包装元素属性&lt;数组标签名&gt;所指定的标签名将用于数组元素的标签名,数组字段的字段名将用作标签来包装元素。
- 不包装不包装数组元素
指定如何包装字段是数组的元素
数组标签名当<包装数组元素>中需要包装数组时指定的数组标签名
Character SetUTF-8The Character set to use when writing the data to the FlowFile

状态管理:

该组件不保存状态。

限制:

该组件没有限制

系统资源考量:

未提供。