為了大家更容易理解我舉出的SQL語句,本文假定已經(jīng)建立了一個學生成績管理數(shù)據(jù)庫,全文均以學生成績的管理為例來描述。
創(chuàng)新互聯(lián)建站于2013年成立,先為陽明等服務(wù)建站,陽明等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為陽明企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
1.在查詢結(jié)果中顯示列名:
a.用as關(guān)鍵字:select name as '姓名' from students order by age
b.直接表示:select name '姓名' from students order by age
2.精確查找:
a.用in限定范圍:select * from students where native in ('湖南', '四川')
b.betweenand:select * from students where age between 20 and 30
c.“=”:select * from students where name = '李山'
d.like:select * from students where name like '李%' (注意查詢條件中有“%”,則說明是部分匹配,而且還有先后信息在里面,即查找以“李”開頭的匹配項。所以若查詢有“李”的所有對象,應(yīng)該命令:'%李%';若是第二個字為李,則應(yīng)為'_李%'或'_李'或'_李_'。)
e.[]匹配檢查符:select * from courses where cno like '[AC]%' (表示或的關(guān)系,與"in()"類似,而且"[]"可以表示范圍,如:select * from courses where cno like '[A-C]%')
3.對于時間類型變量的處理
a.smalldatetime:直接按照字符串處理的方式進行處理,例如:
select * from students where birth = '1980-1-1' and birth = '1980-12-31'
4.集函數(shù)
a.count()求和,如:select count(*) from students (求學生總?cè)藬?shù))
b.avg(列)求平均,如:select avg(mark) from grades where cno=’B2’
c.max(列)和min(列),求最大與最小
5.分組group
常用于統(tǒng)計時,如分組查總數(shù):
select gender,count(sno)
from students
group by gender
查看男女學生各有多少)
注意:從哪種角度分組就從哪列"group by"
對于多重分組,只需將分組規(guī)則羅列。比如查詢各屆各專業(yè)的男女同學人數(shù),那么分組規(guī)則有:屆別(grade)、專業(yè)(mno)和性別(gender),所以有"group by grade, mno, gender"select grade, mno, gender, count(*)
from students
group by grade, mno, gender
通常group還和having聯(lián)用,比如查詢1門課以上不及格的學生,則按學號(sno)分類有:
select sno,count(*) from grades
where mark60
group by sno
having count(*)1
6.UNION聯(lián)合
并查詢結(jié)果,如:
SELECT * FROM students
WHERE name like ‘張%’
UNION [ALL]
SELECT * FROM students
WHERE name like ‘李%’
7.多表查詢
a.內(nèi)連接
select g.sno,s.name,c.coursename
from grades g JOIN students s ON g.sno=s.sno
JOIN courses c ON g.cno=c.cno
(注意可以引用別名)
b.外連接
b1.左連接
select courses.cno,max(coursename),count(sno)
from courses LEFT JOIN grades ON courses.cno=grades.cno
group by courses.cno
左連接特點:顯示全部左邊表中的所有項目,即使其中有些項中的數(shù)據(jù)未填寫完全。
左外連接返回那些存在于左表而右表中卻沒有的行,再加上內(nèi)連接的行。
b2.右連接
與左連接類似
b3.全連接
select sno,name,major
from students FULL JOIN majors ON students.mno=majors.mno
兩邊表中的內(nèi)容全部顯示
c.自身連接
select c1.cno,c1.coursename,c1.pno,c2.coursename
from courses c1,courses c2 where c1.pno=c2.cno
采用別名解決問題。
d.交叉連接
select lastname+firstname from lastname CROSS JOIN firstanme
相當于做笛卡兒積
8.嵌套查詢
a.用關(guān)鍵字IN,如查詢李山的同鄉(xiāng):
select * from students
where native in (select native from students where name=’ 李山’)
b.使用關(guān)鍵字EXIST,比如,下面兩句是等價的:
select * from students
where sno in (select sno from grades where cno=’B2’)
select * from students where exists
(select * from grades where
grades.sno=students.sno AND cno=’B2’)
9.關(guān)于排序order
a.對于排序order,有兩種方法:asc升序和desc降序
b.對于排序order,可以按照查詢條件中的某項排列,而且這項可用數(shù)字表示,如:
select sno,count(*) ,avg(mark) from grades
group by sno
having avg(mark)85
order by 3
10.其他
a.對于有空格的識別名稱,應(yīng)該用"[]"括住。
b.對于某列中沒有數(shù)據(jù)的特定查詢可以用null判斷,如select sno,courseno from grades where mark IS NULL
c.注意區(qū)分在嵌套查詢中使用的any與all的區(qū)別,any相當于邏輯運算“||”而all則相當于邏輯運算“”
d.注意在做否定意義的查詢是小心進入陷阱:
如,沒有選修‘B2’課程的學生 :
select students.*
from students, grades
where students.sno=grades.sno
AND grades.cno ’B2’
上面的查詢方式是錯誤的,正確方式見下方:
select * from students
where not exists (select * from grades
where grades.sno=students.sno AND cno='B2')
11.關(guān)于有難度多重嵌套查詢的解決思想:
如,選修了全部課程的學生:
select *
from students
where not exists ( select *
from courses
where NOT EXISTS
(select *
from grades
where sno=students.sno
AND cno=courses.cno))
最外一重:從學生表中選,排除那些有課沒選的。用not exist。由于討論對象是課程,所以第二重查詢從course表中找,排除那些選了課的即可。
當為大家描述我們的整體服務(wù)架構(gòu)時,最常見的兩個問題是:
為什么采用結(jié)構(gòu)化方式將數(shù)據(jù)存儲在SQL數(shù)據(jù)庫中,而不使用NoSQL平臺?
為什么自己維護數(shù)據(jù)中心,而不將Evernote托管到云服務(wù)提供商?
這兩個問題都很有趣,我們先來探討第一個。
對特定的應(yīng)用而言,相比一個單一的SQL實例,一個現(xiàn)代的鍵值存儲引擎具備顯著的性能優(yōu)勢和可擴展性。
CREATE TABLE notebooks ( id int UNSIGNED NOT NULL PRIMARY KEY, guid binary(16) NOT NULL, user_id int UNSIGNED NOT NULL, name varchar(100) COLLATE utf8_bin NOT NULL, ... ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE notes ( id int UNSIGNED NOT NULL PRIMARY KEY, guid binary(16) NOT NULL, user_id int UNSIGNED NOT NULL, notebook_id int UNSIGNED NOT NULL, title varchar(255) NOT NULL, ... FOREIGN KEY (notebook_id) REFERENCES notebooks(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如果你在Windows客戶端上創(chuàng)建了一個名為“Cooking”的記事本,并立即在其中粘貼了一個名為“Quick Tomato Sauce”的食譜,客戶端會立刻進行如下同步:
調(diào)用NoteStore.createNotebook() 請求服務(wù)器創(chuàng)建記事本,并返回以創(chuàng)建記事本的GUID。
通過指定記事本的GUID,調(diào)用NoteStore.createNote()在記事本中創(chuàng)建筆記。
每次API調(diào)用都通過SQL事物予以實現(xiàn),可以讓客戶端完全信任服務(wù)器的任何提示。ACID兼容的數(shù)據(jù)庫可以做到這些:
原子性(Atomicity):如果API調(diào)用成功,那么所有的改動都會保存;如果API調(diào)用失敗,所有的改動都不會提交。
一致性(Consistency): 在API調(diào)用完成后,所有的賬戶都可用,并能保證內(nèi)部狀態(tài)的一致性。每篇筆記都與記事本相關(guān)聯(lián),以避免出現(xiàn)孤立項。數(shù)據(jù)庫不允許刪除關(guān)聯(lián)有記事的記事本,這得感謝FOREIGN KEY約束。
持久性(Durability):當服務(wù)器發(fā)送記事本已創(chuàng)建完畢的回執(zhí)后,客戶端會認為它的存在具有持久性,以便進行后續(xù)的操作。變更的持久性,可以讓客戶端知道在任何時刻對服務(wù)狀態(tài)的影響都能保持一致性。
對我們的同步協(xié)議而言,持久性最為重要。如果客戶端不能確定服務(wù)器端的變更具有持久性,那么協(xié)議將會變得復(fù)雜而低效。
“大數(shù)據(jù)”問題
得益于事務(wù)處理的數(shù)據(jù)庫的ACID屬性,同樣使得數(shù)據(jù)集非常難以擴展,以超出單臺服務(wù)器的范圍。數(shù)據(jù)庫集群和多主復(fù)制技術(shù)并不理想,鍵值存儲為實現(xiàn)可擴展性提供了一條捷徑。
所幸,Evernote暫時不需要考慮這個問題。即便是我們有近10億的筆記,和近20億的資源文件,這也并不能稱得上是一個大數(shù)據(jù)集。通過按用戶分區(qū),它被劃分成了2千萬個獨立的數(shù)據(jù)集。
我們尚未遇到所謂“大數(shù)據(jù)”引發(fā)的問題,倒是遇到了許多“中數(shù)據(jù)”的存儲問題,這就是通過規(guī)整分區(qū)形成的分片存儲架構(gòu)。
也許以后……
我們對新的存儲系統(tǒng)非常感興趣,非常樂意應(yīng)用在哪些對ACID要求不強,但確實需要橫向擴展的新項目中。例如,我們的報告分析系統(tǒng)已經(jīng)逐漸超出了MySQL平臺的承受力,需要被更快、更先進的系統(tǒng)所取代。
我們現(xiàn)在對以Evernote用戶元數(shù)據(jù)為基礎(chǔ)的MySQL分片存儲頗為滿意,盡管這不會引起那些IT弄潮兒的興趣。
隨著大數(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ù)性能或降低風險。同時,大數(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ù)格式?,F(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ù)細節(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ù)準備
減輕采購、成形、清理和共享各種雜亂數(shù)據(jù)集的負擔的軟件,以加速數(shù)據(jù)對分析的有用性。
10. 數(shù)據(jù)質(zhì)量
使用分布式數(shù)據(jù)存儲和數(shù)據(jù)庫上的并行操作,對大型高速數(shù)據(jù)集進行數(shù)據(jù)清理和充實的產(chǎn)品。
像MongoDB, Cassandra, HBase, DynamoDB, 和
Riak這些NoSQL缺乏傳統(tǒng)的原子事務(wù)機制,所謂原子事務(wù)機制是可以保證一系列寫操作要么全部完成,要么全部不會完成,不會發(fā)生只完成一系列中一兩個
寫操作;因為數(shù)據(jù)庫不提供這種事務(wù)機制支持,開發(fā)者需要自己編寫代碼來確保一系列寫操作的事務(wù)機制,比較復(fù)雜和測試。
這些NoSQL數(shù)據(jù)庫不提供事務(wù)機制原因在于其分布式特點,一系列寫操作中訪問的數(shù)據(jù)可能位于不同的分區(qū)服務(wù)器,這樣的事務(wù)就變成分布式事務(wù),在分
布式事務(wù)中實現(xiàn)原子性需要彼此協(xié)調(diào),而協(xié)調(diào)是耗費時間的,每臺機器在一個大事務(wù)過程中必須依次確認,這就需要一種協(xié)議確保一個事務(wù)中沒有任何一臺機器寫操
作失敗。
這種協(xié)調(diào)是昂貴的,會增加延遲時間,關(guān)鍵問題是,當協(xié)調(diào)沒有完成時,其他操作是不能讀取事務(wù)中寫操作結(jié)果的,這是因為事務(wù)的all-or-
nothing原理導(dǎo)致,萬一協(xié)調(diào)過程發(fā)現(xiàn)某個寫操作不能完成,那么需要將其他寫操作成功的進行回滾。針對分布式事務(wù)的分布式協(xié)調(diào)對整體數(shù)據(jù)庫性能有嚴重
影響,不只是吞吐量還包括延遲時間,這樣大部分NoSQL數(shù)據(jù)庫因為性能問題就選擇不提供分布式事務(wù)。
MongoDB, Riak, HBase, 和 Cassandra提供基于單一鍵的事務(wù),這是因為所有信息都和一個鍵key有關(guān),這個鍵是存儲在單個服務(wù)器上,這樣基于單鍵的事務(wù)不會帶來復(fù)雜的分布式協(xié)調(diào)。
那么看來擴展性性能和分布式事務(wù)是一對矛盾,總要有取舍?實際上是不完全是,現(xiàn)在完全有可能提供高擴展的性能同時提供分布式原子事務(wù)。
FIT是這樣一個在分布式系統(tǒng)提供原子事務(wù)的策略,在fairness公平性, isolation隔離性, 和throughput吞吐量(簡稱FIT)可以權(quán)衡。
一個支持分布式事務(wù)的可伸縮分布式系統(tǒng)能夠完成這三個屬性中兩個,公平是事務(wù)之間不會相互影響造成延遲;隔離性提供一種幻覺好像整個數(shù)據(jù)庫只有它自
己一個事務(wù),隔離性保證當任何同時發(fā)生的事務(wù)發(fā)生沖突時,能夠保證彼此能看到彼此的寫操作結(jié)果,因此減輕了程序員為避免事務(wù)讀寫沖突的強邏輯推理要求;吞
吐量是指每單元時間數(shù)據(jù)庫能夠并發(fā)處理多少事務(wù)。
FIT是如下進行權(quán)衡:
保證公平性fairness 和隔離性isolation, 但是犧牲吞吐量
保證公平性fairness和吞吐量, 犧牲隔離性isolation
保證隔離性isolation和吞吐量throughput, 但是犧牲公平性fairness.
犧牲公平性:放棄公平性,數(shù)據(jù)庫能有更多機會降低分布式事務(wù)的成本,主要成本是分布式協(xié)調(diào)帶來的,也就是說,不需要在每個事務(wù)過程內(nèi)對每個機器都依
次確認事務(wù)完成,這樣排隊式的確認commit事務(wù)是很浪費時間的,放棄公平性,意味著可以在事務(wù)外面進行協(xié)調(diào),這樣就只是增加了協(xié)調(diào)時間,不會增加互相
沖突事務(wù)因為彼此沖突而不能運行所耽擱的時間,當系統(tǒng)不需要公平性時,需要根據(jù)事務(wù)的優(yōu)先級或延遲等標準進行指定先后執(zhí)行順序,這樣就能夠獲得很好的吞吐
量。
G-Store是一種放棄公平性的 Isolation-Throughput
的分布式key-value存儲,支持多鍵事務(wù)(multi-key transactions),MongoDB 和
HBase在鍵key在同樣分區(qū)上也支持多鍵事務(wù),但是不支持跨分區(qū)的事務(wù)。
總之:傳統(tǒng)分布式事務(wù)性能不佳的原因是確保原子性(分布式協(xié)調(diào))和隔離性同時重疊,創(chuàng)建一個高吞吐量分布式事務(wù)的關(guān)鍵是分離這兩種關(guān)注,這種分離原
子性和隔離性的視角將導(dǎo)致兩種類型的系統(tǒng),第一種選擇是弱隔離性能讓沖突事務(wù)并行執(zhí)行和確認提交;第二個選擇重新排序原子性和隔離性機制保證它們不會某個
時間重疊,這是一種放棄公平的事務(wù)執(zhí)行,所謂放棄公平就是不再同時照顧原子性和隔離性了,有所傾斜,放棄高標準道德要求就會帶來高自由高效率。
《深入NoSQL》(Shashank Tiwari)電子書網(wǎng)盤下載免費在線閱讀
鏈接:
提取碼: 7n4x
書名:深入NoSQL
作者:Shashank Tiwari
譯者:巨成
豆瓣評分:6.1
出版社:人民郵電出版社
出版年份:2012-11
頁數(shù):294
內(nèi)容簡介:
《深入NoSQL》是一本全面的NoSQL實踐指南。書中主要關(guān)注NoSQL的基本概念,以及使用NoSQL數(shù)據(jù)庫的切實可行的解決方案。書中介紹了基于MapReduce的可伸縮處理,演示Hadoop用例,還有Hive和Pig這樣的高層抽象。包含許多用例演示,同時也會討論Google、Amazon、Facebook、Twitter和LinkedIn的可伸縮數(shù)據(jù)架構(gòu)。
作者簡介:
Shashank Tiwari
創(chuàng)業(yè)者、開發(fā)者、技術(shù)作家、演講者和導(dǎo)師,技術(shù)型創(chuàng)業(yè)公司Treasury of Ideas()的創(chuàng)始人。
他是一位經(jīng)驗豐富的軟件開發(fā)者和企業(yè)家,長期關(guān)注高性能應(yīng)用、分析、Web應(yīng)用以及移動平臺,對數(shù)據(jù)可視化和統(tǒng)計機器學習有著濃厚的興趣,喜歡喝咖啡、吃甜點、騎自行車。他撰寫了許多技術(shù)文章和著作,并且應(yīng)邀在全球各地的技術(shù)會議上進行演講。
簡單來說,從大數(shù)據(jù)的生命周期來看,無外乎四個方面:大數(shù)據(jù)采集、大數(shù)據(jù)預(yù)處理、大數(shù)據(jù)存儲、大數(shù)據(jù)分析,共同組成了大數(shù)據(jù)生命周期里最核心的技術(shù),下面分開來說:
一、大數(shù)據(jù)采集
大數(shù)據(jù)采集,即對各種來源的結(jié)構(gòu)化和非結(jié)構(gòu)化海量數(shù)據(jù),所進行的采集。
數(shù)據(jù)庫采集:流行的有Sqoop和ETL,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫MySQL和Oracle 也依然充當著許多企業(yè)的數(shù)據(jù)存儲方式。當然了,目前對于開源的Kettle和Talend本身,也集成了大數(shù)據(jù)集成內(nèi)容,可實現(xiàn)hdfs,hbase和主流Nosq數(shù)據(jù)庫之間的數(shù)據(jù)同步和集成。
網(wǎng)絡(luò)數(shù)據(jù)采集:一種借助網(wǎng)絡(luò)爬蟲或網(wǎng)站公開API,從網(wǎng)頁獲取非結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù),并將其統(tǒng)一結(jié)構(gòu)化為本地數(shù)據(jù)的數(shù)據(jù)采集方式。
文件采集:包括實時文件采集和處理技術(shù)flume、基于ELK的日志采集和增量采集等等。
二、大數(shù)據(jù)預(yù)處理
大數(shù)據(jù)預(yù)處理,指的是在進行數(shù)據(jù)分析之前,先對采集到的原始數(shù)據(jù)所進行的諸如“清洗、填補、平滑、合并、規(guī)格化、一致性檢驗”等一系列操作,旨在提高數(shù)據(jù)質(zhì)量,為后期分析工作奠定基礎(chǔ)。數(shù)據(jù)預(yù)處理主要包括四個部分:數(shù)據(jù)清理、數(shù)據(jù)集成、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)規(guī)約。
數(shù)據(jù)清理:指利用ETL等清洗工具,對有遺漏數(shù)據(jù)(缺少感興趣的屬性)、噪音數(shù)據(jù)(數(shù)據(jù)中存在著錯誤、或偏離期望值的數(shù)據(jù))、不一致數(shù)據(jù)進行處理。
數(shù)據(jù)集成:是指將不同數(shù)據(jù)源中的數(shù)據(jù),合并存放到統(tǒng)一數(shù)據(jù)庫的,存儲方法,著重解決三個問題:模式匹配、數(shù)據(jù)冗余、數(shù)據(jù)值沖突檢測與處理。
數(shù)據(jù)轉(zhuǎn)換:是指對所抽取出來的數(shù)據(jù)中存在的不一致,進行處理的過程。它同時包含了數(shù)據(jù)清洗的工作,即根據(jù)業(yè)務(wù)規(guī)則對異常數(shù)據(jù)進行清洗,以保證后續(xù)分析結(jié)果準確性。
數(shù)據(jù)規(guī)約:是指在最大限度保持數(shù)據(jù)原貌的基礎(chǔ)上,最大限度精簡數(shù)據(jù)量,以得到較小數(shù)據(jù)集的操作,包括:數(shù)據(jù)方聚集、維規(guī)約、數(shù)據(jù)壓縮、數(shù)值規(guī)約、概念分層等。
三、大數(shù)據(jù)存儲
大數(shù)據(jù)存儲,指用存儲器,以數(shù)據(jù)庫的形式,存儲采集到的數(shù)據(jù)的過程,包含三種典型路線:
1、基于MPP架構(gòu)的新型數(shù)據(jù)庫集群
采用Shared Nothing架構(gòu),結(jié)合MPP架構(gòu)的高效分布式計算模式,通過列存儲、粗粒度索引等多項大數(shù)據(jù)處理技術(shù),重點面向行業(yè)大數(shù)據(jù)所展開的數(shù)據(jù)存儲方式。具有低成本、高性能、高擴展性等特點,在企業(yè)分析類應(yīng)用領(lǐng)域有著廣泛的應(yīng)用。
較之傳統(tǒng)數(shù)據(jù)庫,其基于MPP產(chǎn)品的PB級數(shù)據(jù)分析能力,有著顯著的優(yōu)越性。自然,MPP數(shù)據(jù)庫,也成為了企業(yè)新一代數(shù)據(jù)倉庫的最佳選擇。
2、基于Hadoop的技術(shù)擴展和封裝
基于Hadoop的技術(shù)擴展和封裝,是針對傳統(tǒng)關(guān)系型數(shù)據(jù)庫難以處理的數(shù)據(jù)和場景(針對非結(jié)構(gòu)化數(shù)據(jù)的存儲和計算等),利用Hadoop開源優(yōu)勢及相關(guān)特性(善于處理非結(jié)構(gòu)、半結(jié)構(gòu)化數(shù)據(jù)、復(fù)雜的ETL流程、復(fù)雜的數(shù)據(jù)挖掘和計算模型等),衍生出相關(guān)大數(shù)據(jù)技術(shù)的過程。
伴隨著技術(shù)進步,其應(yīng)用場景也將逐步擴大,目前最為典型的應(yīng)用場景:通過擴展和封裝 Hadoop來實現(xiàn)對互聯(lián)網(wǎng)大數(shù)據(jù)存儲、分析的支撐,其中涉及了幾十種NoSQL技術(shù)。
3、大數(shù)據(jù)一體機
這是一種專為大數(shù)據(jù)的分析處理而設(shè)計的軟、硬件結(jié)合的產(chǎn)品。它由一組集成的服務(wù)器、存儲設(shè)備、操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng),以及為數(shù)據(jù)查詢、處理、分析而預(yù)安裝和優(yōu)化的軟件組成,具有良好的穩(wěn)定性和縱向擴展性。
四、大數(shù)據(jù)分析挖掘
從可視化分析、數(shù)據(jù)挖掘算法、預(yù)測性分析、語義引擎、數(shù)據(jù)質(zhì)量管理等方面,對雜亂無章的數(shù)據(jù),進行萃取、提煉和分析的過程。
1、可視化分析
可視化分析,指借助圖形化手段,清晰并有效傳達與溝通信息的分析手段。主要應(yīng)用于海量數(shù)據(jù)關(guān)聯(lián)分析,即借助可視化數(shù)據(jù)分析平臺,對分散異構(gòu)數(shù)據(jù)進行關(guān)聯(lián)分析,并做出完整分析圖表的過程。
具有簡單明了、清晰直觀、易于接受的特點。
2、數(shù)據(jù)挖掘算法
數(shù)據(jù)挖掘算法,即通過創(chuàng)建數(shù)據(jù)挖掘模型,而對數(shù)據(jù)進行試探和計算的,數(shù)據(jù)分析手段。它是大數(shù)據(jù)分析的理論核心。
數(shù)據(jù)挖掘算法多種多樣,且不同算法因基于不同的數(shù)據(jù)類型和格式,會呈現(xiàn)出不同的數(shù)據(jù)特點。但一般來講,創(chuàng)建模型的過程卻是相似的,即首先分析用戶提供的數(shù)據(jù),然后針對特定類型的模式和趨勢進行查找,并用分析結(jié)果定義創(chuàng)建挖掘模型的最佳參數(shù),并將這些參數(shù)應(yīng)用于整個數(shù)據(jù)集,以提取可行模式和詳細統(tǒng)計信息。
3、預(yù)測性分析
預(yù)測性分析,是大數(shù)據(jù)分析最重要的應(yīng)用領(lǐng)域之一,通過結(jié)合多種高級分析功能(特別統(tǒng)計分析、預(yù)測建模、數(shù)據(jù)挖掘、文本分析、實體分析、優(yōu)化、實時評分、機器學習等),達到預(yù)測不確定事件的目的。
幫助分用戶析結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)中的趨勢、模式和關(guān)系,并運用這些指標來預(yù)測將來事件,為采取措施提供依據(jù)。
4、語義引擎
語義引擎,指通過為已有數(shù)據(jù)添加語義的操作,提高用戶互聯(lián)網(wǎng)搜索體驗。
5、數(shù)據(jù)質(zhì)量管理
指對數(shù)據(jù)全生命周期的每個階段(計劃、獲取、存儲、共享、維護、應(yīng)用、消亡等)中可能引發(fā)的各類數(shù)據(jù)質(zhì)量問題,進行識別、度量、監(jiān)控、預(yù)警等操作,以提高數(shù)據(jù)質(zhì)量的一系列管理活動。
以上是從大的方面來講,具體來說大數(shù)據(jù)的框架技術(shù)有很多,這里列舉其中一些:
文件存儲:Hadoop HDFS、Tachyon、KFS
離線計算:Hadoop MapReduce、Spark
流式、實時計算:Storm、Spark Streaming、S4、Heron
K-V、NOSQL數(shù)據(jù)庫:HBase、Redis、MongoDB
資源管理:YARN、Mesos
日志收集:Flume、Scribe、Logstash、Kibana
消息系統(tǒng):Kafka、StormMQ、ZeroMQ、RabbitMQ
查詢分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid
分布式協(xié)調(diào)服務(wù):Zookeeper
集群管理與監(jiān)控:Ambari、Ganglia、Nagios、Cloudera Manager
數(shù)據(jù)挖掘、機器學習:Mahout、Spark MLLib
數(shù)據(jù)同步:Sqoop
任務(wù)調(diào)度:Oozie
······
想要學習更多關(guān)于大數(shù)據(jù)的知識可以加群和志同道合的人一起交流一下啊[ ]