一個公司里面不同項目可能用到不同的數(shù)據(jù)源,有的存在MySQL里面,又的存在MongoDB里面,甚至還有些要做第三方數(shù)據(jù)。
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供蘇州企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、網(wǎng)站制作、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為蘇州眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。
但是現(xiàn)在又想把數(shù)據(jù)整合起來,進行 數(shù)據(jù)分析 。此時數(shù)據(jù)倉庫(Data Warehouse,DW)就派上用場了。它可以對多種業(yè)務(wù)數(shù)據(jù)進行篩選和整合,可以用于數(shù)據(jù)分析、數(shù)據(jù)挖掘、數(shù)據(jù)報表。
總的來說,數(shù)據(jù)倉庫是將多個數(shù)據(jù)源的數(shù)據(jù)按照一定的 主題 集成起來,因為之前的數(shù)據(jù)各不相同,所以需要 抽取、清洗、轉(zhuǎn)換 。
整合以后的數(shù)據(jù)不允許隨便修改,只能分析,還需要定期更新。
上面我們說過,數(shù)據(jù)倉庫接收的數(shù)據(jù)源是不同的,要做集成的話,需要 抽取、清洗、轉(zhuǎn)換 三個步驟,這就是 ETL (Extract-Transform-Load)
國內(nèi)最常用的是一款基于Hadoop的開源數(shù)據(jù)倉庫,名為 Hive ,它可以對存儲在 HDFS 的文件數(shù)據(jù)進行 查詢、分析 。
Hive對外可以提供HiveQL,這是類似于SQL語言的一種查詢語言。在查詢時可以將HiveQL語句轉(zhuǎn)換為 MapReduce 任務(wù),在Hadoop層進行執(zhí)行。
Hive的最大優(yōu)勢在于 免費 ,那其他知名的商業(yè)數(shù)據(jù)倉庫有那些呢?比如Oracle,DB2,其中業(yè)界老大是 Teradata
Teradata數(shù)據(jù)倉庫支持大規(guī)模并行處理平臺(MPP),可以高速處理海量實際上,性能遠(yuǎn)遠(yuǎn)高于Hive。對企業(yè)來說,只需要專注于業(yè)務(wù),節(jié)省管理技術(shù)方面的精力,實現(xiàn)ROI(投資回報率)最大化。
上面提到了Hive是最著名的開源數(shù)據(jù)倉庫,它是Hadoop生態(tài)中一個重要的組件。
Hadoop的生態(tài)中,HDFS解決了分布式存儲的問題,MapReduce解決了分布式計算的問題,而HBASE則提供了一種NoSQL的存儲方法。
但是如果需要的HDFS上的文件或者HBASE的表進行查詢,需要自定義MapReduce方法。那么Hive其實就是在HDFS上面的一個中間層,它可以讓業(yè)務(wù)人員直接使用SQL進行查詢。
所以Hive是用進行數(shù)據(jù)提取轉(zhuǎn)換加載的,而且它可以把SQL轉(zhuǎn)換為MapReduce任務(wù),而Hive的表就是HDFS的目錄或者文件。
上圖為Hive的體系結(jié)構(gòu)
Hive主要包含以下幾種數(shù)據(jù)模型:
本文為 什么是數(shù)據(jù)倉庫? 的筆記
1,Cassandra:
Cassandra從安裝配置,到使用,負(fù)載平衡機制等等,無疑是這些新興的NoSQL中最方便使用的一個(個人使用體驗觀點)
但從近期的消息來看由于出現(xiàn)過幾次較為嚴(yán)重的數(shù)據(jù)庫停止服務(wù)事件,Cassandra的創(chuàng)始人Facebook,及Twitter開始漸漸棄用
Cassandra,只把Cassandra用在非核心模塊上,不地Digg仍在使用,看來我們要謹(jǐn)慎地對待它。2008年Facebook已讓
Cassandra開源到Apache.
2.MongoDB:
它的風(fēng)格可以說,在當(dāng)今WebAPI流行的時代,它更易于被人使用,BJSON操作風(fēng)格,自動數(shù)據(jù)平衡機制(當(dāng)然要當(dāng)心存貯碎片問題),相對
MySQL等SQL數(shù)據(jù)庫有優(yōu)秀考慮全面的,分布式方案,自動M/S主從讀寫切換。對于數(shù)據(jù)集群來說,可以說相當(dāng)完美的Sharding等自動化支持。至
今聽說過的最嚴(yán)重的事件就是FourSquare的11小時數(shù)據(jù)庫宕機事件。相對來說還能接受:),它是使用C++/Boost編寫,效率性能的確不錯。
3.Redis:
它就是一個高效的內(nèi)存數(shù)據(jù)庫,用它來持久化數(shù)據(jù)存貯,那是扯淡,如果真拿它來與別的NoSQL一樣使用(考慮讀寫一致性或者寫安全)那它馬上慢下
來:)不過他提供了比Memcached更多的操作數(shù)據(jù)類型,倒可以完全用它來做為一個高效易用的緩存,Benchmark據(jù)說優(yōu)于memcached.
我用的數(shù)據(jù)規(guī)模沒有這么大,不敢妄加評論。
4.HBase:
概念上也相對完美,有Hive開源工具支持,使HBase,可以相對于其它NoSQL數(shù)據(jù)庫更易于使用,基于HDFS分布文件系統(tǒng),使HBASE天
生就有對海量分布集群很好的支持。又因為與Hadoop相伴而生,所以一個系統(tǒng)想使用數(shù)據(jù)分析,智能處理,海量邏輯執(zhí)行,完全可以選擇Hadoop +
HBase云計算方案。
MongoDB也支持js的Map/Reducer所以可以試著整合一下MongoDB進云計算方案中。
當(dāng)我使有MySQL +
NoSQL方案時,我會選擇MongoDB,不僅是因為他的出色的海量分布式方案的支持,也不是因為經(jīng)的Map/Reducer分布式計算的支持。而是因
為還沒聽說過它有過重大的失敗案例,相對較完美的文檔(還有中文手冊喲)還有JSON分格支持,在當(dāng)下WebAPI流行的時代,不僅是從個人喜愛角度,也
是從工程管理角度,開發(fā)人員更Love it,呵呵。
大數(shù)據(jù)技術(shù)的體系龐大且復(fù)雜,基礎(chǔ)的技術(shù)包含數(shù)據(jù)的采集、數(shù)據(jù)預(yù)處理、分布式存儲、數(shù)據(jù)庫、數(shù)據(jù)倉庫、機器學(xué)習(xí)、并行計算、可視化等。
1、數(shù)據(jù)采集與預(yù)處理:FlumeNG實時日志收集系統(tǒng),支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);Zookeeper是一個分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),提供數(shù)據(jù)同步服務(wù)。
2、數(shù)據(jù)存儲:Hadoop作為一個開源的框架,專為離線和大規(guī)模數(shù)據(jù)分析而設(shè)計,HDFS作為其核心的存儲引擎,已被廣泛用于數(shù)據(jù)存儲。HBase,是一個分布式的、面向列的開源數(shù)據(jù)庫,可以認(rèn)為是hdfs的封裝,本質(zhì)是數(shù)據(jù)存儲、NoSQL數(shù)據(jù)庫。
3、數(shù)據(jù)清洗:MapReduce作為Hadoop的查詢引擎,用于大規(guī)模數(shù)據(jù)集的并行計算。
4、數(shù)據(jù)查詢分析:Hive的核心工作就是把SQL語句翻譯成MR程序,可以將結(jié)構(gòu)化的數(shù)據(jù)映射為一張數(shù)據(jù)庫表,并提供HQL(HiveSQL)查詢功能。Spark啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢外,它還可以優(yōu)化迭代工作負(fù)載。
5、數(shù)據(jù)可視化:對接一些BI平臺,將分析得到的數(shù)據(jù)進行可視化,用于指導(dǎo)決策服務(wù)。
hbase和hive的主要區(qū)別是:他們對于其內(nèi)部的數(shù)據(jù)的存儲和管理方式是不同的,hbase其主要特點是仿照bigtable的列勢存儲,對于大型的數(shù)據(jù)的存儲,查詢比傳統(tǒng)數(shù)據(jù)庫有巨大的優(yōu)勢,而hive其產(chǎn)生主要應(yīng)對的數(shù)據(jù)倉庫問題,其將存在在hdfs上的文件目錄結(jié)構(gòu)映射成表。主要關(guān)注的是對數(shù)據(jù)的統(tǒng)計等方面。適合的場景:hbase:適合大型數(shù)據(jù)存儲,其作用可以類比于傳統(tǒng)數(shù)據(jù)庫的作用,主要關(guān)注的數(shù)據(jù)的存取。hive:適合大數(shù)據(jù)的管理,統(tǒng)計,處理,其作用類比于傳統(tǒng)的數(shù)據(jù)倉庫,主要關(guān)注的數(shù)據(jù)的處理??偨Y(jié):應(yīng)對大數(shù)據(jù)的時候,如果你偏重于數(shù)據(jù)存儲查詢hbase無疑是更加適合,而你關(guān)注的是對大數(shù)據(jù)的處理結(jié)果查詢,比如你查詢的時候有類似于count,sum等函數(shù)操作 hive就能滿足你的需求,一般有些項目都輸在hive里面進行數(shù)據(jù)處理,然后將結(jié)果導(dǎo)入mysql等數(shù)據(jù)庫或者h(yuǎn)base中進行查詢,至于mysql與hbase的選擇 比較傾向于你的處理之后的數(shù)據(jù)量
隨著大數(shù)據(jù)分析市場迅速擴展,哪些技術(shù)是最有需求和最有增長潛力的呢?在Forrester Research的一份最新研究報告中,評估了22種技術(shù)在整個數(shù)據(jù)生命周期中的成熟度和軌跡。這些技術(shù)都對大數(shù)據(jù)的實時、預(yù)測和綜合洞察有著巨大的貢獻。
1. 預(yù)測分析技術(shù)
這也是大數(shù)據(jù)的主要功能之一。預(yù)測分析允許公司通過分析大數(shù)據(jù)源來發(fā)現(xiàn)、評估、優(yōu)化和部署預(yù)測模型,從而提高業(yè)務(wù)性能或降低風(fēng)險。同時,大數(shù)據(jù)的預(yù)測分析也與我們的生活息息相關(guān)。淘寶會預(yù)測你每次購物可能還想買什么,愛奇藝正在預(yù)測你可能想看什么,百合網(wǎng)和其他約會網(wǎng)站甚至試圖預(yù)測你會愛上誰……
2. NoSQL數(shù)據(jù)庫
NoSQL,Not Only SQL,意思是“不僅僅是SQL”,泛指非關(guān)系型數(shù)據(jù)庫。NoSQL數(shù)據(jù)庫提供了比關(guān)系數(shù)據(jù)庫更靈活、可伸縮和更便宜的替代方案,打破了傳統(tǒng)數(shù)據(jù)庫市場一統(tǒng)江山的格局。并且,NoSQL數(shù)據(jù)庫能夠更好地處理大數(shù)據(jù)應(yīng)用的需求。常見的NoSQL數(shù)據(jù)庫有HBase、Redis、MongoDB、Couchbase、LevelDB等。
3. 搜索和知識發(fā)現(xiàn)
支持來自于多種數(shù)據(jù)源(如文件系統(tǒng)、數(shù)據(jù)庫、流、api和其他平臺和應(yīng)用程序)中的大型非結(jié)構(gòu)化和結(jié)構(gòu)化數(shù)據(jù)存儲庫中自助提取信息的工具和技術(shù)。如,數(shù)據(jù)挖掘技術(shù)和各種大數(shù)據(jù)平臺。
4. 大數(shù)據(jù)流計算引擎
能夠過濾、聚合、豐富和分析來自多個完全不同的活動數(shù)據(jù)源的數(shù)據(jù)的高吞吐量的框架,可以采用任何數(shù)據(jù)格式。現(xiàn)今流行的流式計算引擎有Spark Streaming和Flink。
5. 內(nèi)存數(shù)據(jù)結(jié)構(gòu)
通過在分布式計算機系統(tǒng)中動態(tài)隨機訪問內(nèi)存(DRAM)、閃存或SSD上分布數(shù)據(jù),提供低延遲的訪問和處理大量數(shù)據(jù)。
6. 分布式文件存儲
為了保證文件的可靠性和存取性能,數(shù)據(jù)通常以副本的方式存儲在多個節(jié)點上的計算機網(wǎng)絡(luò)。常見的分布式文件系統(tǒng)有GFS、HDFS、Lustre 、Ceph等。
7. 數(shù)據(jù)虛擬化
數(shù)據(jù)虛擬化是一種數(shù)據(jù)管理方法,它允許應(yīng)用程序檢索和操作數(shù)據(jù),而不需要關(guān)心有關(guān)數(shù)據(jù)的技術(shù)細(xì)節(jié),比如數(shù)據(jù)在源文件中是何種格式,或者數(shù)據(jù)存儲的物理位置,并且可以提供單個客戶用戶視圖。
8. 數(shù)據(jù)集成
用于跨解決方案進行數(shù)據(jù)編排的工具,如Amazon Elastic MapReduce (EMR)、Apache Hive、Apache Pig、Apache Spark、MapReduce、Couchbase、Hadoop和MongoDB等。
9. 數(shù)據(jù)準(zhǔn)備
減輕采購、成形、清理和共享各種雜亂數(shù)據(jù)集的負(fù)擔(dān)的軟件,以加速數(shù)據(jù)對分析的有用性。
10. 數(shù)據(jù)質(zhì)量
使用分布式數(shù)據(jù)存儲和數(shù)據(jù)庫上的并行操作,對大型高速數(shù)據(jù)集進行數(shù)據(jù)清理和充實的產(chǎn)品。
Hive和Hbase是兩種基于Hadoop的不同技術(shù)--Hive是一種類SQL的引擎,并且運行MapReduce任務(wù),Hbase是一種在Hadoop之上的NoSQL 的Key/vale數(shù)據(jù)庫。當(dāng)然,這兩種工具是可以同時使用的。就像用Google來搜索,用FaceBook進行社交一樣,Hive可以用來進行統(tǒng)計查詢,HBase可以用來進行實時查詢,數(shù)據(jù)也可以從Hive寫到Hbase,設(shè)置再從Hbase寫回Hive
共同點:
1.hbase與hive都是架構(gòu)在hadoop之上的。都是用hadoop作為底層存儲
區(qū)別:
1.Hive是建立在Hadoop之上為了減少MapReduce jobs編寫工作的批處理系統(tǒng),HBase是為了支持彌補Hadoop對實時操作的缺陷的項目 。
2.想象你在操作RMDB數(shù)據(jù)庫,如果是全表掃描,就用Hive+Hadoop,如果是索引訪問,就用HBase+Hadoop 。
3.Hive query就是MapReduce jobs可以從5分鐘到數(shù)小時不止,HBase是非常高效的,肯定比Hive高效的多。
4.Hive本身不存儲和計算數(shù)據(jù),它完全依賴于HDFS和MapReduce,Hive中的表純邏輯,就只是表的定義等,即表的元數(shù)據(jù)。這樣就可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供完整的SQL查詢功能,并將SQL語句最終轉(zhuǎn)換為MapReduce任務(wù)進行運行。
5.hive借用hadoop的MapReduce來完成一些hive中的命令的執(zhí)行
6.hbase是物理表,不是邏輯表,提供一個超大的內(nèi)存hash表,搜索引擎通過它來存儲索引,方便查詢操作。
7.hbase是列存儲。
8.hdfs作為底層存儲,hdfs是存放文件的系統(tǒng),而Hbase負(fù)責(zé)組織文件。
9.hive需要用到hdfs存儲文件,需要用到MapReduce計算框架。
分享文章:關(guān)于hivenosql的信息
網(wǎng)站URL:http://sd-ha.com/article26/phhpjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、網(wǎng)站營銷、網(wǎng)站改版、電子商務(wù)、App開發(fā)、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)