Redis、傳統數據庫、HBase以及Hive的區別


在大數據相關行業的面試中,經常會被問到這個問題:Redis、傳統數據庫、HBase以及Hive的區別。

本文將針對這個面試問題,做以下分析:

1.問題分析

面試官考核的是你對不同數據存儲技術的理解和應用,概念和特性都需要回答。同時可以延伸到業務場景,考察面試者在項目實戰中不同服務如何區分配合使用。

2.核心問題回答

Redis

分布式緩存,基於內存,強調緩存,支持數據持久化,支持事務操作,NoSQL 類型的Key/vale數據庫,同時支持List、Set等更豐富的類型。

HBase

HBase是建立在HDFS之上,提供高可靠性的列存儲,實時讀寫的數據庫系統。它介於Nosql和關系型數據庫之間,僅通過主鍵和主鍵的range來檢索數據,僅支持單行事務。主要用來存儲非結構化和半結構化的松散數據。

關系數據庫

有mysql、Oracle、SqlServer等,支持事務性操作,屬於寫模式,即寫入數據時進行檢查。它是針對具體業務在數據庫聯機的日常操作,通常對少數記錄進行查詢、修改。支持完善的sql功能,可以對少量數據進行統計分析。

Hive

Hive是基於Hadoop的數據倉庫工具,可以將結構化數據文件映射為數據庫表。並提供簡單的sql功能,可以將sql轉化為mr任務運行。因為sql學習成本低,不必專門開發mr應用,十分適合數據倉庫的統計分析。

3.區別

這里可以分為兩大類:關系型數據和Hive都是支持SQL引擎的數據庫;Redis和Hbase都是NoSQL 類型的Key/vale數據庫,支持簡單的行列操作,不支持SQL引擎。

SQL類數據庫中,關系型數據庫更側重於事務性操作,屬於寫模式,支持的數據量較小,支持索引延遲低;而Hive更側重於查詢分析操作,屬於讀模式,不支持索引延遲高,支持的數據量大,為數據倉庫而設計。

K/V數據庫中,Redis的讀寫性能更高,通常是幾十微秒,而Hbase是幾毫秒;Redis不僅支持K/V操作,也支持List、Set等更豐富的類型;Redis因為存儲在內存中所以數據量較小,而Hbase的存儲遠遠超出內存的大小。HBase適合做大數據的持久存儲,而Redis比較適合做緩存。

4.問題擴展

類似的存儲服務特別多,除此之外還有es和solr等等。需要先答出兩種存儲服務的概念,再根據核心功能,特性的不同答出兩者區別。

5.結合項目中的使用

在哪種場景下,使用哪種技術。傳統數據庫用來進行實時業務的事務處理,Redis用來做性能要求很高的實時緩存,Hive可以用來進行離線統計查詢,HBase可以用來做歷史數據的固化和快速查詢。當然,他們是可以配合使用的。

 

showtooltip


免責聲明!

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



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