Skip to main content

XMLReader

描述:

读取XML内容并创建记录对象。第二级的XML数据将作为每个记录。

标签:

xml, record, reader, parser, 记录, 解析

参数:

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

名字默认值允许值列表描述
Schema访问策略Infer Schema
- 使用 'Schema名字' 属性Schema的名字通过'Schema名字'属性指定。通过Schema名字来从Schema注册服务中获取相应的Schema。
- 使用 'Schema内容' 属性通过指定 'Schema内容' 属性提供的自定义Schema内容。无论是否支持表达式,其Schema内容必须提供有效的Avro Schema。
- HWX Schema引用属性数据流包含3个用于从Schema注册的属性: 'schema.identifier', 'schema.version', 和 'schema.protocol.version'
- HWX Schema编码内容引用数据流的内容中包含了引用Schema注册服务的Schema, 引用由'协议版本'的单字符以及8位长度的Schema Id,和4位Schema版本信息组成,用于Hortonworks Schema注册的序列化和反序列化,可从https://github.com/hortonworks/registry中了解更多。
- Confluent Schema编码内容引用数据流的内容中包含了引用Schema注册服务的Schema,引用由一个单"魔法字符"和4位Schema id名组成,详细参加 http://docs.confluent.io/current/schema-registry/docs/serializer-formatter.html. 支持Confluent Schema注册的3.2.x版本。
- Infer SchemaThe Schema of the data will be inferred automatically when the data is read. See component Usage and Additional Details for information about how the schema is inferred.
指定如何从数据中获得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内容

支持表达式语言 (支持流属性和变量)
Schema Inference Cache控制器服务API:
RecordSchemaCacheService
实现:
VolatileSchemaCache
Specifies a Schema Cache to use when inferring the schema. If not populated, the schema will be inferred each time. However, if a cache is specified, the cache will first be consulted and if the applicable schema can be found, it will be used instead of inferring the schema.
期望数组记录
- 否每个数据流由单个记录组成
- 是每个数据流有0到多个记录组成。 最外层的XML元素将被忽略
- 使用'xml.stream.is.array'属性根据属性&#39;xml.stream.is.array&#39;的值来决定是单条记录还是多条记录. 如果属性值为 &#39;true&#39;(大小写不敏感), 则XML读取器将处理数据为数组并忽略外层包装元素,如果是&#39;false&#39;,则将处理为单条记录。如果不存该属性或值为其他非&#39;true&#39;或&#39;false&#39;值,则将报错并且不会读取任何记录。
指定是否将记录读取为单条记录还是多条包装的记录。因为XML没有提供直接从文件流中读取一系列XML元素的方法。
属性前缀如果设置,则XML中的属性名前增加前缀后添加到记录中

支持表达式语言 (支持流属性和变量)
内容的字段名如果标签包含内容 (比如content)被定义为Schema中的嵌套记录,标签名字将作为记录中字段名,值将作为相应的字段值。如果标签还包含内容和属性(比如 content),则将同时解析到记录中。

支持表达式语言 (支持流属性和变量)
日期格式指定当读写日期(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)。

状态管理:

该组件不保存状态。

限制:

该组件没有限制

系统资源考量:

未提供。