【发布时间】:2017-01-01 07:21:50
【问题描述】:
我是 Hadoop 和编程的新手,我对 Avro 模式的演变有点困惑。我将解释到目前为止我对 Avro 的了解。
Avro 是一个序列化工具,它存储二进制数据,其 json 模式位于顶部。架构如下所示。
{
"namespace":"com.trese.db.model",
"type":"record",
"doc":"This Schema describes about Product",
"name":"Product",
"fields":[
{"name":"product_id","type": "long"},
{"name":"product_name","type": "string","doc":"This is the name of the product"},
{"name":"cost","type": "float", "aliases":["price"]},
{"name":"discount","type": "float", "default":5}
]
}
现在我的问题是为什么我们需要进化?我已经读到我们可以在架构中使用default 来获取新字段;但是如果我们在文件中添加一个新模式,那么之前的模式将被覆盖。一个文件不能有两个模式。
另一个问题是,什么是读取器和写入器模式,它们有什么帮助?
【问题讨论】: