精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

Cassandra與HBase展開大數(shù)據(jù)決戰(zhàn)

責(zé)任編輯:王李通

2014-04-11 09:01:52

摘自:網(wǎng)界

眾多基于Bigtable技術(shù)的開源項目正在通過不同的方式實現(xiàn)高擴(kuò)展性、高靈活性、分布式及寬列數(shù)據(jù)存儲等功能,Cassandra和HBase就是其中的代表。兩者都使用相似的寫入路徑,即首先將寫入操作記錄在日志文件中以確保持久性。

眾多基于Bigtable技術(shù)的開源項目正在通過不同的方式實現(xiàn)高擴(kuò)展性、高靈活性、分布式及寬列數(shù)據(jù)存儲等功能,Cassandra和HBase就是其中的代表。

在大數(shù)據(jù)[注]這一全新的領(lǐng)域里,Bigtable數(shù)據(jù)庫技術(shù)非常值得我們關(guān)注,因為這一技術(shù)是由谷歌的工程發(fā)明的,而谷歌是一家公認(rèn)的非常擅長管理海量數(shù)據(jù)的公司。如果你對此非常了解,那么你一家知道也熟悉Cassandra和HBase這兩個Apache數(shù)據(jù)庫項目。

谷歌在2006年的一份研究報告中首次對Bigtable進(jìn)行了闡述。有意思的是,這份報告當(dāng)時并沒有將Bigtable作為數(shù)據(jù)庫技術(shù),而是將其作為一種“稀疏的分布式多維度”映射技術(shù)以存儲拍字節(jié)級數(shù)據(jù),并在商用硬件上運(yùn)行它們。行先是以一種非常獨特的方式被索引,隨后Bigtable利用行鍵對數(shù)據(jù)進(jìn)行分割,將它們分布到集群中。列可以被迅速地定義在行中,讓Bigtable適用于大多數(shù)的非模式環(huán)境。

Cassandra和HBase都在很大程度上借鑒了早期Bigtable的定義。實際上,Cassandra起源于Bigtable和亞馬遜的Dynamo技術(shù),HBase將自身定位為“開源Bigtable工具”。就其本身而論,這兩個項目既有許多相同的特點,同時又有許多重大區(qū)別。

同為大數(shù)據(jù)而生

Cassandra與HBase都是NoSQL數(shù)據(jù)庫。總體上看,這意味著用戶無法使用SQL數(shù)據(jù)庫。不過,Cassandra使用的是CQL(Cassandra 查詢語言),其語法有明顯模仿SQL的痕跡。

兩者都被設(shè)計用于管理非常大的數(shù)據(jù)集。HBase文件聲稱一個HBase數(shù)據(jù)庫可以擁有數(shù)億個,甚至是數(shù)十億個行。此外,用戶還被建議繼續(xù)使用關(guān)系型數(shù)據(jù)庫。

兩者都是分布式數(shù)據(jù)庫,不僅僅是在數(shù)據(jù)的存儲方式上,在數(shù)據(jù)訪問方式上亦是如此。客戶端可以與集群中的任意節(jié)點相連,并訪問任意的數(shù)據(jù)。

兩者都宣稱擁有近似于線型的擴(kuò)展能力。想要管理兩倍規(guī)模的數(shù)據(jù)嗎?用戶只需將集群中的節(jié)點擴(kuò)展兩倍即可。

兩者都是通過復(fù)制來防止集群節(jié)點故障而導(dǎo)致出現(xiàn)數(shù)據(jù)損失。被寫入數(shù)據(jù)庫的行主要由單個集群節(jié)點負(fù)責(zé)(行至節(jié)點映射取決于用戶所使用的分區(qū)模式)。數(shù)據(jù)會被鏡像到稱之為冗余節(jié)點的其他集群成員當(dāng)中(用戶可配置的復(fù)制因子會顯示數(shù)量)。如果主要節(jié)點出現(xiàn)了故障,那么數(shù)據(jù)仍然可以從另外的冗余節(jié)點中被讀取。

兩者都被稱之為列式數(shù)據(jù)庫。由于它們的名字聽起來像是關(guān)系型數(shù)據(jù)庫,因此用戶在接觸中需要在思想上進(jìn)行調(diào)整,這導(dǎo)致用戶對它們的認(rèn)知會出現(xiàn)混淆。最容易出現(xiàn)混淆的地方是,數(shù)據(jù)在表面上最初是由行進(jìn)行排列的,表的主要鍵是行鍵。但是與關(guān)系型數(shù)據(jù)庫不同,在列式數(shù)據(jù)庫中,沒兩個行需要相同的列。正如上面所說的那樣,在表被創(chuàng)建后,用戶能夠快速在行中加入列。實際上,你能夠向一行中增加許多列。雖然最高上限值難以被準(zhǔn)確地計算出來,但是用戶幾乎不可能達(dá)到這樣的上限,即便他們加入大量列的情況下也是如此。

除了這些源于Bigtable定義的特點外,Cassandra和HBase還有一些其他的相似之處。

首先,兩者都使用相似的寫入路徑,即首先將寫入操作記錄在日志文件中以確保持久性。即便出現(xiàn)寫入失敗的提示,保存在日志當(dāng)中的操作記錄可以被重新開始。隨后,數(shù)據(jù)被寫入內(nèi)存緩存中。最后,數(shù)據(jù)被通過大量的一系列寫入操作寫入到磁盤中(實際上是將內(nèi)存緩存的副本拷貝至磁盤中)。Cassandra和HBase所使用的內(nèi)存和磁盤數(shù)據(jù)結(jié)構(gòu)在某種程度上都是日志結(jié)構(gòu)的合并樹。Cassandra的磁盤組件是SSTable,HBase中磁盤組件的是HFile。

兩者提供JRuby語言的命令行外殼。兩者都通過Java語言被大量寫入,這是訪問它們的主要編程語言,盡管在許多其他的編程語言中都有適合兩者的客戶端包。

當(dāng)然,Cassandra 和 HBase都是Apache軟件基金會管理的開源項目,兩者都可以通過Apache License version 2.0許可證免費(fèi)獲取。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 库伦旗| 蒲城县| 辽宁省| 高陵县| 叶城县| 电白县| 米脂县| 湄潭县| 青阳县| 江永县| 朝阳区| 长白| 江阴市| 伊川县| 罗定市| 商都县| 定襄县| 广州市| 彝良县| 大新县| 双辽市| 庆城县| 丹江口市| 乐清市| 古蔺县| 静乐县| 集贤县| 高陵县| 肇东市| 仙游县| 五河县| 长兴县| 霞浦县| 鲜城| 望都县| 周至县| 遵化市| 恩施市| 英吉沙县| 衡东县| 乌什县|