在當(dāng)今社會各行各業(yè)都離不開大數(shù)據(jù)了,可想而知大數(shù)據(jù)的重要性。但是對我們來講大數(shù)據(jù)這個詞只是簡單的一個商業(yè)用語,和商業(yè)智能一樣我們無法具象的描述它,科學(xué)定義大數(shù)據(jù)其實是指無法在一定時間范圍內(nèi)用常規(guī)軟件工具進行捕捉、管理和處理的數(shù)據(jù)集合,大數(shù)據(jù)的四大元素有Redis、傳統(tǒng)數(shù)據(jù)庫、HBase、Hive。現(xiàn)實中,我們在大數(shù)據(jù)相關(guān)行業(yè)的面試中也經(jīng)常會被問到這個問題,今天我們來簡單了解一下大數(shù)據(jù)的四大元素和區(qū)別。
大數(shù)據(jù)的四大元素Redis、傳統(tǒng)數(shù)據(jù)庫、HBase、Hive的區(qū)別。
1、Redis:分布式緩存以內(nèi)存為基礎(chǔ),強調(diào)緩存,支持數(shù)據(jù)持久化、事務(wù)操作、NoSQL型鍵/值數(shù)據(jù)庫,支持列表、集合等更豐富的類型。
2、HBase:HBase是基于HDFS的數(shù)據(jù)庫系統(tǒng),提供高可靠性的列存儲和實時讀寫。它介于Nosql和關(guān)系數(shù)據(jù)庫之間,只通過主鍵和主鍵的范圍來檢索數(shù)據(jù),只支持單行事務(wù)。主要用于存儲非結(jié)構(gòu)化和半結(jié)構(gòu)化的松散數(shù)據(jù)。
3、關(guān)系數(shù)據(jù)庫:有mysql,Oracle,SqlServer等等。支持事務(wù)操作,屬于寫模式,即寫數(shù)據(jù)時檢查。是數(shù)據(jù)庫對于具體業(yè)務(wù)的日常在線操作,通常涉及到幾條記錄的查詢和修改。支持完善的sql函數(shù),可以對少量數(shù)據(jù)進行統(tǒng)計分析。
4、Hive:Hive是基于Hadoop的數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化數(shù)據(jù)文件映射到數(shù)據(jù)庫表。并提供一個簡單的sql函數(shù),可以將sql轉(zhuǎn)換成mr任務(wù)運行。由于sql學(xué)習(xí)成本低,沒有必要開發(fā)非常適合數(shù)據(jù)倉庫統(tǒng)計分析的mr應(yīng)用程序。
大數(shù)據(jù)的四大元素區(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更適合緩存。
當(dāng)然除了es和solr,還有很多類似的存儲服務(wù)。需要先回答兩種存儲服務(wù)的概念,然后根據(jù)不同的核心功能和特點回答兩者的區(qū)別。組合在項目中的運用在哪種場景下,使用哪種技術(shù)。傳統(tǒng)數(shù)據(jù)庫用于實時業(yè)務(wù)事務(wù)處理,Redis用于高性能要求的實時緩存,Hive可用于離線統(tǒng)計查詢,HBase可用于歷史數(shù)據(jù)固化和快速查詢,當(dāng)然也可以一起用。
綜上所述,大家了解了大數(shù)據(jù)的四大元素的區(qū)別,如果您想了解更多關(guān)于大數(shù)據(jù)的的相關(guān)信息,請您繼續(xù)關(guān)注中培偉業(yè)。