更新時間:2021-01-15 來源:黑馬程序員 瀏覽量:
(1)問題分析
面試官考核的是你對不同數(shù)據(jù)存儲技術(shù)的理解和應(yīng)用,概念和特性都需要回答。同時可以延伸到業(yè)務(wù)場景,考察面試者在項目實戰(zhàn)中不同服務(wù)如何區(qū)分配合使用。
(2)核心問題回答
Redis
分布式緩存,基于內(nèi)存,強調(diào)緩存,支持數(shù)據(jù)持久化,支持事務(wù)操作,NoSQL 類型的Key/vale數(shù)據(jù)庫,同時支持List、Set等更豐富的類型。
hbase
HBase是建立在HDFS之上,提供高可靠性的列存儲,實時讀寫的數(shù)據(jù)庫系統(tǒng)。它介于Nosql和關(guān)系型數(shù)據(jù)庫之間,僅通過主鍵和主鍵的range來檢索數(shù)據(jù),僅支持單行事務(wù)。主要用來存儲非結(jié)構(gòu)化和半結(jié)構(gòu)化的松散數(shù)據(jù)。
關(guān)系數(shù)據(jù)庫
有mysql、Oracle、SqlServer等,支持事務(wù)性操作,屬于寫模式,即寫入數(shù)據(jù)時進行檢查。它是針對具體業(yè)務(wù)在數(shù)據(jù)庫聯(lián)機的日常操作,通常對少數(shù)記錄進行查詢、修改。支持完善的sql功能,可以對少量數(shù)據(jù)進行統(tǒng)計分析。
hive
hive是基于Hadoop的數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化數(shù)據(jù)文件映射為數(shù)據(jù)庫表。并提供簡單的sql功能,可以將sql轉(zhuǎn)化為mr任務(wù)運行。因為sql學(xué)習(xí)成本低,不必專門開發(fā)mr應(yīng)用,十分適合數(shù)據(jù)倉庫的統(tǒng)計分析。
區(qū)別
這里可以分為兩大類:關(guān)系型數(shù)據(jù)和Hive都是支持SQL引擎的數(shù)據(jù)庫;Redis和Hbase都是NoSQL 類型的Key/vale數(shù)據(jù)庫,支持簡單的行列操作,不支持SQL引擎。
SQL類數(shù)據(jù)庫中,關(guān)系型數(shù)據(jù)庫更側(cè)重于事務(wù)性操作,屬于寫模式,支持的數(shù)據(jù)量較小,支持索引延遲低;而Hive更側(cè)重于查詢分析操作,屬于讀模式,不支持索引延遲高,支持的數(shù)據(jù)量大,為數(shù)據(jù)倉庫而設(shè)計。
K/V數(shù)據(jù)庫中,Redis的讀寫性能更高,通常是幾十微秒,而Hbase是幾毫秒;Redis不僅支持K/V操作,也支持List、Set等更豐富的類型;Redis因為存儲在內(nèi)存中所以數(shù)據(jù)量較小,而Hbase的存儲遠遠超出內(nèi)存的大小。HBase適合做大數(shù)據(jù)的持久存儲,而Redis比較適合做緩存。
(3)問題擴展
類似的存儲服務(wù)特別多,除此之外還有es和solr等等。需要先答出兩種存儲服務(wù)的概念,再根據(jù)核心功能,特性的不同答出兩者區(qū)別。
(4)結(jié)合項目中的使用
在哪種場景下,使用哪種技術(shù)。傳統(tǒng)數(shù)據(jù)庫用來進行實時業(yè)務(wù)的事務(wù)處理,Redis用來做性能要求很高的實時緩存,Hive可以用來進行離線統(tǒng)計查詢,HBase可以用來做歷史數(shù)據(jù)的固化和快速查詢。當然,他們是可以配合使用的。
猜你喜歡: