數據庫與hadoop與分布式文件系統的區別和聯系


轉載一篇關系數據庫與Hadoop的關系的文章

1. 用向外擴展代替向上擴展 
擴展商用關系型數據庫的代價是非常昂貴的。它們的設計更容易向上擴展。要運行一個更大
的數據庫,就需要買一個更大的機器。事實上,往往會看到服務器廠商在市場上將其昂貴的高端機
標稱為“數據庫級的服務器”。不過有時可能需要處理更大的數據集,卻找不到一個足夠大的機器。
更重要的是,高端的機器對於許多應用並不經濟。例如,性能4倍於標准PC的機器,其成本將大大
超過將同樣的4台PC放在一個集群中。Hadoop的設計就是為了能夠在商用PC集群上實現向外擴展
的架構。添加更多的資源,對於Hadoop集群就是增加更多的機器。一個Hadoop集群的標配是十至
數百台計算機。事實上,如果不是為了開發目的,沒有理由在單個服務器上運行Hadoop。 
2. 用鍵/值對代替關系表 

關系數據庫的一個基本原則是讓數據按某種模式存放在具有關系型數據結構的表中。雖然關

系模型具有大量形式化的屬性,但是許多當前的應用所處理的數據類型並不能很好地適合這個模

型。文本、圖片和XML文件是最典型的例子。此外,大型數據集往往是非結構化或半結構化的。
Hadoop使用鍵/值對作為基本數據單元,可足夠靈活地處理較少結構化的數據類型。在hadoop中,
數據的來源可以有任何形式,但最終會轉化為鍵/值對以供處理。 
3. 用函數式編程(MapReduce)代替聲明式查詢(SQL ) 
SQL 從根本上說是一個高級聲明式語言。查詢數據的手段是,聲明想要的查詢結果並讓數據庫引擎

判定如何獲取數據。在MapReduce中,實際的數據處理步驟是由你指定的,它很類似於SQL
引擎的一個執行計划。SQL 使用查詢語句,而MapReduce則使用腳本和代碼。利用MapReduce可
以用比SQL 查詢更為一般化的數據處理方式。例如,你可以建立復雜的數據統計模型,或者改變
圖像數據的格式。而SQL 就不能很好地適應這些任務。 

4.

分布式文件系統(dfs)和分布式數據庫都支持存入,取出和刪除。但是分布式文件系統比較暴力,
可以當做key/value的存取。分布式數據庫涉及精煉的數據,傳統的分布式關系型數據庫會定義數據元
組的schema,存入取出刪除的粒度較小。
分布式文件系統現在比較出名的有GFS(未開源),HDFS(Hadoop distributed file system)。
分布式數據庫現在出名的有Hbase,oceanbase。其中Hbase是基於HDFS,而oceanbase是自己內部
實現的分布式文件系統,在此也可以說分布式數據庫以分布式文件系統做基礎存儲。


 

轉自csdn  yuanxiaopang ,應該也是轉載的,來自圖書的前言什么的,文件系統轉載自知乎 ,作者egral

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM