這篇文章主要介紹了Google的主力數(shù)據(jù)存儲(chǔ)系統(tǒng)Bigtable,Bigtable可以被看作一個(gè)非關(guān)系型數(shù)據(jù)庫(kù)式的分布存儲(chǔ)技術(shù),需要的朋友可以參考下
BigTable是Google設(shè)計(jì)的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),用來(lái)處理海量的數(shù)據(jù)的一種非關(guān)系型的數(shù)據(jù)庫(kù)。
BigTable是非關(guān)系型數(shù)據(jù)庫(kù),是一個(gè)稀疏的、分布式的、持久化存儲(chǔ)的多維度排序Map。Bigtable的設(shè)計(jì)目的是快速且可靠地處理PB級(jí)別的數(shù)據(jù),并且能夠部署到上千臺(tái)機(jī)器上。
Bigtable已經(jīng)實(shí)現(xiàn)了以下的幾個(gè)目標(biāo):適用性廣泛、可擴(kuò)展、高性能和高可用性。
Bigtable已經(jīng)在超過(guò)60個(gè)Google的產(chǎn)品和項(xiàng)目上得到了應(yīng)用,包括 Google Analytics、GoogleFinance、Orkut、Personalized Search、Writely和GoogleEarth。這些產(chǎn)品對(duì)Bigtable提出了迥異的需求,有的需要高吞吐量的批處理,有的則需要及時(shí)響應(yīng)數(shù)據(jù)給最終用戶。它們使用的Bigtable集群的配置也有很大的差異,有的集群只有幾臺(tái)服務(wù)器,而有的則需要上千臺(tái)服務(wù)器、存儲(chǔ)幾百TB的數(shù)據(jù)。
在很多方面,Bigtable和數(shù)據(jù)庫(kù)很類似:它使用了很多數(shù)據(jù)庫(kù)的實(shí)現(xiàn)策略。并行數(shù)據(jù)庫(kù)和內(nèi)存數(shù)據(jù)庫(kù)已經(jīng)具備可擴(kuò)展性和高性能,但是Bigtable提供了一個(gè)和這些系統(tǒng)完全不同的接口。
Bigtable不支持完整的關(guān)系數(shù)據(jù)模型;與之相反,Bigtable為客戶提供了簡(jiǎn)單的數(shù)據(jù)模型,利用這個(gè)模型,客戶可以動(dòng)態(tài)控制數(shù)據(jù)的分布和格式(alex注:也就是對(duì)BigTable而言,數(shù)據(jù)是沒(méi)有格式的,用數(shù)據(jù)庫(kù)領(lǐng)域的術(shù)語(yǔ)說(shuō),就是數(shù)據(jù)沒(méi)有Schema,用戶自己去定義Schema),用戶也可以自己推測(cè)(alex注:reasonabout)底層存儲(chǔ)數(shù)據(jù)的位置相關(guān)性(alex注:位置相關(guān)性可以這樣理解,比如樹(shù)狀結(jié)構(gòu),具有相同前綴的數(shù)據(jù)的存放位置接近。在讀取的時(shí)候,可以把這些數(shù)據(jù)一次讀取出來(lái))。數(shù)據(jù)的下標(biāo)是行和列的名字,名字可以是任意的字符串。
Bigtable將存儲(chǔ)的數(shù)據(jù)都視為字符串,但是Bigtable本身不去解析這些字符串,客戶程序通常會(huì)在把各種結(jié)構(gòu)化或者半結(jié)構(gòu)化的數(shù)據(jù)串行化到這些字符串里。通過(guò)仔細(xì)選擇數(shù)據(jù)的模式,客戶可以控制數(shù)據(jù)的位置相關(guān)性。最后,可以通過(guò)BigTable的模式參數(shù)來(lái)控制數(shù)據(jù)是存放在內(nèi)存中還是硬盤上。
特點(diǎn):
1、適合大規(guī)模海量數(shù)據(jù),PB級(jí)數(shù)據(jù);
2、分布式、并發(fā)數(shù)據(jù)處理,效率極高;
3、易于擴(kuò)展,支持動(dòng)態(tài)伸縮;
4、適用于廉價(jià)設(shè)備;
5、適合于讀操作,不適合寫操作。
6、不適用于傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù);
應(yīng)用:
BigTable為谷歌旗下的搜索、地圖、財(cái)經(jīng)、打印、以及社交網(wǎng)站Orkut、視頻共享網(wǎng)站YouTube和博客網(wǎng)站Blogger等業(yè)務(wù)提供技術(shù)支持。
Cloud Bigtable
此外,Google也為用戶提供Bigtable云數(shù)據(jù)庫(kù)——他們的自有數(shù)據(jù)庫(kù),在其搜索、Gmail、地圖或YouTube等服務(wù)中使用已超過(guò)十年時(shí)間。Bigtable不像Google的其它產(chǎn)品一樣開(kāi)源,因此這一新的云服務(wù)只能通過(guò)開(kāi)源接口Apache HBase 1.0.1 API訪問(wèn)。
谷歌承諾,Cloud Bigtable的延遲時(shí)間將限制在幾毫秒(個(gè)位數(shù)),每美元性能是HBase、Cassandra等類似數(shù)據(jù)庫(kù)的兩倍。由于Cloud Bigtable支持HBase的應(yīng)用程序接口,所以它能夠與分布式系統(tǒng)基礎(chǔ)架構(gòu)Hadoop生態(tài)系統(tǒng)中的現(xiàn)有應(yīng)用相整合,但也支持谷歌的云數(shù)據(jù)分析工具Cloud Dataflow。
Bigtable云的特性如下:
1.可擴(kuò)展至成百上千個(gè)PB
2.高可用性
3.可復(fù)制
4.數(shù)據(jù)以加密形式傳輸和存儲(chǔ)
5.全托管
6.與Hadoop生態(tài)系統(tǒng)集成
適用于金融、物聯(lián)網(wǎng)、時(shí)序和市場(chǎng)等領(lǐng)域的數(shù)據(jù)
Google稱Bigtable憑借“個(gè)位數(shù)毫秒級(jí)延遲以及兩倍于其它非托管NoSQL產(chǎn)品的性價(jià)比”提供“無(wú)與倫比的性能”。數(shù)據(jù)如下圖所示,該圖由Google發(fā)布,目前還沒(méi)有被某個(gè)獨(dú)立衡量基準(zhǔn)驗(yàn)證核實(shí)過(guò)。