首頁>技術>

在大資料相關行業的面試中,經常會被問到這個問題: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可以用來做歷史資料的固化和快速查詢。當然,他們是可以配合使用的。

12
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 程式語言、資料庫...為什麼我們IT水平跟美國的差距這麼大?