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