精彩解密大數(shù)據(jù)之精絕古城

     Avro schema作為大數(shù)據(jù)一個項目,它可以算得上精品中的上等品,讓學習或者想要學習大數(shù)據(jù)的人為之傾倒,不斷挖掘學習,那么它究竟有著怎樣的神秘面紗呢?我們一起來揭開!

我們注重客戶提出的每個要求,我們充分考慮每一個細節(jié),我們積極的做好成都網站設計、成都做網站服務,我們努力開拓更好的視野,通過不懈的努力,創(chuàng)新互聯(lián)建站贏得了業(yè)內的良好聲譽,這一切,也不斷的激勵著我們更好的服務客戶。 主要業(yè)務:網站建設,網站制作,網站設計,微信小程序,網站開發(fā),技術開發(fā)實力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫的技術開發(fā)工程師。

為了理解Avro,首先要理解序列化。序列化是在內存里表述數(shù)據(jù)的一種方式,它是一連串的字節(jié),可以保存數(shù)據(jù)到磁盤或通過網絡發(fā)送出去,反序列化允許你把數(shù)據(jù)讀回到內存。

舉個實際的例子,我們如何序列化數(shù)字108125150?可以指定一些具體類型:(1)當存儲為Java int類型時是4 bytes;(2)當存儲為Java string類型時是9 bytes.

很多編程語言和庫都支持序列化,比如Java里的Serializable或Python的pickle。但是向后兼容和交叉語言支持對我們來講可能是一項挑戰(zhàn),而Avro就是開發(fā)出來應對這些挑戰(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),可以用于構建定制網絡協(xié)議,而且Flume使用它進行內部通信。

  • AvroSchemas支持的類型

(1)簡單類型:

精彩解密大數(shù)據(jù)之精絕古城

(2)復雜類型

精彩解密大數(shù)據(jù)之精絕古城

這里record類型最重要,其他類型主要用來定義record的字段。

  • 基本schema示例

這里我們先引用一段SQL CREATE TABLE語句

精彩解密大數(shù)據(jù)之精絕古城

然后我們使用Avro schema來表達同樣的語句

精彩解密大數(shù)據(jù)之精絕古城

  • 在Schema里指定默認值

Avro支持在schema里設置默認值,當沒有明確指定字段值的時候使用,和SQL相似

精彩解密大數(shù)據(jù)之精絕古城

  • AvroSchemas和Null值

(1)當序列化數(shù)據(jù)時Avro檢查null值

(2)當在schema里明確指定時才可以使用Null值

精彩解密大數(shù)據(jù)之精絕古城

  • 復雜類型的schema示例

示例:帶enum和string array類型的record

精彩解密大數(shù)據(jù)之精絕古城

  • 注釋schema

給schema加注釋是一種避免歧義的好的做法

(1)所有的類型都支持加上可選的doc屬性

精彩解密大數(shù)據(jù)之精絕古城

  • 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ù)的方式,然而,二進制格式使得debug很不方便。使用avro-tools命令來操作二進制文件,可以讀取Avro文件里的schema或數(shù)據(jù)。

精彩解密大數(shù)據(jù)之精絕古城

挖掘了一番,你有沒有挖掘到寶貝呢?如果找到了,這絕對是你的私人財產,如果沒有,也沒有關系,因為還有猛料等你來!盛大網絡大咖親自坐鎮(zhèn),分享大數(shù)據(jù)干貨,一起來吧!關注微信公眾號“大數(shù)據(jù)cn”,一起來交流。

分享名稱:精彩解密大數(shù)據(jù)之精絕古城
鏈接URL:http://muchs.cn/article16/jejcgg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供微信小程序、企業(yè)網站制作、微信公眾號軟件開發(fā)、外貿網站建設商城網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網站建設