我是Hadoop和編程的新手,我對Avro架構的演變有點困惑。我會解釋我對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
來創建新字段;但如果我們在文件中添加一個新的模式,那麼以前的模式將被覆蓋。對於單個文件我們不能有兩個模式。
另一個問題是,什麼是讀者和作家的模式,他們如何幫助?
謝謝@ jaco0646的詳細解釋。 –