【大數(shù)據(jù)基礎(chǔ)Ep5】《Hadoop權(quán)威指南》讀書筆記P8:Hadoop相較于RDBMS優(yōu)勢

(合計1286字,用時40min——)
第1章 初識Hadoop
1.5?相較于其他系統(tǒng)的優(yōu)勢
1.5.1 關(guān)系型數(shù)據(jù)庫管理系統(tǒng)
原理:
尋址時間的提升遠遠不敵于傳輸速率的提升;
尋址是將磁頭移動到特定硬盤位置進行讀/寫操作的過程;
它是導(dǎo)致硬盤操作延遲的主要原因,而傳輸速率取決于硬盤的帶寬;
如果數(shù)據(jù)訪問模式中包含大量的硬盤尋址,那么讀取大量數(shù)據(jù)集就必然會花更長的時間(相較于流數(shù)據(jù)讀取模式,流讀取主要取決于傳輸速率);
如果數(shù)據(jù)庫系統(tǒng)只更新一小部分記錄,那么傳統(tǒng)的B樹(關(guān)系型數(shù)據(jù)庫中使用的一種數(shù)據(jù)結(jié)構(gòu),受限于尋址的速率)就更有優(yōu)勢;
數(shù)據(jù)庫系統(tǒng)如果有大量數(shù)據(jù)更新時,B樹的效率就明顯落后于MapReduce,因為需要使用“排序/合并”(sort/merge)來重建數(shù)據(jù)庫。
適用范圍:
在許多情況下,可以將MapReduce是為關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的補充;
MapReduce比較適合解決需要以批處理方式分析整個數(shù)據(jù)集的問題,尤其是一些特定目的的分析;
RDBMS適用于索引后數(shù)據(jù)集的點查詢(point query)和更新,建立索引的數(shù)據(jù)庫系統(tǒng)能夠提供對小規(guī)模數(shù)據(jù)的低延遲數(shù)據(jù)檢索和快速更新;
MapReduce適合一次寫入、多次讀取數(shù)據(jù)的應(yīng)用,關(guān)系型數(shù)據(jù)庫則更適合持續(xù)更新的數(shù)據(jù)集。
關(guān)系型數(shù)據(jù)庫和Hadoop系統(tǒng)之間的關(guān)系:
關(guān)系型數(shù)據(jù)庫已經(jīng)開始吸收Hadoop的一些思想;
諸如Hive這樣的Hadoop系統(tǒng)不僅變得更具交互性(通過從Hadoop中脫離出來),而且增加了索引和事務(wù)這樣的特性,使其看上去更像傳統(tǒng)的關(guān)系型數(shù)據(jù)庫。
概念:
結(jié)構(gòu)化數(shù)據(jù)(structured data):是具有既定格式的實體化數(shù)據(jù),如XML文檔或滿足特定預(yù)定義格式的數(shù)據(jù)庫表——這是RDBMS包括的內(nèi)容;
半結(jié)構(gòu)化數(shù)據(jù)(semi-structured data):比較松散,雖然可能有格式,但經(jīng)常被忽略,所以它只能作為數(shù)據(jù)結(jié)構(gòu)的一般性指導(dǎo)——例如電子表格,它在結(jié)構(gòu)上是由單元格組成的網(wǎng)格,但是每個單元格內(nèi)可以保存任何形式的數(shù)據(jù);
非結(jié)構(gòu)化數(shù)據(jù)(unstructured data):沒有什么特別的內(nèi)部結(jié)構(gòu)——例如純文本或圖像數(shù)據(jù)。
結(jié)構(gòu)化程度:
Hadoop對非結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)非常有效,因為它是在處理數(shù)據(jù)時才對數(shù)據(jù)進行解釋(即所謂的“讀時模式”);
—這種模式在提供靈活性的同時避免了RDBMS數(shù)據(jù)加載階段帶來的高開銷,因為在Hadoop中僅僅是一個文件拷貝操作。
規(guī)范:
關(guān)系型數(shù)據(jù)庫往往是規(guī)范的(normalized),以保持其數(shù)據(jù)的完整性且不含冗余;
規(guī)范給Hadoop處理帶來了問題,因為它使記錄讀取稱為非本地操作,而Hadoop的核心假設(shè)之一偏偏就是可以進行(高速的)流讀/寫操作。
其他區(qū)別:
Hadoop也能夠做連接(join)操作,只不過這種操作沒有在關(guān)系型數(shù)據(jù)庫中用的多;
MapReduce以及Hadoop中其他的處理的處理模型是可以隨著數(shù)據(jù)規(guī)模線性伸縮的——對數(shù)據(jù)分區(qū)后,函數(shù)原語(如map和reduce)能夠在各個分區(qū)上并行工作——
如果輸入的數(shù)據(jù)量是原來的兩倍,那么作業(yè)的運行時間也需要兩倍;
如果集群規(guī)模擴展為原來的兩倍,那么作業(yè)的運行速度卻仍然與原來一樣快;
SQL查詢一般不具備該特性。