重慶慧都科技有限公司
參考價: | 面議 |
- 產(chǎn)品型號
- 品牌
- 其他 廠商性質(zhì)
- 所在地
訪問次數(shù):86更新時間:2022-03-28 16:23:45
功能描述
需要培訓、定制、外包?
請聯(lián)系我們!:800018081
慧都專業(yè)技術(shù)團隊幫助您提高效率,節(jié)省成本,降低風險!
* 關于本產(chǎn)品的分類與介紹僅供參考,精準產(chǎn)品資料以介紹為準,如需購買請先行測試。
產(chǎn)品特點:
Avro擁有以下特點:
豐富的數(shù)據(jù)結(jié)構(gòu)類型;
快速可壓縮的二進制數(shù)據(jù)形式,對數(shù)據(jù)二進制序列化后可以節(jié)約數(shù)據(jù)存儲空間和網(wǎng)絡傳輸帶寬;
存儲持久數(shù)據(jù)的文件容器;
可以實現(xiàn)遠程過程調(diào)用RPC;
簡單的動態(tài)語言結(jié)合功能。
Avro支持跨編程語言實現(xiàn)(C, C++, C#,Java, Python, Ruby, PHP),類似于Thrift,但是Avro的顯著特征是:avro依賴于模式,動態(tài)加載相關數(shù)據(jù)的模式,Avro數(shù)據(jù)的讀寫操作很頻繁,而這些操作使用的都是模式,這樣就減少寫入每個數(shù)據(jù)文件的開銷,使得序列化快速而又輕巧。這種數(shù)據(jù)及其模式的自我描述方便了動態(tài)腳本語言的使用。當Avro數(shù)據(jù)存儲到文件中時,它的模式也隨之存儲,這樣任何程序都可以對文件進行處理。如果讀取數(shù)據(jù)時使用的模式與寫入數(shù)據(jù)時使用的模式不同,也很容易解決,因為讀取和寫入的模式都是已知的。
Avro和動態(tài)語言結(jié)合后,讀/寫數(shù)據(jù)文件和使用RPC協(xié)議都不需要生成代碼,而代碼生成作為一種可選的優(yōu)化只需要在靜態(tài)類型語言中實現(xiàn)。
Avro依賴于模式(Schema)。通過模式定義各種數(shù)據(jù)結(jié)構(gòu),只有確定了模式才能對數(shù)據(jù)進行解釋,所以在數(shù)據(jù)的序列化和反序列化之前,必須先確定模式的結(jié)構(gòu)。正是模式的引入,使得數(shù)據(jù)具有了自描述的功能,同時能夠?qū)崿F(xiàn)動態(tài)加載,另外與其他的數(shù)據(jù)序列化系統(tǒng)如Thrift相比,數(shù)據(jù)之間不存在其他的任何標識,有利于提高數(shù)據(jù)處理的效率。
支持的數(shù)據(jù)類型
Avro支持的簡單數(shù)據(jù)類型包括null、boolean、int、long、float、double、bytes和string。在這里,null是一種特殊類型,對應于沒有數(shù)據(jù),并可以用于代替任何數(shù)據(jù)類型。
Avro支持的復雜類型包括以下幾個:
Record:大致相當于C語言的結(jié)構(gòu)體。Record有名稱以及可選的名稱空間、文檔和別名。它包含一個命名屬性的列表,這些屬性可以是任何Avro類型。
Enum:值的枚舉。Enum有名字、可選的名稱空間、文檔和別名,并包含一個符號列表(合法的JSON字符串)。
Array:相同類型條目的集合。
Map:字符串類型鍵和特定類型值的映射表。
Union:表示值的or選項。Union的常見用法是可以為空的值。