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