開源第一彈:什么是HBASE?
在數(shù)據研究人員的工具集上有著大量的工具可以使用,這對于大數(shù)據技術,既是一件好事也是一件壞事。
當我們談論從事大數(shù)據工作所使用的工具時,絕大部分討論的會是Hadoop,Apache基金會關于Map Reduce和分布式存儲系統(tǒng)的實現(xiàn)(HDFS是由Doug Cutting 閱讀相關論文后在其供職于Yahoo時(他目前在Cloudera)建立的。但大數(shù)據工具很少單獨工作,它是一個工具和數(shù)據庫,以幫助數(shù)據研究人員能夠更有效地分析他們的集合(或只是有利于加快速度)。
其中一項技術就是HBase。HBase的是一個非關系(NoSQL的)數(shù)據庫,是Google BigTable的Java實現(xiàn)。它是柱狀數(shù)據庫中的一種。相對于關系數(shù)據庫基于行存儲數(shù)據,HBASE基于列存儲。
不過這說起來容易,但其究竟是什么意思。讓我們從對谷歌關于BigTable的相關文檔的研究開始:
“Bigtable是一個具有稀疏性,分布性,持續(xù)性的多維有序映射。”
讓我們深入其中,看看到底是什么意思。
稀疏
直覺上認為數(shù)據庫稀疏的定義是數(shù)據庫具有較少的數(shù)據項,但實際上,稀疏的意義是指數(shù)據庫中數(shù)據項的數(shù)據列缺乏足夠的數(shù)據。對于HBASE,之所以說它具有稀疏性,是因為它可以在其實體中容納稀疏性數(shù)據。而對于關系表,將要求您填寫的所有字段(或大部分)(想想你的關系數(shù)據庫中客戶資料表)。柱狀數(shù)據庫可以為空或NULL且不影響數(shù)據庫的功能。此外,這也給你帶來了其他好處,使你能夠快速的添加其它你想捕捉的數(shù)據。在關系數(shù)據庫中,創(chuàng)建一個架構(FirstName,LastName,SS#,TelephoneNumber),并希望在創(chuàng)建時已經得到所有你需要捕獲的數(shù)據。NoSQL數(shù)據庫無需設計過于復雜的架構,允許您根據需要在不中斷業(yè)務正常流動時添加字段。
分布式和持久化
HBase的使用HDFS(Hadoop分布式文件系統(tǒng)),以實現(xiàn)在多個商用服務器分發(fā)數(shù)據。這是Hadoop和HBase能夠處理海量數(shù)據工作的基礎。它基于另一篇關于谷歌文件系統(tǒng)的文章(點擊閱讀),google文件系統(tǒng)是Doug Cutting 建立HDFS的基礎。我們將在另一篇文章中詳細討論HDFS和DFS。
多維排序Map
一個Map(有時被稱為關聯(lián)數(shù)組)其中存儲的鍵值索引不必是整數(shù),可以是任意的字符串。其實質是鍵值對集合,且要求鍵具有惟一性。其中鍵按照字典序排列。(需要注意的是:此處的字典序不是按字母順序排列,也不是按數(shù)字順序,而是按字符串的Unicode值進行排序)
你的得與失
使用HBase可以讓你對存儲在Hbase的數(shù)據進行預處理和后處理操作,并給予你更大的靈活性和快速處理數(shù)十億行數(shù)據的能力。不利的一面是,當您使用 HDFS的替代HBase,使用像Hive(類SQL數(shù)據檢索)那樣的工具會比在普通的HDFS慢4-5倍。此外,可以容納數(shù)據的***容量約為1 PB而不是HDFS中的30PB。
原文鏈接:www.searchdatabase.com.cn/showcontent_88365.htm