錢立國(安徽建筑大學(xué)數(shù)理學(xué)院,安徽 合肥 230011)
數(shù)據(jù)是信息的載體,是知識的載體。廣義上說,一切可以用文字或符號記錄下來的東西,都可以叫數(shù)據(jù),所以數(shù)據(jù)包括文檔、圖形、符號、視頻、圖片、數(shù)值。將人的活動記錄下來,就是數(shù)據(jù)本身,就是最原始的數(shù)據(jù)。但從狹義上說,數(shù)據(jù)就是數(shù)據(jù)值,我們通常研究的數(shù)據(jù)就是數(shù)值。但是,在計(jì)算機(jī)和網(wǎng)絡(luò)應(yīng)用成熟起來后,我們的數(shù)據(jù)也包括文檔、視頻、圖片。
當(dāng)用計(jì)算機(jī)來處理數(shù)據(jù)的時(shí)候,數(shù)據(jù)就需要存儲和管理了。早期的數(shù)據(jù),就是用一個(gè)文件來實(shí)現(xiàn)的,即是文件系統(tǒng)。隨著處理的數(shù)據(jù)量增大,發(fā)展到用數(shù)據(jù)庫來管理和存儲數(shù)據(jù)了。
數(shù)據(jù)庫包括多媒體數(shù)據(jù)庫、對象關(guān)系數(shù)據(jù)庫和關(guān)系數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫管理系統(tǒng),已經(jīng)成為了事實(shí)上通用的數(shù)據(jù)庫系統(tǒng),因?yàn)樗躁P(guān)系表格式存儲數(shù)據(jù),并以簡單明了的SQL標(biāo)準(zhǔn)的格式對數(shù)據(jù)進(jìn)行存取。
隨著數(shù)據(jù)量的增多,人們開始尋找各種數(shù)據(jù)之間的關(guān)系,研究面向某一主題的數(shù)據(jù),于是數(shù)據(jù)倉庫問世了。數(shù)據(jù)倉庫是歷史的、主題的、集成的大量數(shù)據(jù),以多維的角度分層次分析數(shù)據(jù)之間的關(guān)系,提供數(shù)據(jù)挖掘功能,尋找數(shù)據(jù)間的知識,為決策支持提供服務(wù)。
但互聯(lián)網(wǎng)的發(fā)展,使得數(shù)據(jù)的生產(chǎn)成幾何級數(shù)增長,不管以數(shù)據(jù)庫還是數(shù)據(jù)倉庫,都無法囊括如此海量數(shù)據(jù)時(shí),大數(shù)據(jù)應(yīng)運(yùn)而生。大數(shù)據(jù)和云服務(wù),是孿生兄弟。大數(shù)據(jù),就是分布式數(shù)據(jù)庫系統(tǒng),但此時(shí)的各個(gè)點(diǎn)上的數(shù)據(jù),不再局限于數(shù)據(jù)庫系統(tǒng),而是包括文件系數(shù)據(jù)庫系統(tǒng)等各種方式存儲的數(shù)據(jù)。就是說,將數(shù)據(jù)分散在互聯(lián)網(wǎng)中無限個(gè)點(diǎn),并且實(shí)現(xiàn)分布式處理,而獲得處理結(jié)果。云服務(wù),可以為這種分布式文件系統(tǒng)提供落地的服務(wù)設(shè)施。本文分別介紹各種數(shù)據(jù)系統(tǒng)。
數(shù)據(jù)庫是按照一定的數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的系統(tǒng)。數(shù)據(jù)庫管理系統(tǒng)多種管理類型,包括多媒體數(shù)據(jù)庫管理系統(tǒng)、對象數(shù)據(jù)庫管理系統(tǒng)、關(guān)系數(shù)據(jù)庫管理系統(tǒng)等。數(shù)據(jù)庫按存儲數(shù)據(jù)的時(shí)效性,可分為實(shí)時(shí)數(shù)據(jù)庫管理系統(tǒng)、內(nèi)存數(shù)據(jù)庫管理系統(tǒng)、持久化的傳統(tǒng)關(guān)系數(shù)據(jù)庫管理系統(tǒng)。
本節(jié)主要介紹關(guān)系數(shù)據(jù)庫系統(tǒng),這是最普通最常用的數(shù)據(jù)庫管理系統(tǒng),也是市場上成熟產(chǎn)品最多的數(shù)據(jù)庫管理系統(tǒng)。
2.1.1 數(shù)據(jù)
數(shù)據(jù)是描述事物的符號記錄,這是對事物的抽象。抽象的結(jié)果,是形式,但不能完整地表達(dá)數(shù)據(jù)的意義。這時(shí)必須要對數(shù)據(jù)進(jìn)行解釋,即語義。而數(shù)據(jù)庫中存儲的就是這種抽象形式的記錄。如,張三、1992、安徽省、計(jì)算機(jī)系。這是一條記錄,是存儲在數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù),但需要語義的解釋,即:張三,1992年出生,籍貫為安徽省,在計(jì)算機(jī)系。
2.1.2 數(shù)據(jù)庫
數(shù)據(jù)庫是存放數(shù)據(jù)的倉庫。這個(gè)倉庫是通過計(jì)算機(jī)系統(tǒng)來管理并存儲的。而且這些數(shù)據(jù),是有一定格式的。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲。在關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)是按二維表的形式組織和存儲,按一定的模型,將數(shù)據(jù)組織在不同的二維表中。
2.1.3 數(shù)據(jù)庫管理系統(tǒng)(DBMS)
數(shù)據(jù)庫管理系統(tǒng),是對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)定義(DDL)、數(shù)據(jù)操縱(DML)、數(shù)據(jù)庫的運(yùn)行管理、數(shù)據(jù)庫的建立和維護(hù)等一系列管理與維護(hù)的系統(tǒng),是建立在操作系統(tǒng)之上,由用戶或應(yīng)用程序使用。
2.1.4 數(shù)據(jù)庫系統(tǒng)(DBS)
數(shù)據(jù)庫系統(tǒng),包括數(shù)據(jù)庫DB、數(shù)據(jù)庫管理系統(tǒng)DBMS、應(yīng)用程序AP、數(shù)據(jù)庫管理員DBA、和用戶USERS。通常說的數(shù)據(jù)庫,就是指數(shù)據(jù)庫系統(tǒng)。企業(yè)級的數(shù)據(jù)庫系統(tǒng),必須包括這些內(nèi)容,才有現(xiàn)實(shí)的意義。
2.2.1 模型要求
數(shù)據(jù)庫的模型,要求真實(shí)地反應(yīng)現(xiàn)實(shí)世界,即是對現(xiàn)實(shí)世界的抽象;也要求容易理解與溝通,這就是誰都能看的懂模型;最后,模型還要求計(jì)算機(jī)容易實(shí)現(xiàn),即計(jì)算機(jī)也能看的懂。這些目前是理想的要求,在實(shí)際的抽象中,可能不能同時(shí)滿足這三個(gè)要求,但我們在抽象時(shí),可能用不同的模型來描述。
2.2.2 模型層次及分類
按照不同的要求,模型分為不同的層次,即概念模型和數(shù)據(jù)模型。
概念模型是對現(xiàn)實(shí)世界的抽象,站在用戶的角度看待數(shù)據(jù)和信息,一般用E-R圖表示,即實(shí)體關(guān)系圖,它包括實(shí)體、屬性、聯(lián)系。概念模型用于表示信息世界,是從現(xiàn)實(shí)世界到信息世界的抽象。
數(shù)據(jù)模型包括網(wǎng)狀模型、層次模型、關(guān)系模型。這里介紹關(guān)系模型。
關(guān)系模型包括數(shù)據(jù)結(jié)構(gòu)、關(guān)系數(shù)據(jù)模型操縱、完整性約束、存儲結(jié)構(gòu)。這些內(nèi)容是從數(shù)據(jù)存儲在計(jì)算機(jī)系統(tǒng)中的存儲組織形式描述的。數(shù)據(jù)結(jié)構(gòu)包括關(guān)系表、元組、屬性、主碼、域、分量、關(guān)系模式。關(guān)系數(shù)據(jù)模型操縱包括查詢、插入、刪除、修改。完整性約束包括實(shí)體完整性、參照完整性、用戶自定義完整性。存儲結(jié)構(gòu)為表。存儲結(jié)構(gòu)為表。
2.3.1 SQL標(biāo)準(zhǔn)及其特點(diǎn)
美國國家標(biāo)準(zhǔn)學(xué)會(American National Standards Institute,ANSI)負(fù)責(zé)維護(hù)SQL的標(biāo)準(zhǔn)?,F(xiàn)在,SQL標(biāo)準(zhǔn)由ANSI和國際標(biāo)準(zhǔn)化組織(International Standards Organization,ISO)作為ISO/IEC 9075標(biāo)準(zhǔn)維護(hù)。
ANSI到目前為止發(fā)布的SQL的標(biāo)準(zhǔn)有:ANSISQL-86、ANSISQL-89、ANSISQL-92、ANSISQL-99、ANSISQL-2008。
SQL的特點(diǎn)是以單一的表為操作對象、一體化解決DD/DM/DC、高度非過程化、同一種語法,兩種使用,即自主和嵌入,簡單,易用。
2.3.2 數(shù)據(jù)查詢/定義/操縱/控制功能
數(shù)據(jù)定義包括創(chuàng)建、修改和刪除表、視圖和索引。如表1所示。創(chuàng)建使用CREATE關(guān)鍵字,分別創(chuàng)建表、視圖和索引。刪除使用DROP關(guān)鍵字,修改使用ALTER關(guān)鍵字。修改只能修改表,不能修改視圖和索引。視圖是虛擬的表,僅僅是定義。索引是表中記錄的查詢的快捷方式。
數(shù)據(jù)定義操作 表1
2.3.3 數(shù)據(jù)查詢
數(shù)據(jù)查詢是用SQL語言對數(shù)據(jù)庫表進(jìn)行查詢。查詢使用SELECT關(guān)鍵字,由SELECT語句。SELECT語句的格式如下:
SELECT[ALL|DISTINCT]<目標(biāo)列表達(dá)式>
[,<目標(biāo)列表達(dá)式>]…
FROM<表名或視圖名>[,<表名或視圖名>]…
[WHERE<條件表達(dá)式>]
[GROUPBY<列名1>[HAVING<條件表達(dá)式>]]
[ORDERBY< 列名 2>[ASC|DESC]];
單表查詢是對一單獨(dú)的一個(gè)表進(jìn)行查詢,可以查詢表中幾列或幾個(gè)元組,還可以對查詢的結(jié)果進(jìn)行分組和排序。查詢可以有查詢條件,如表2所示。
查詢條件 表2
連接查詢就是對2個(gè)及2個(gè)以上的表進(jìn)行組合查詢,查詢的過程中,需要將多個(gè)表連接在一起。連接的種類豐富,包括如下幾種。等值與非等值查詢使用邏輯操作符=、>、<、>=、<=、!=實(shí)現(xiàn),自身連接是表自己和自己進(jìn)行連接,外連接包括左外連接、右外連接、全連接,復(fù)合條件查詢包括嵌套查詢、集合查詢、復(fù)雜查詢。
數(shù)據(jù)庫系統(tǒng)目前發(fā)展非?;钴S,出現(xiàn)了各種使用環(huán)境的數(shù)據(jù)庫系統(tǒng)。
面向?qū)ο蟮臄?shù)據(jù)庫系統(tǒng)不再以關(guān)系表建模,而是以對象建模,存儲和使用的邏輯單元是對旬,是以面向?qū)ο蟮臄?shù)據(jù)模型為基礎(chǔ)。分布式數(shù)據(jù)庫系統(tǒng)是物理上分布在網(wǎng)絡(luò)中,但邏輯上是一個(gè)整體,當(dāng)前的大數(shù)據(jù)系統(tǒng),就是分布式的數(shù)據(jù)系統(tǒng),但主要以文件存儲為主。并行數(shù)據(jù)庫系統(tǒng)在并行機(jī)上運(yùn)行,且并行處理。Web數(shù)據(jù)庫系統(tǒng)更是一種以訪問形式來定義的,其內(nèi)部的數(shù)據(jù)庫系統(tǒng),可以是傳統(tǒng)的關(guān)系數(shù)據(jù)庫系統(tǒng)。
多媒體數(shù)據(jù)庫系統(tǒng)是將多媒體引入數(shù)據(jù)庫系統(tǒng),對存儲、管理、使用和表現(xiàn),進(jìn)行重新設(shè)計(jì)和組織,并提供用戶方便使用。
關(guān)系數(shù)據(jù)管理系統(tǒng),目前非常成熟,有商業(yè)產(chǎn)品的很多,如Oracle、DB 2、MSSQL Server、Sybase、MySQL、PostgreSQL 等等。國產(chǎn)的數(shù)據(jù)庫有人大金倉的Kingbase、武漢達(dá)夢的DM數(shù)據(jù)庫、東大阿爾派的數(shù)據(jù)庫管理系統(tǒng)等。
除了傳統(tǒng)的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)外,實(shí)時(shí)數(shù)據(jù)庫管理系統(tǒng)、內(nèi)存數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品也比較多。
3.1.1 數(shù)據(jù)庫特征
數(shù)據(jù)庫的數(shù)據(jù)是操作性的業(yè)務(wù)數(shù)據(jù)。數(shù)據(jù)庫用于事務(wù)處理,即聯(lián)機(jī)事務(wù)處理系統(tǒng)OLTP,數(shù)據(jù)庫的數(shù)據(jù)是描述實(shí)體、實(shí)體聯(lián)系、概念。
3.1.2 數(shù)據(jù)倉庫特征
數(shù)據(jù)倉庫用于聯(lián)機(jī)分析處理,即OLAP,為用戶提供決策支持,即決策支持系統(tǒng)DSS,最常見的應(yīng)用是商業(yè)智能BI。
數(shù)據(jù)倉庫是面向主題的,以數(shù)據(jù)立方體Cube為模型基礎(chǔ)。數(shù)據(jù)Cube是抽象概念,是用戶關(guān)心點(diǎn)的主題,一個(gè)主題通常與多個(gè)操作型信息系統(tǒng)相關(guān)。
數(shù)據(jù)倉庫也是集成的、歷史的,反映歷史變化的。
3.2.1 維度模型
數(shù)據(jù)倉庫的基本模型是數(shù)據(jù)立方體,面向的是主題的、綜合的業(yè)務(wù)領(lǐng)域,如分析銷售這一主題。數(shù)據(jù)立方體的模型,決定了數(shù)據(jù)倉庫與關(guān)系數(shù)據(jù)庫完全不一樣的建模方式,因?yàn)殛P(guān)系數(shù)據(jù)庫是以表為基礎(chǔ),是二維的平面的模型。
但在實(shí)際上,通常用關(guān)系表來表達(dá)數(shù)據(jù)立方體,這就出來了如何用二維表來表達(dá)多維的數(shù)據(jù)立方體。
3.2.2 維表
維,就是分析分析問題的角度,也是度量數(shù)據(jù)有實(shí)際意義的所在。比如,我們說銷售額500萬元,誰能明白?當(dāng)我們說某公司某品牌某型號的產(chǎn)品,2015年1月在某地方的銷售額500萬元時(shí),才會實(shí)際上的意義。那這里的產(chǎn)品、時(shí)間和地區(qū),就是3個(gè)角度,也就是3個(gè)維度。我們可以用3張二維表來存儲這樣的信息,就是維表。
在維里,我們可以看到,維是分層次的,如2015年1月,兩個(gè)層次,年和月。我們可以有月的數(shù)據(jù),然后可以向年聚合,同時(shí),有年的數(shù)據(jù),可以向月下鉆。這就是多維分析中的上鉆和下鉆的功能。
維度表里可以存儲其它不構(gòu)成層次的屬性,也可以關(guān)聯(lián)其它的維度。維度中的層次,根據(jù)業(yè)務(wù)需要可以有多個(gè)。
3.2.3 事實(shí)表
數(shù)據(jù)倉庫研究的是主題數(shù)據(jù),是面向主題的,這就是度量,也就是一個(gè)或多個(gè)同一主題下的數(shù)據(jù)值,如上述的銷售額。這個(gè)銷售額就是度量,就是主題數(shù)據(jù)。存儲這個(gè)度量的表,就叫事實(shí)表。
事實(shí)表是數(shù)據(jù)倉庫結(jié)構(gòu)中的中央表,它不僅存儲聯(lián)系事實(shí)與維度表的數(shù)字度量值,更重要的還存儲著鍵,這鍵就是事實(shí)表與維表之前的外鍵關(guān)聯(lián)關(guān)系。
3.2.4 模型結(jié)構(gòu)
事實(shí)表和維度表之間的存儲結(jié)構(gòu),根據(jù)業(yè)務(wù)模型簡單和復(fù)雜性,以及建模的需要,可以分為星型結(jié)構(gòu)、雪花型結(jié)構(gòu)。
3.2.5 星形結(jié)構(gòu)
維度表利用維度關(guān)鍵字通過事實(shí)表中的外鍵約束于事實(shí)表中的某一行,實(shí)現(xiàn)與事實(shí)表的關(guān)聯(lián)。這種結(jié)構(gòu)就使得用戶能夠很容易的從維度表中的數(shù)據(jù)分析開始,獲得維度的關(guān)鍵字,以便連接到中心的事實(shí)表,進(jìn)行查詢,這樣就減少了在事實(shí)表中掃描的數(shù)據(jù)量,以提高查詢性能。這是數(shù)據(jù)倉庫模型的最簡單的形式。
3.2.6 雪花型結(jié)構(gòu)
維度表除了具有星形模式中的維度表的功能之外,還連接對事實(shí)表進(jìn)行詳細(xì)描述的詳細(xì)類別表,詳細(xì)類別表通過對事實(shí)表在有關(guān)維度上的詳細(xì)描述達(dá)到了縮小事實(shí)表和提高查詢的目的。這是在星形模型基礎(chǔ)上更加復(fù)雜的形式。
3.2.7 數(shù)據(jù)粒度
在數(shù)據(jù)倉庫中,數(shù)據(jù)存儲在事實(shí)表中,事實(shí)表中的數(shù)據(jù)通過外鍵關(guān)聯(lián)到維度表。但這個(gè)關(guān)聯(lián),決定著數(shù)據(jù)的粒度。如2015年1月的銷售額。那這里的必須關(guān)聯(lián)到1月,而不是2015年。這里的1月就是數(shù)據(jù)的最小粒度,多維分析時(shí),這是下鉆的最底層了。最小粒度存儲的是真正的實(shí)際的數(shù)據(jù),其它粒度的數(shù)據(jù),都是通過最小粒度的數(shù)據(jù)按一定的聚合規(guī)則進(jìn)行聚合后的數(shù)據(jù),并不實(shí)際存儲。
數(shù)據(jù)集市就是企業(yè)級數(shù)據(jù)倉庫的一個(gè)子集,他面向部門級業(yè)務(wù),并且只面向某個(gè)特定的主題。為了解決靈活性與性能之間的矛盾,數(shù)據(jù)集市就是數(shù)據(jù)倉庫體系結(jié)構(gòu)中增加的一種小型的部門或工作組級別的數(shù)據(jù)倉庫。數(shù)據(jù)集市存儲為特定用戶預(yù)先計(jì)算好的數(shù)據(jù),從而滿足用戶對性能的需求。數(shù)據(jù)集市可以在一定程度上緩解訪問數(shù)據(jù)倉庫的瓶頸。
OLAP分析,是聯(lián)機(jī)分析處理,相應(yīng)于關(guān)系數(shù)據(jù)庫的事務(wù)處理OLTP。OLAP是面向主題的分析,而OLTP是面向業(yè)務(wù)的日常事務(wù)的數(shù)據(jù)處理。OLAP的目標(biāo)是分析,而OLTP的目標(biāo)是日常事務(wù)。OLAP分析的架構(gòu)如圖3所示。
OLAP分析是基于數(shù)據(jù)立方體,即多維模型。其分析方法有以下幾種。
3.4.1 數(shù)據(jù)切片(Slicing)
固定一個(gè)維的層次上的值,也就是固定該維的操作粒度,這樣就可以對維中特定的值進(jìn)行分析,如只選擇電子產(chǎn)品的銷售數(shù)據(jù),或者2010年第二季度的數(shù)據(jù)。
3.4.2 數(shù)據(jù)切塊(Dicing)
固定一個(gè)維的層次上的一個(gè)區(qū)間范圍,在該區(qū)間的數(shù)據(jù)或者某批特定值進(jìn)行分析,比如選擇2010年第一季度到2010年第二季度的銷售數(shù)據(jù),或者是某產(chǎn)品的銷售數(shù)據(jù)。
3.4.3 鉆取
數(shù)據(jù)下鉆(Drilling-down),維是有層次的,最小層次的數(shù)據(jù)粒度最小,其它層次的數(shù)據(jù)都是從最小層次聚合生成的,所以從上層往下查看更細(xì)節(jié)的數(shù)據(jù),這就是下鉆。比如通過對2010年第二季度的總銷售數(shù)據(jù)進(jìn)行鉆取來查看2010年第二季度4、5、6 每個(gè)月的消費(fèi)數(shù)據(jù)。
即數(shù)據(jù)上鉆(Drilling-up)或數(shù)據(jù)上卷(Rolling-up),鉆取的逆操作,如果從最小層向上層進(jìn)行聚合,獲取更粗粒度的數(shù)據(jù),這就是上鉆或上卷。上鉆和下鉆正好相反。
3.4.4 數(shù)據(jù)旋轉(zhuǎn)(Pivoting/Rotating)
在多維分析時(shí),各個(gè)維度所處的位置不同,對維的位置互換,就像是二維表的行列轉(zhuǎn)換,這就是旋轉(zhuǎn)。
大數(shù)據(jù)是需要新處理模式才能具有更強(qiáng)的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量、高增長率和多樣化的信息資產(chǎn)。大數(shù)據(jù)強(qiáng)調(diào)的是處理,強(qiáng)調(diào)的數(shù)據(jù)量多、來源復(fù)雜、增長快。
在維克托·邁爾-舍恩伯格及肯尼斯·庫克耶編寫的《大數(shù)據(jù)時(shí)代》[2]中大數(shù)據(jù)指不用隨機(jī)分析法(抽樣調(diào)查)這樣的捷徑,而采用所有數(shù)據(jù)進(jìn)行分析處理。大數(shù)據(jù)的4V特點(diǎn):Volume(大量)、Velocity(高速)、Variety(多樣)、Value(價(jià)值)。
大數(shù)據(jù)的分析,最終都需要可視化展現(xiàn)。但展現(xiàn)的是什么數(shù)據(jù)、知識或信息?這些知識和信息是怎么來的,如果僅僅是獲取的數(shù)據(jù)的展現(xiàn),那是沒有意義的,更何況是不現(xiàn)實(shí)的,因?yàn)榇髷?shù)據(jù)量是TB級的,無法正常展現(xiàn)。
研究和應(yīng)用大數(shù)據(jù),都是為了數(shù)據(jù)的分析。分析海量分布在各地的大數(shù)據(jù)之間潛在的邏輯關(guān)系,預(yù)測未來的趨勢,也就是潛在的知識和信息。所以,對大數(shù)據(jù)的分析,根本上是對數(shù)據(jù)的數(shù)據(jù)挖掘,再次是抽取、聚合和分類。這也是大數(shù)據(jù)技術(shù)所在。
傳統(tǒng)的應(yīng)用統(tǒng)計(jì)的統(tǒng)計(jì)方法是非常成熟的,被廣泛應(yīng)用于大數(shù)據(jù)的數(shù)據(jù)挖掘分析。大數(shù)據(jù)的分析,基于海量高質(zhì)量的數(shù)據(jù),同時(shí),依賴于分布式處理,將處理分散化后,處理的容量就可以無限增大。
4.3.1 數(shù)據(jù)采集
數(shù)據(jù)要集的工具ETL,負(fù)責(zé)將分布的、異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)如關(guān)系數(shù)據(jù)、平面數(shù)據(jù)文件等抽取到臨時(shí)中間層后進(jìn)行清洗、轉(zhuǎn)換、集成,最后加載到數(shù)據(jù)倉庫或數(shù)據(jù)集市中,成為聯(lián)機(jī)分析處理、數(shù)據(jù)挖掘的基礎(chǔ)。
傳統(tǒng)的ETL是針對數(shù)據(jù)倉庫的,為數(shù)據(jù)倉庫抽取數(shù)據(jù)。但大數(shù)據(jù)出現(xiàn)后,將ETL進(jìn)行擴(kuò)展,所有采集數(shù)據(jù)的功能都叫ETL。大數(shù)據(jù)的ETL就是從分布式的海量的數(shù)據(jù)中運(yùn)用各種算法,采集和抽取到應(yīng)用分析所需要的知識和信息。
數(shù)據(jù)存?。翰杉降臄?shù)據(jù),一般用傳統(tǒng)的關(guān)系數(shù)據(jù)庫存儲,也可以用基于NOSQL的非關(guān)系型數(shù)據(jù)庫,還可以用數(shù)據(jù)倉庫存儲。根據(jù)分析的業(yè)務(wù)需要,選擇合適的存儲方式。
4.3.2 基礎(chǔ)架構(gòu)
大數(shù)據(jù)與虛擬化服務(wù)是分不開的,既然是分布式,那沒有誰知道,大數(shù)據(jù)體系中的其它地方的數(shù)據(jù)是如何存儲,如何提供服務(wù)。這一切,都是依賴虛擬化服務(wù)提供統(tǒng)一的接口和服務(wù)。所以大數(shù)據(jù)的基礎(chǔ)架構(gòu)為云存儲、分布式文件存儲等。
4.3.3 數(shù)據(jù)處理
數(shù)據(jù)處理,是大數(shù)據(jù)的核所在。從嚴(yán)格意義上來講,大數(shù)據(jù)是沒有數(shù)據(jù)的,它的強(qiáng)大在于它的大數(shù)據(jù)處理平臺。正因?yàn)榇髷?shù)據(jù)是沒有數(shù)據(jù)的,所以它就可以包容一切地方的一切數(shù)據(jù),能如此包容的,就是這個(gè)數(shù)據(jù)處理平臺了。所以大數(shù)據(jù)采用的是分布式并行處理模式,采用的處理算法,豐富多樣,包括自然語言處理方法、統(tǒng)計(jì)分析方法等。
4.3.4 統(tǒng)計(jì)分析
運(yùn)用于大數(shù)據(jù)的統(tǒng)計(jì)分析技術(shù)有:假設(shè)檢驗(yàn)、顯著性檢驗(yàn)、差異分析、相關(guān)分析、T檢驗(yàn)、方差分析、卡方分析、偏相關(guān)分析、距離分析、回歸分析、簡單回歸分析、多元回歸分析、逐步回歸、回歸預(yù)測與殘差分析、嶺回歸、logistic回歸分析、曲線估計(jì)、因子分析、聚類分析、主成分分析、因子分析、快速聚類法與聚類法、判別分析、對應(yīng)分析、多元對應(yīng)分析(最優(yōu)尺度分析)、bootstrap技術(shù)等等。
4.3.5 數(shù)據(jù)挖掘
獲取大數(shù)據(jù)中潛在的知識和信息,就需要運(yùn)用數(shù)據(jù)挖掘技術(shù)了。數(shù)據(jù)挖掘技術(shù)包括分類(Classification)、估計(jì)(Estimation)、預(yù)測(Prediction)、相關(guān)性分組或關(guān)聯(lián)規(guī)則(Affinity grouping or association rules)、聚類(Clustering)、描述和可視化、Description and Visualization)、復(fù)雜數(shù)據(jù)類型挖掘(Text,Web,圖形圖像,視頻,音頻等)。
4.3.6 模型預(yù)測
大數(shù)據(jù)的模型有預(yù)測模型、機(jī)器學(xué)習(xí)、建模仿真,基于這些模型,可以獲取需要的知識。
4.3.7 結(jié)果呈現(xiàn)
云計(jì)算、標(biāo)簽云、關(guān)系圖等。
近年來,傳統(tǒng)的數(shù)據(jù)廠商,都不同程度地冠上大數(shù)據(jù)的標(biāo)簽,但有些廠商也開發(fā)相應(yīng)有使用意義的大數(shù)據(jù)廠品。如Teradata、IBM、Oracle、SAP 等。
下面介紹流行的兩款大數(shù)據(jù)產(chǎn)品:
①Hadoop
Hadoop是一個(gè)由Apache基金會所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。Hadoop的核心是:HDFS和MapReduce。HDFS為海量的數(shù)據(jù)進(jìn)行存儲管理,使得使用者不需要了解底層的數(shù)據(jù)存儲結(jié)構(gòu)和存儲地方。MapReduce為海量的數(shù)據(jù)提供了處理,此處理是分布式的、并行的。
Hadoop還包括數(shù)據(jù)倉庫工具Hive和分布式數(shù)據(jù)庫Hbase。
②Spark
是UCBerkeley AMP lab所開發(fā)的類Hadoop MapReduce的通用并行框架,擁有Hadoop MapReduce所具有的優(yōu)點(diǎn);但不同于MapReduce的是,支持內(nèi)存分布數(shù)據(jù)集,這就提高了由于需要頻繁讀寫HDFS而降低的性能。
Spark是以Scala語言為最佳實(shí)現(xiàn)環(huán)境,當(dāng)然java可以實(shí)現(xiàn),實(shí)際上scala就是基于java的。與Hadoop不同,Spark和Scala無縫集成,Scala可以像操作本地集合對象一樣輕松地操作分布式數(shù)據(jù)集。
Spark以內(nèi)存管理系統(tǒng)支持分布式數(shù)據(jù)集上的迭代作業(yè),但是實(shí)際上它是對Hadoop的補(bǔ)充,可以在Hadoo文件系統(tǒng)中并行運(yùn)行。通過名為Mesos的第三方集群框架可以支持此行為。
隨著互聯(lián)網(wǎng)的快速發(fā)展,互聯(lián)網(wǎng)+的大規(guī)劃應(yīng)用,工程數(shù)據(jù)量以幾何級數(shù)增長,如何處理這些大量的結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù),顯得越來越重要。工程數(shù)據(jù)庫、數(shù)據(jù)倉庫、大數(shù)據(jù),是互補(bǔ)的,誰也替代不了誰,他們將會協(xié)同發(fā)展,相互協(xié)作為應(yīng)用服務(wù)。
數(shù)據(jù)庫存儲的是事務(wù)型的日常處理的數(shù)據(jù),解決工程施工、設(shè)計(jì)、咨詢等各方面的需要。數(shù)據(jù)倉庫是面向主題的分析,為人們提供決策支持需要。大數(shù)據(jù),是海量數(shù)據(jù)的采取、抽取、統(tǒng)計(jì)、分析等等,最后形成可以使用的數(shù)據(jù)。