Avro schema作為大數(shù)據(jù)一個項目,它可以算得上精品中的上等品,讓學(xué)習(xí)或者想要學(xué)習(xí)大數(shù)據(jù)的人為之傾倒,不斷挖掘?qū)W習(xí),那么它究竟有著怎樣的神秘面紗呢?我們一起來揭開!
我們注重客戶提出的每個要求,我們充分考慮每一個細(xì)節(jié),我們積極的做好成都網(wǎng)站設(shè)計、成都做網(wǎng)站服務(wù),我們努力開拓更好的視野,通過不懈的努力,創(chuàng)新互聯(lián)建站贏得了業(yè)內(nèi)的良好聲譽,這一切,也不斷的激勵著我們更好的服務(wù)客戶。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計,微信小程序,網(wǎng)站開發(fā),技術(shù)開發(fā)實力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫的技術(shù)開發(fā)工程師。
為了理解Avro,首先要理解序列化。序列化是在內(nèi)存里表述數(shù)據(jù)的一種方式,它是一連串的字節(jié),可以保存數(shù)據(jù)到磁盤或通過網(wǎng)絡(luò)發(fā)送出去,反序列化允許你把數(shù)據(jù)讀回到內(nèi)存。
舉個實際的例子,我們?nèi)绾涡蛄谢瘮?shù)字108125150?可以指定一些具體類型:(1)當(dāng)存儲為Java int類型時是4 bytes;(2)當(dāng)存儲為Java string類型時是9 bytes.
很多編程語言和庫都支持序列化,比如Java里的Serializable或Python的pickle。但是向后兼容和交叉語言支持對我們來講可能是一項挑戰(zhàn),而Avro就是開發(fā)出來應(yīng)對這些挑戰(zhàn)。
什么是Apache Avro
Avro數(shù)據(jù)文件格式只是Avro項目的一部分,它是高效的數(shù)據(jù)序列化框架,是由Doug Cutting創(chuàng)立的Apache頂級項目,在Hadoop和它的生態(tài)系統(tǒng)得到廣泛的支持。最大的特點就是在不犧牲性能的前提下提供兼容性,可在Java、C、C++、C#、Python、PHP和其他語言中讀寫數(shù)據(jù)。Avro也支持RemoteProcedure Calls(RPC),可以用于構(gòu)建定制網(wǎng)絡(luò)協(xié)議,而且Flume使用它進(jìn)行內(nèi)部通信。
AvroSchemas支持的類型
(1)簡單類型:
(2)復(fù)雜類型
這里record類型最重要,其他類型主要用來定義record的字段。
基本schema示例
這里我們先引用一段SQL CREATE TABLE語句
然后我們使用Avro schema來表達(dá)同樣的語句
在Schema里指定默認(rèn)值
Avro支持在schema里設(shè)置默認(rèn)值,當(dāng)沒有明確指定字段值的時候使用,和SQL相似
AvroSchemas和Null值
(1)當(dāng)序列化數(shù)據(jù)時Avro檢查null值
(2)當(dāng)在schema里明確指定時才可以使用Null值
復(fù)雜類型的schema示例
示例:帶enum和string array類型的record
注釋schema
給schema加注釋是一種避免歧義的好的做法
(1)所有的類型都支持加上可選的doc屬性
Avro容器格式
Avro定義了一種容器文件格式來存儲Avro記錄,也稱為“Avro數(shù)據(jù)文件格式”。和Hadoop SequenceFile格式相似,支持交叉語言的數(shù)據(jù)讀寫。它也支持塊記錄的壓縮,壓縮后數(shù)據(jù)可分片。另外這種格式是自描述的,每個文件包含一份schema的拷貝,用于寫數(shù)據(jù),并且所有記錄在文件中必須使用相同的schema。
使用Avro工具檢查Avro數(shù)據(jù)文件
Avro數(shù)據(jù)文件是一種高效存儲數(shù)據(jù)的方式,然而,二進(jìn)制格式使得debug很不方便。使用avro-tools命令來操作二進(jìn)制文件,可以讀取Avro文件里的schema或數(shù)據(jù)。
挖掘了一番,你有沒有挖掘到寶貝呢?如果找到了,這絕對是你的私人財產(chǎn),如果沒有,也沒有關(guān)系,因為還有猛料等你來!盛大網(wǎng)絡(luò)大咖親自坐鎮(zhèn),分享大數(shù)據(jù)干貨,一起來吧!關(guān)注微信公眾號“大數(shù)據(jù)cn”,一起來交流。
分享名稱:精彩解密大數(shù)據(jù)之精絕古城
鏈接URL:http://aaarwkj.com/article16/jejcgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、企業(yè)網(wǎng)站制作、微信公眾號、軟件開發(fā)、外貿(mào)網(wǎng)站建設(shè)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)