前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AvroReader

AvroReader

作者头像
@阿诚
发布2020-08-31 14:33:33
7180
发布2020-08-31 14:33:33
举报
文章被收录于专栏:Panda诚Panda诚

AvroReader

编辑人(全网同名):酷酷的诚 邮箱:zhangchengk@foxmail.com

描述

该控制服务器解析Avro数据,并将每个Avro记录作为单独的Record对象返回。Avro数据可能内置schema数据,或者可以通过Schema Access Strateg属性提供的方法获取schema。

属性配置

在下面的列表中,必需属性的名称以粗体显示。任何其他属性(不是粗体)都被认为是可选的,并且指出属性默认值(如果有默认值),以及属性是否支持表达式语言。(1.11.4版本)

属性名称

默认值

可选值

描述

Schema Access Strategy

embedded-avro-schema

▪Use 'Schema Name' Property▪Use 'Schema Text' Property▪HWX Schema Reference Attributes▪HWX Content-Encoded Schema Reference▪Confluent Content-Encoded Schema Reference▪Use Embedded Avro Schema

指定如何获取用于解释数据的schema信息。

Schema Registry

Controller Service API:SchemaRegistryImplementations:ConfluentSchemaRegistryAvroSchemaRegistryHortonworksSchemaRegistry

指定Schema策略的控制服务器

Schema Name

${schema.name}

如果使用了Schema Registry,指定需要查找的schema的名称支持表达式语言:true

Schema Version

指定要在Schema Registry中查找的schema的版本,不指定则默认取最新版本支持表达式语言:true

Schema Branch

定在Schema Registry属性中查找schema时要使用的分支名称。如果选择的策略不支持branch,则忽略此配置支持表达式语言:true

Schema Text

${avro.schema}

Avro格式的schema文本支持表达式语言:true

Cache Size

1000

缓存schema的大小

状态管理

此组件不存储状态。

限制

无。

系统资源方面的考虑

深入讲解

在NIFI的Controller Service中,有一批以Reader、Writer结尾的读写器。AvroReader顾名思义,就是读取avro格式数据的。

在属性配置里我们看到只有两个是必填的。而Cache Size很简单,配置缓存大小,缓存schema信息的。

对于Schema Access Strategy,有很多选项,我们一个一个来说。

  1. Use Embedded Avro Schema 这是最常用的选项了,avro数据内置了schema信息,我们不需要额外的配置schema信息了。在NIFI的组件里比如ExecuteSQL AvroWriter等等都会设置把schema内置到avro数据里。
  2. Use 'Schema Text' Property 这个也非常简单,手动指定一个schema。你可以直接在Schema Text的value里编辑schema文本,也可以在流文件属性或者变量注册表指定一个叫avro.schema的schema文本。当然,avro.schema是人为定义的,可修改。 除了以上两个之外其他的选项,都必须配置Schema Registry才能使用。
  3. Use 'Schema Name' Property 使用Schema Name属性,选择这个选项,那么无疑程序会使用到Schema Name这个属性,同时必须指定一个Schema Registry控制服务器。Schema Name用来指定schema的名称,然后提供给Schema Registry配置的控制服务器使用。简单来说就是:选择Schema Name,就得配置一个Schema Registry,然后默认情况下程序会使用表达式语言读取一个叫schema.name的值,把这个值传给Schema Registry,让他去对应的地方查一个schema回来。当然,具体的控制服务器还可能使用到Schema Version Schema Branch这些值。
  4. HWX Schema Reference Attributes HWX是hortonworks的缩写,选择这个配置,程序会默认读取流文件中的三个属性值:schema.identifier, schema.version, schema.protocol.version,然后用这三个值到Schema Registry指定的服务上获取schema
  5. HWX Content-Encoded Schema Reference 选择这个配置,流文件内容中会内置使用Schema Registry指定的服务上获取schema所需要的信息,一个byte指明protocol version,紧跟着8个byte指明schema identifier,最后是4个byte指明schema version. 如果使用以上这两个配置,还得到官网上详情了解学习https://github.com/hortonworks/registry
  6. Confluent Content-Encoded Schema Reference 同上,查询schema所需要的信息编码内置到了流文件内容当中,详细还需到官网了解学习http://docs.confluent.io/current/schema-registry/docs/serializer-formatter.html

文章有帮助的话,小手一抖点击在看,并转发吧。谢谢支持哟 (*^__^*)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Panda诚 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • AvroReader
  • 描述
  • 属性配置
  • 状态管理
  • 限制
  • 系统资源方面的考虑
  • 深入讲解
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档