Skip to main content

AvroRecordSetWriter

描述:

写入二进制Avro格式的记录内容。

标签:

avro, result, set, writer, serializer, record, recordset, row, 记录, 写入, 序列化

参数:

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

名字默认值允许值列表描述
Schema写入策略内嵌Avro Schema
- 内嵌Avro Schema数据流将与内容一起内嵌Avro Schema信息。 Avro典型方式
- 设置 '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内容

支持表达式语言 (支持流属性和变量)
压缩格式不压缩
- BZIP2
- DEFLATE
- 不压缩
- SNAPPY
- LZO
当写Avro文件时使用的压缩格式,默认不压缩
Cache Size1000Specifies how many Schemas should be cached
Encoder Pool Size32Avro Writers require the use of an Encoder. Creation of Encoders is expensive, but once created, they can be reused. This property controls the maximum number of Encoders that can be pooled and reused. Setting this value too small can result in degraded performance, but setting it higher can result in more heap being used. This property is ignored if the Avro Writer is configured with a Schema Write Strategy of 'Embed Avro Schema'.

支持表达式语言 (仅支持变量)

状态管理:

该组件不保存状态。

限制:

该组件没有限制

系统资源考量:

未提供。