複製鏈接
請複製以下鏈接發送給好友

Avro

鎖定
Avro,是指數據序列化的系統,有豐富的數據結構類型、快速可壓縮的二進制數據形式。
中文名
Avro
外文名
Avro
類    別
數據序列化的系統
功    能
豐富的數據結構類型

Avro系統概況

它可以提供:
1 豐富的數據結構類型
2 快速可壓縮的二進制數據形式
3 存儲持久數據的文件容器
5 簡單的動態語言結合功能,Avro和動態語言結合後,讀寫數據文件和使用RPC協議都不需要生成代碼,而代碼生成作為一種可選的優化只值得在靜態類型語言中實現。

Avro使用模式

Avro依賴於模式(Schema)。Avro數據的讀寫操作是很頻繁的,而這些操作都需要使用模式,這樣就減少寫入每個數據資料的開銷,使得序列化快速而又輕巧。這種數據及其模式的自我描述方便於動態腳本語言的使用。
當Avro數據存儲到文件中時,它的模式也隨之存儲,這樣任何程序都可以對文件進行處理。如果需要以不同的模式讀取數據,這也很容易解決,因為兩個模式都是已知的。
當在RPC中使用Avro時,服務器和客户端可以在握手連接時交換模式。服務器和客户端有着彼此全部的模式,因此相同命名字段、缺失字段和多餘字段等信息之間通信中需要解決的一致性問題就可以容易解決
還有,Avro模式是用JSON(一種輕量級的數據交換模式)定義的,這樣對於已經擁有JSON庫的語言可以容易實現。

Avro功能區別

Avro提供着如Thrift和Protocol Buffers等系統相似的功能,但是在一些基礎方面還是有區別的,主要是:
1 動態類型:Avro並不需要生成代碼,模式和數據存放在一起,而模式使得整個數據的處理過程並不生成代碼、靜態數據類型等等。這方便了數據處理系統和語言的構造。
2 未標記的數據:由於讀取數據的時候模式是已知的,那麼需要和數據一起編碼的類型信息就很少了,這樣序列化的規模也就小了。
3 不需要用户指定字段號:即使模式改變,處理數據時新舊模式都是已知的,所以通過使用字段名稱可以解決差異問題。 [1] 
參考資料
  • 1.    Avro  .Avro簡介.2017-02-08[引用日期2017-02-08]