首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用一个Avro文件中的两个模式更新avro模式

使用一个Avro文件中的两个模式更新avro模式
EN

Stack Overflow用户
提问于 2017-11-06 02:13:31
回答 1查看 387关注 0票数 0

我有一个带有第一个模式的avro文件,然后我更新了附加到同一文件的模式。所以现在我在一个文件中有两个模式。avro是如何处理这种情况的。我是否会在文件中添加任何新字段,或者在读取此数据时会丢失任何数据。这是一个实时流应用程序,我在其中将数据写入hdfs。我的上游系统可能会更新模式,但hdfs编写器可能在旧模式上。因此,在我更新编写器以处理较新的模式之前,hdfs avro文件将具有两个模式。

注意-我没有模式注册表,我每天创建一个avro文件。因此,如果在中午更新模式,我将拥有一个包含两个模式的avro文件。

EN

回答 1

Stack Overflow用户

发布于 2017-11-15 01:23:24

与Thrift不同,Avro不会在数据中保存有关avro模式的任何元信息。

  1. Avro要求avro架构在写入和读取时都存在。
  2. 假设模式演化是兼容的,因此读取具有新版本的旧模式不会导致异常,但新字段可以具有空值。
  3. 您不断发展的模式需要向后兼容。

提供了实用程序来检查模式compatibility.

  1. As您的文件可能有两个不同的版本,但在读取时,您将提供一个版本,因此数据将反序列化为您在读取时提供的版本。Avro Avro
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47124929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档