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