楊 剛 楊 凱
(陜西理工學(xué)院數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院 漢中 723000)
?
大數(shù)據(jù)關(guān)鍵處理技術(shù)綜述*
楊剛楊凱
(陜西理工學(xué)院數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院漢中723000)
摘要大數(shù)據(jù)是繼云計(jì)算、物聯(lián)網(wǎng)之后IT產(chǎn)業(yè)又一次顛覆性的技術(shù)革命,大數(shù)據(jù)的發(fā)展、研究必將改變世界。先簡(jiǎn)介大數(shù)據(jù)的概念及其特征、大數(shù)據(jù)發(fā)展歷程、大數(shù)據(jù)與云計(jì)算的關(guān)系;接著敘述了大數(shù)據(jù)分析和處理的比較成熟的平臺(tái):Spark和Hadoop;然后對(duì)大數(shù)據(jù)處理的若干關(guān)鍵技術(shù):大數(shù)據(jù)采集、大數(shù)據(jù)預(yù)處理、大數(shù)據(jù)的存儲(chǔ)及管理、大數(shù)據(jù)的分析和挖掘、大數(shù)據(jù)的統(tǒng)計(jì)分析等進(jìn)行了較系統(tǒng)的分析、歸納和探討。
關(guān)鍵詞大數(shù)據(jù); Hadoop; 數(shù)據(jù)挖掘; NoSQL數(shù)據(jù)庫
Class NumberTP309
現(xiàn)代數(shù)據(jù)的種類和規(guī)模與日俱增,大數(shù)據(jù)時(shí)代已到來。大數(shù)據(jù)對(duì)數(shù)據(jù)處理的實(shí)時(shí)性、有效性提出了更高的要求,需要根據(jù)大數(shù)據(jù)特點(diǎn)對(duì)傳統(tǒng)數(shù)據(jù)處理技術(shù)變革,形成適用于大數(shù)據(jù)收集、存儲(chǔ)、管理、處理、分析、共享和可視化的技術(shù)。本文主要?dú)w納、分析大數(shù)據(jù)處理的若干關(guān)鍵技術(shù)。
2.1大數(shù)據(jù)的概念及其特征
大數(shù)據(jù)不是一種新技術(shù)、新產(chǎn)品,而是一種新現(xiàn)象。大數(shù)據(jù)的概念較為抽象,沒有統(tǒng)一、確切的定義。麥肯錫將大數(shù)據(jù)定義為:無法在一定時(shí)間內(nèi)用傳統(tǒng)數(shù)據(jù)庫軟件工具對(duì)其內(nèi)容進(jìn)行抓取、管理和處理的數(shù)據(jù)集合[1]。維基百科定義大數(shù)據(jù)為:巨量數(shù)據(jù)、海量數(shù)據(jù),它指的是所涉及的數(shù)據(jù)量規(guī)模巨大到無法通過人工,在合理時(shí)間內(nèi)達(dá)到截取、管理、處理、并整理成為人類所能解讀的信息[2~3]。
大數(shù)據(jù)從字面來看,就是大規(guī)模的數(shù)據(jù),但數(shù)量龐大不能準(zhǔn)確定義大數(shù)據(jù)。大數(shù)據(jù)的定義要符合大數(shù)據(jù)的特點(diǎn)。當(dāng)前,較統(tǒng)一的觀點(diǎn)是4個(gè)特點(diǎn),即“4V”[4]:數(shù)據(jù)規(guī)模(Volumes)巨大、數(shù)據(jù)種類(Variety)繁多、數(shù)據(jù)價(jià)值(Value)密度低和數(shù)據(jù)處理速度(Velocity)快(1秒定律)。
2.2大數(shù)據(jù)研究的發(fā)展歷程
2012年3月,奧巴馬政府投資2億美元啟動(dòng)“大數(shù)據(jù)研究和發(fā)展計(jì)劃”。隨后谷歌、Facebook等大數(shù)據(jù)資源企業(yè)優(yōu)勢(shì)顯現(xiàn);甲骨文、IBM、微軟、Sybase、EMC、Intel等企業(yè)陸續(xù)推出大數(shù)據(jù)產(chǎn)品和方案。如甲骨文公司的Oracle NoSQL數(shù)據(jù)庫、IBM公司的InfoSphere BigInsights數(shù)據(jù)分析平臺(tái)、微軟公司W(wǎng)indows Azure上的HDInsight大數(shù)據(jù)解決方案、EMC公司的Greenplum UAP大數(shù)據(jù)引擎等。以HDFS、GFS、MapReduce、Hadoop、Storm、HBase、MongoDB為代表的一批大數(shù)據(jù)通用技術(shù)和開源項(xiàng)目迅猛發(fā)展。
2.3大數(shù)據(jù)與云計(jì)算
云計(jì)算的概念很多,綜合其他資料,可以將云計(jì)算歸納為[5]:云計(jì)算以虛擬化技術(shù)為核心,虛擬化技術(shù)將共享的硬件和軟件資源抽象化成一個(gè)統(tǒng)一的資源池,通過互聯(lián)網(wǎng)這個(gè)載體,向用戶按需地提供所需的資源。其特點(diǎn)在于多用戶共享、大數(shù)據(jù)處理與大數(shù)據(jù)存儲(chǔ)。
大數(shù)據(jù)是云計(jì)算的靈魂和升級(jí)方向,云計(jì)算為大數(shù)據(jù)提供的存儲(chǔ)的空間和訪問的渠道。大數(shù)據(jù)與云計(jì)算關(guān)系十分密切。從整體上看,大數(shù)據(jù)與云計(jì)算是相輔相成的;從技術(shù)上看,大數(shù)據(jù)植根于云計(jì)算。云計(jì)算與大數(shù)據(jù)的不同之處在于應(yīng)用的不同。
3.1Spark
1) Spark概述
Spark是一種與Hadoop相似的開源集群計(jì)算環(huán)境,但Spark在某些工作負(fù)載方面表現(xiàn)得更加優(yōu)越。Spark啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢外,它還可以優(yōu)化迭代工作負(fù)載。
Spark是在Scala語言中實(shí)現(xiàn)的,它將Scala用作其應(yīng)用程序框架。與Hadoop不同,Spark和Scala能夠緊密集成,其中Scala可以像操作本地集合對(duì)象一樣輕松地操作分布式數(shù)據(jù)集。
盡管創(chuàng)建Spark是為了支持分布式數(shù)據(jù)集上的迭代作業(yè),但是實(shí)際上它是對(duì)Hadoop的補(bǔ)充,可以在Hadoop文件系統(tǒng)中并行運(yùn)行。通過名為Mesos的第三方集群框架可以支持此行為。Spark由加州大學(xué)伯克利分校AMP實(shí)驗(yàn)室開發(fā),可用來構(gòu)建大型的、低延遲的數(shù)據(jù)分析應(yīng)用程序。
2) Spark集群計(jì)算架構(gòu)
雖然Spark與Hadoop有相似之處,但它提供了具有有用差異的一個(gè)新的集群計(jì)算框架。首先,Spark是為集群計(jì)算中的特定類型的工作負(fù)載而設(shè)計(jì),即那些在并行操作之間重用工作數(shù)據(jù)集的工作負(fù)載。為了優(yōu)化這些類型的工作負(fù)載,Spark引進(jìn)了內(nèi)存集群計(jì)算的概念,可在內(nèi)存集群計(jì)算中將數(shù)據(jù)集緩存在內(nèi)存中,以縮短訪問延遲。
Spark還引進(jìn)了名為彈性分布式數(shù)據(jù)集(RDD)的抽象。RDD是分布在一組節(jié)點(diǎn)中的只讀對(duì)象集合。這些集合是彈性的,如果數(shù)據(jù)集一部分丟失,則可以對(duì)它們進(jìn)行重建,重建部分?jǐn)?shù)據(jù)集的過程依賴于容錯(cuò)機(jī)制。RDD被表示為一個(gè)Scala對(duì)象,并且可以從文件中創(chuàng)建它。
Spark中的應(yīng)用程序稱為驅(qū)動(dòng)程序,這些驅(qū)動(dòng)程序可實(shí)現(xiàn)在單一節(jié)點(diǎn)上執(zhí)行的操作或在一組節(jié)點(diǎn)上并行執(zhí)行的操作。與Hadoop類似,Spark支持單節(jié)點(diǎn)集群或多節(jié)點(diǎn)集群。對(duì)于多節(jié)點(diǎn)操作,Spark依賴于Mesos集群管理器。Mesos為分布式應(yīng)用程序的資源共享和隔離提供了一個(gè)有效平臺(tái),該設(shè)置允許Spark與Hadoop共存于節(jié)點(diǎn)的一個(gè)共享池中。
3.2Hadoop
1) Hadoop概述
Hadoop是一個(gè)由Apache基金會(huì)所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu),用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序,充分利用集群的威力進(jìn)行高速運(yùn)算和存儲(chǔ)。它具有高可靠性、高擴(kuò)展性、高效性、高容錯(cuò)性、低成本幾個(gè)優(yōu)點(diǎn)[6]。
Hadoop實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS)。HDFS有高容錯(cuò)性的特點(diǎn),并且設(shè)計(jì)用來部署在低廉的硬件上;而且它提供高吞吐量來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集的應(yīng)用程序。Hadoop框架最核心的設(shè)計(jì)是HDFS和MapReduce[7]。HDFS為海量的數(shù)據(jù)提供了存儲(chǔ),MapReduce則為海量的數(shù)據(jù)提供了計(jì)算。Hadoop平臺(tái)基于主從式構(gòu)架,通過Namenode、Datanode、Secondary、Jobtracter和Tasktracker管理,可以運(yùn)行在幾十臺(tái)乃至幾千臺(tái)計(jì)算機(jī)上,能夠充分利用集群節(jié)點(diǎn)巨大的存儲(chǔ)和計(jì)算資源。
Hadoop強(qiáng)調(diào)的是移動(dòng)計(jì)算,HDFS將數(shù)據(jù)分塊存儲(chǔ)在集群中不同的節(jié)點(diǎn)上。計(jì)算前,Namenode分析程序需要的數(shù)據(jù)存儲(chǔ)在集群中的哪些節(jié)點(diǎn);Jobtracter將MapReduce計(jì)算任務(wù)分配給這些節(jié)點(diǎn)上的Tasktracker;Tasktracker啟動(dòng)Map程序,開啟計(jì)算任務(wù);經(jīng)過Combiner、Shuffle等過程,在Reduce階段生成計(jì)算結(jié)果。
2) Hadoop的構(gòu)成元素
作為一個(gè)分布式數(shù)據(jù)處理體系架構(gòu),Hadoop由很多元素構(gòu)成,包括HDFS、MapReduce、HBase、Hive、Zookeeper、Avro等,核心部分是HDFS分布式數(shù)據(jù)存儲(chǔ)和MapReduce的數(shù)據(jù)并存處理機(jī)制,下面介紹幾個(gè)主要的元素。
(1)HDFS
HDFS是Hadoop項(xiàng)目的核心子項(xiàng)目,是分布式計(jì)算中數(shù)據(jù)存儲(chǔ)管理的基礎(chǔ),是基于流數(shù)據(jù)模式訪問和處理超大文件的需求而開發(fā)的,可以運(yùn)行于廉價(jià)的商用服務(wù)器上。它所具有的高容錯(cuò)、高可靠性、高可擴(kuò)展性、高獲得性、高吞吐率等特征為海量數(shù)據(jù)提供了不怕故障的存儲(chǔ),為超大數(shù)據(jù)集(Large Data Set)的應(yīng)用處理帶來了很多便利。
HDFS默認(rèn)的最基本的存儲(chǔ)單位是64M的數(shù)據(jù)塊。HDFS體系結(jié)構(gòu)中有兩類節(jié)點(diǎn),一類是NameNode,又叫“元數(shù)據(jù)節(jié)點(diǎn)”;另一類是DataNode,又叫“數(shù)據(jù)節(jié)點(diǎn)”。這兩類節(jié)點(diǎn)分別承擔(dān)Master和Worker具體任務(wù)的執(zhí)行節(jié)點(diǎn)。Namenode是一個(gè)中心服務(wù)器,負(fù)責(zé)管理文件系統(tǒng)的namespace和客戶端對(duì)文件的訪問。Datanode在集群中一般是一個(gè)節(jié)點(diǎn)一個(gè),負(fù)責(zé)管理節(jié)點(diǎn)上它們附帶的存儲(chǔ)。
(2)MapReduce
MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算。2004年,Google公司最先提出MapReduce技術(shù),作為面向大數(shù)據(jù)分析和處理的并行計(jì)算模型。
MapReduce技術(shù)框架包含三層面的內(nèi)容:分布式文件系統(tǒng)、并行編程模型和并行執(zhí)行引擎。MapReduce并行編程模型把計(jì)算過程分解為兩個(gè)主要階段,即Map階段和Reduce階段[8]。MapReduce技術(shù)是一種簡(jiǎn)潔的并行計(jì)算模型,它在系統(tǒng)層面解決了擴(kuò)展性、容錯(cuò)性等問題,通過接受用戶編寫的Map函數(shù)和Reduce函數(shù),自動(dòng)地在可伸縮的大規(guī)模集群上并行執(zhí)行,從而可以處理和分析大規(guī)模的數(shù)據(jù)。MapReduce技術(shù)是非關(guān)系數(shù)據(jù)管理和分析技術(shù)的典型代表。
(3)HBase
HBase(Hadoop Database)是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的開源數(shù)據(jù)庫,它在Hadoop之上提供了類似于Bigtable的能力。
大數(shù)據(jù)處理關(guān)鍵技術(shù)一般包括:大數(shù)據(jù)采集、預(yù)處理、存儲(chǔ)及管理、分析及挖掘、可視化分析、統(tǒng)計(jì)分析等。
4.1大數(shù)據(jù)采集技術(shù)
大數(shù)據(jù)中的數(shù)據(jù)是指通過RFID射頻數(shù)據(jù)、傳感器數(shù)據(jù)、社交網(wǎng)絡(luò)交互數(shù)據(jù)及移動(dòng)互聯(lián)網(wǎng)數(shù)據(jù)等方式獲得的各種類型的結(jié)構(gòu)化、半結(jié)構(gòu)化及非結(jié)構(gòu)化的海量數(shù)據(jù),它是大數(shù)據(jù)知識(shí)服務(wù)模型的根本。
1) 數(shù)據(jù)采集
數(shù)據(jù)倉庫技術(shù)[9](即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ǔ)。數(shù)據(jù)的主要來源有:管理信息系統(tǒng)(主要為結(jié)構(gòu)化數(shù)據(jù))、Web信息系統(tǒng)(非結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù))、物理信息系統(tǒng)(傳感器、多媒體數(shù)據(jù))和科學(xué)實(shí)驗(yàn)系統(tǒng)(仿真數(shù)據(jù))等。
2) 大數(shù)據(jù)采集分層
大數(shù)據(jù)智能感知層主要包括數(shù)據(jù)傳感體系、網(wǎng)絡(luò)通信體系、傳感適配體系、智能識(shí)別體系及軟硬件資源接入系統(tǒng),實(shí)現(xiàn)對(duì)結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化的海量數(shù)據(jù)的智能化識(shí)別、定位、跟蹤、接入、傳輸、信號(hào)轉(zhuǎn)換、監(jiān)控、初步處理和管理等。必須著重攻克針對(duì)大數(shù)據(jù)源的智能識(shí)別、感知、適配、傳輸、接入等技術(shù)。
4.2大數(shù)據(jù)預(yù)處理技術(shù)
大數(shù)據(jù)預(yù)處理主要完成對(duì)已接收數(shù)據(jù)的辨析、抽取、清洗等操作。數(shù)據(jù)抽取過程可以幫助將這些復(fù)雜的數(shù)據(jù)轉(zhuǎn)化為單一的或者便于處理的構(gòu)型。清洗是指要對(duì)數(shù)據(jù)通過過濾“去噪”從而提取出有效數(shù)據(jù)。大數(shù)據(jù)預(yù)處理取得進(jìn)展的技術(shù)包括有:Deep Web技術(shù)、異構(gòu)數(shù)據(jù)集成技術(shù)、傳感器網(wǎng)絡(luò)融合技術(shù)、Web中實(shí)體識(shí)別技術(shù)等。
1) Deep Web技術(shù)
Web可以劃分為Surface Web和Deep Web兩大部分。Surface Web是指通過超鏈接可以被傳統(tǒng)搜索引擎索引到的頁面的集合。Deep Web[10](深網(wǎng))又稱不可見網(wǎng)、隱藏網(wǎng),是指互聯(lián)網(wǎng)上那些不能被標(biāo)準(zhǔn)搜索引擎索引的非表面網(wǎng)絡(luò)內(nèi)容。廣義上來說,Deep Web的內(nèi)容主要包含四個(gè)方面:通過填寫表單形成對(duì)后臺(tái)在線數(shù)據(jù)庫的查詢而得到的動(dòng)態(tài)頁面;由于缺乏被指向的超鏈接而沒有被搜索引擎索引到的頁面;需要注冊(cè)或其它限制才能訪問的內(nèi)容;Web上可訪問的非網(wǎng)頁文件,比如圖片文件、PDF和Word文檔等。
目前的通用搜索引擎不能提供對(duì)Deep Web中豐富高質(zhì)量的信息資源的搜索,必須使用全新的搜索引擎技術(shù)。Deep Web搜索引擎是一種對(duì)Deep Web中的信息進(jìn)行搜集、分析處理并提供搜索服務(wù)的信息檢索機(jī)制。Deep Web搜索引擎框架主要由六個(gè)模塊組成:數(shù)據(jù)庫自動(dòng)發(fā)現(xiàn)模塊、用戶接口、數(shù)據(jù)庫自動(dòng)選擇模塊、數(shù)據(jù)庫自動(dòng)查詢模塊、返回結(jié)果自動(dòng)抽取模塊、結(jié)果聚合模塊。
2) 異構(gòu)數(shù)據(jù)集成技術(shù)
異構(gòu)數(shù)據(jù)集成系統(tǒng)為企業(yè)解決多平臺(tái)、多結(jié)構(gòu)數(shù)據(jù)的集成問題提供了一條解決途徑。異構(gòu)數(shù)據(jù)不僅指不同的數(shù)據(jù)庫系統(tǒng)之間的數(shù)據(jù)是異構(gòu)的,而且還包括不同結(jié)構(gòu)的數(shù)據(jù)之間的異構(gòu)。數(shù)據(jù)集成是對(duì)各種異構(gòu)數(shù)據(jù)提供統(tǒng)一的表示、存儲(chǔ)和管理,因此集成后的異構(gòu)數(shù)據(jù)對(duì)用戶來說是統(tǒng)一的和無差異的。異構(gòu)數(shù)據(jù)集成系統(tǒng)的研究涉及的技術(shù)有分布式對(duì)象技術(shù)、XML、面向?qū)ο蠹夹g(shù)等。
目前分布式對(duì)象技術(shù)主要包括:CORBA(Common Object Request Broker Architecture)標(biāo)準(zhǔn)、Microsoft的COM/DCOM標(biāo)準(zhǔn)以及Sun公司的Java RMI(Java Remote Method Invocation)標(biāo)準(zhǔn)。
CORBA應(yīng)用程序非常類似于其他面向?qū)ο蟮膽?yīng)用程序。所不同的是,當(dāng)對(duì)象在另一臺(tái)機(jī)器上的時(shí)候,客戶端和服務(wù)器端必須分別通過一個(gè)特殊的層來管理網(wǎng)絡(luò)通信,在客戶端稱為Stub,在服務(wù)器端稱為Skeleton,Skeleton與ORB之間通過通信聯(lián)系。
XML(可擴(kuò)展標(biāo)志語言)是特別為Web應(yīng)用服務(wù)的SGML(通用標(biāo)識(shí)語言標(biāo)準(zhǔn))的一個(gè)重要分支。XML是一種中介標(biāo)示語言,由于XML大大提高了Internet的接入速度和查詢檢索Web數(shù)據(jù)的速度,它將逐步成為數(shù)據(jù)組織和交換的標(biāo)準(zhǔn)。基于XML數(shù)據(jù)不需要有內(nèi)部描述就能被交換和處理,用戶可以方便地進(jìn)行本地計(jì)算和處理。
3) 傳感器網(wǎng)絡(luò)融合技術(shù)
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSN)是一種分布式傳感網(wǎng)絡(luò),它的末梢是可以感知和檢查外部世界的傳感器。WSN中的傳感器通過無線方式通信,WSN的發(fā)展受到包括能量供應(yīng)、存儲(chǔ)數(shù)據(jù)量、數(shù)據(jù)處理能力、數(shù)據(jù)傳輸速率、同步率、系統(tǒng)魯棒性等諸多條件的限制和挑戰(zhàn)。其中,能量供給是WSN的最大挑戰(zhàn)。能量和能力都有限的傳感器節(jié)點(diǎn)如何實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)監(jiān)測(cè)和信息報(bào)告是WSN中需要解決的首要問題,但可以利用數(shù)據(jù)融合技術(shù)來解決上述問題。
數(shù)據(jù)融合技術(shù)是指利用計(jì)算機(jī)對(duì)按時(shí)序獲得的若干觀測(cè)信息,在一定準(zhǔn)則下加以自動(dòng)分析、綜合,以完成所需的決策和評(píng)估任務(wù)而進(jìn)行的信息處理技術(shù)。數(shù)據(jù)融合技術(shù),包括對(duì)各種信息源給出的有用信息的采集、傳輸、綜合、過濾、相關(guān)及合成,以便輔助人們進(jìn)行態(tài)勢(shì)或環(huán)境判定、規(guī)劃、探測(cè)、驗(yàn)證、診斷等。數(shù)據(jù)融合的種類主要有:數(shù)據(jù)層融合、特征層融合和決策層融合。
4.3大數(shù)據(jù)存儲(chǔ)及管理技術(shù)
大數(shù)據(jù)存儲(chǔ)與管理要用存儲(chǔ)器把采集到的數(shù)據(jù)存儲(chǔ)起來,建立相應(yīng)的數(shù)據(jù)庫,并進(jìn)行管理和調(diào)用。重點(diǎn)解決復(fù)雜結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化大數(shù)據(jù)管理與處理技術(shù)。大數(shù)據(jù)存儲(chǔ)及管理技術(shù)的重點(diǎn)內(nèi)容是開發(fā)可靠的分布式文件系統(tǒng)(DFS)、能效優(yōu)化的存儲(chǔ)、計(jì)算融入存儲(chǔ)、大數(shù)據(jù)的去冗余及高效低成本的大數(shù)據(jù)存儲(chǔ)技術(shù);突破分布式非關(guān)系型大數(shù)據(jù)管理與處理技術(shù),異構(gòu)數(shù)據(jù)的數(shù)據(jù)融合技術(shù),數(shù)據(jù)組織技術(shù);突破大數(shù)據(jù)索引技術(shù),突破大數(shù)據(jù)移動(dòng)、備份、復(fù)制等技術(shù)。目前出現(xiàn)了幾類大數(shù)據(jù)存儲(chǔ)和管理數(shù)據(jù)庫系統(tǒng),下面進(jìn)行簡(jiǎn)單介紹。
1) NoSQL數(shù)據(jù)庫
NoSQL(Not Only SQL)是一項(xiàng)全新的數(shù)據(jù)庫革命性運(yùn)動(dòng)。數(shù)據(jù)庫分為關(guān)系型數(shù)據(jù)庫、非關(guān)系型數(shù)據(jù)庫以及數(shù)據(jù)庫緩存系統(tǒng)[11]。其中非關(guān)系型數(shù)據(jù)庫主要指NoSQL數(shù)據(jù)庫,當(dāng)前主要有以下四種:鍵值存儲(chǔ)數(shù)據(jù)庫、列存儲(chǔ)數(shù)據(jù)庫、文檔型數(shù)據(jù)庫和圖形數(shù)據(jù)庫。
NoSQL數(shù)據(jù)庫在以下幾種情況下較適用:(1)數(shù)據(jù)模型比較簡(jiǎn)單;(2)需要靈活性更強(qiáng)的IT系統(tǒng);(3)對(duì)數(shù)據(jù)庫性能要求較高;(4)不需要高度的數(shù)據(jù)一致性;(5)對(duì)于給定key,比較容易映射復(fù)雜值的環(huán)境。
2) 并行數(shù)據(jù)庫
并行數(shù)據(jù)庫是指在無共享的體系結(jié)構(gòu)中進(jìn)行數(shù)據(jù)操作的數(shù)據(jù)庫系統(tǒng)。這些系統(tǒng)大部分采用了關(guān)系數(shù)據(jù)模型并且支持SQL語句查詢,為了能夠并行執(zhí)行SQL的查詢操作,系統(tǒng)中采用了兩個(gè)關(guān)鍵技術(shù):關(guān)系表的水平劃分和SQL查詢的分區(qū)執(zhí)行?,F(xiàn)有的分區(qū)策略有哈希分區(qū)、范圍分區(qū)、循環(huán)分區(qū)等,在分區(qū)存儲(chǔ)的表中處理SQL查詢需要使用基于分區(qū)的執(zhí)行策略。并行數(shù)據(jù)庫系統(tǒng)的目標(biāo)是高性能和高可用性,通過多個(gè)節(jié)點(diǎn)并行執(zhí)行數(shù)據(jù)庫任務(wù),提高整個(gè)系統(tǒng)的性能和可用性。
3) NewSQL數(shù)據(jù)庫
NewSQL是對(duì)各種新的可擴(kuò)展、高性能數(shù)據(jù)庫的簡(jiǎn)稱,這類數(shù)據(jù)庫不僅具有NoSQL對(duì)海量數(shù)據(jù)的存儲(chǔ)管理能力,還保持了傳統(tǒng)數(shù)據(jù)庫支持ACID(即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability))和SQL等特性。
NewSQL系統(tǒng)雖然在的內(nèi)部結(jié)構(gòu)變化很大,但是它們有兩個(gè)顯著的共同特點(diǎn):一是它們都支持關(guān)系數(shù)據(jù)模型;二是它們都使用SQL作為其主要的接口。已知的第一個(gè)NewSQL系統(tǒng)叫做H-Store,它是一個(gè)分布式并行內(nèi)存數(shù)據(jù)庫系統(tǒng)。
4.4大數(shù)據(jù)分析及挖掘技術(shù)
大數(shù)據(jù)分析及挖掘技術(shù)主要有:改進(jìn)已有數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)技術(shù);開發(fā)數(shù)據(jù)網(wǎng)絡(luò)挖掘、特異群組挖掘、圖挖掘等新型數(shù)據(jù)挖掘技術(shù);突破基于對(duì)象的數(shù)據(jù)連接、相似性連接等大數(shù)據(jù)融合技術(shù);突破用戶興趣分析、網(wǎng)絡(luò)行為分析、情感語義分析等面向領(lǐng)域的大數(shù)據(jù)挖掘技術(shù)。
1) 大數(shù)據(jù)的分析
大數(shù)據(jù)的分析是研究大數(shù)據(jù)的重點(diǎn),只有通過分析才能獲得深入的、有價(jià)值的信息。大數(shù)據(jù)分析的主要內(nèi)容有:(1)可視化分析。大數(shù)據(jù)可視化分析系統(tǒng)是通過三維表現(xiàn)技術(shù)來表示復(fù)雜的信息,實(shí)現(xiàn)對(duì)海量數(shù)據(jù)的立體呈現(xiàn)。數(shù)據(jù)可視化已經(jīng)提出了許多方法,這些方法可以劃分為基于幾何的技術(shù)、面向像素技術(shù)、基于圖標(biāo)的技術(shù)、基于層次的技術(shù)、基于圖像的技術(shù)和分布式技術(shù)等。(2)數(shù)據(jù)挖掘算法。挖掘算法可以深入數(shù)據(jù)內(nèi)部,挖掘出公認(rèn)的價(jià)值。(3)預(yù)測(cè)性分析。通過科學(xué)地建立模型,從而預(yù)測(cè)未來的數(shù)據(jù)。(4)語義引擎。語義引擎需要設(shè)計(jì)到有足夠的人工智能以足以從數(shù)據(jù)中主動(dòng)地提取信息。語言處理技術(shù)包括機(jī)器翻譯、情感分析、輿情分析、智能輸入、問答系統(tǒng)等。(5)數(shù)據(jù)質(zhì)量和數(shù)據(jù)管理。高質(zhì)量的數(shù)據(jù)和有效的數(shù)據(jù)管理,能夠保證分析結(jié)果的真實(shí)和有價(jià)值。
2) 大數(shù)據(jù)挖掘技術(shù)
數(shù)據(jù)挖掘就是從大量的、不完全的、有噪聲的、模糊的、隨機(jī)的實(shí)際應(yīng)用數(shù)據(jù)中,提取隱含的人們事先不知道的、但又是潛在有用的信息和知識(shí)的過程,數(shù)據(jù)挖掘有多種分類法。
根據(jù)挖掘任務(wù)可分為分類或預(yù)測(cè)模型發(fā)現(xiàn)、數(shù)據(jù)總結(jié)、聚類、關(guān)聯(lián)規(guī)則發(fā)現(xiàn)、序列模式發(fā)現(xiàn)、依賴關(guān)系或依賴模型發(fā)現(xiàn)、異常和趨勢(shì)發(fā)現(xiàn)等。
根據(jù)挖掘?qū)ο罂煞譃殛P(guān)系數(shù)據(jù)庫、面向?qū)ο髷?shù)據(jù)庫、空間數(shù)據(jù)庫、時(shí)態(tài)數(shù)據(jù)庫、文本數(shù)據(jù)源、多媒體數(shù)據(jù)庫、異質(zhì)數(shù)據(jù)庫、遺產(chǎn)數(shù)據(jù)庫以及環(huán)球網(wǎng)Web。
根據(jù)挖掘方法可粗分為:機(jī)器學(xué)習(xí)方法、統(tǒng)計(jì)方法、神經(jīng)網(wǎng)絡(luò)方法和數(shù)據(jù)庫方法。機(jī)器學(xué)習(xí)可細(xì)分為:歸納學(xué)習(xí)方法(決策樹、規(guī)則歸納等)、基于范例學(xué)習(xí)、遺傳算法等。當(dāng)前,機(jī)器學(xué)習(xí)研究與應(yīng)用中最常用的關(guān)鍵技術(shù)有:半監(jiān)督學(xué)習(xí)、遷移學(xué)習(xí)、集成學(xué)習(xí)、貝葉斯網(wǎng)絡(luò)、決策樹、統(tǒng)計(jì)學(xué)習(xí)理論與支持向量機(jī)、隱馬爾可夫模型、神經(jīng)網(wǎng)絡(luò)、k近鄰方法、序列分析、聚類、粗糙集理論、回歸模型等。其中在大數(shù)據(jù)分析中,半監(jiān)督學(xué)習(xí)、集成學(xué)習(xí)、遷移學(xué)習(xí)和概率圖模型[12](即GPA)等技術(shù)尤為重要。統(tǒng)計(jì)方法中,可細(xì)分為:回歸分析(多元回歸、自回歸等)、判別分析(貝葉斯判別、費(fèi)歇爾判別、非參數(shù)判別等)、聚類分析(系統(tǒng)聚類、動(dòng)態(tài)聚類等)、探索性分析(主元分析法、相關(guān)分析法等)等。神經(jīng)網(wǎng)絡(luò)方法中,可細(xì)分為:前向神經(jīng)網(wǎng)絡(luò)(BP算法等)、自組織神經(jīng)網(wǎng)絡(luò)(自組織特征映射、競(jìng)爭(zhēng)學(xué)習(xí)等)等。數(shù)據(jù)庫方法主要是多維數(shù)據(jù)分析或OLAP(聯(lián)機(jī)分析處理)方法,另外還有面向?qū)傩缘臍w納方法。
4.5大數(shù)據(jù)統(tǒng)計(jì)分析
1) 大數(shù)據(jù)統(tǒng)計(jì)分析流程
大數(shù)據(jù)統(tǒng)計(jì)分析完整的商業(yè)智能流程[13]如下:從各種來源的關(guān)系型數(shù)據(jù)庫出發(fā),進(jìn)行提取、轉(zhuǎn)換和整合,將數(shù)據(jù)輸入數(shù)據(jù)倉庫;再鎖定目標(biāo)數(shù)據(jù),構(gòu)造聯(lián)機(jī)分析,形成多維立方體;并進(jìn)行挖掘數(shù)據(jù),發(fā)現(xiàn)模式和規(guī)律;進(jìn)行評(píng)價(jià)、檢驗(yàn)得到知識(shí);最后進(jìn)行可視化設(shè)計(jì),得到可視化圖表。
2) 統(tǒng)計(jì)分析方法的應(yīng)用
主要采用文獻(xiàn)法中的內(nèi)容分析法,將文字的、非定量的文獻(xiàn)某種程度地轉(zhuǎn)化為定量數(shù)據(jù),則某些性質(zhì)的內(nèi)容就變成可測(cè)量和可進(jìn)行數(shù)學(xué)運(yùn)算,提高分析結(jié)果的客觀性。
對(duì)大數(shù)據(jù)可進(jìn)行多維度分析,主要基于“分組標(biāo)志”的統(tǒng)計(jì)分組和分布數(shù)列整理,得到分組數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),展開相關(guān)性分析,采取消元降維技術(shù),在相關(guān)性分析的基礎(chǔ)上進(jìn)行(多元)回歸分析和時(shí)間數(shù)列的預(yù)測(cè)分析等[14~15]。對(duì)非線性變化進(jìn)行判斷,數(shù)據(jù)擬合,進(jìn)行擬合優(yōu)良的數(shù)理趨勢(shì)模型選擇。最后確定效標(biāo),評(píng)價(jià)效度和信度。還可以進(jìn)行統(tǒng)計(jì)檢驗(yàn),進(jìn)行顯著性分析等。數(shù)據(jù)統(tǒng)計(jì)專注于建模及統(tǒng)計(jì)分析,通過概率、統(tǒng)計(jì)、離散化等數(shù)學(xué)知識(shí)建立合理模型,充分發(fā)掘數(shù)據(jù)內(nèi)容,其常用工具有SAS、SPSS等。
21世紀(jì)是大數(shù)據(jù)的時(shí)代,大數(shù)據(jù)成為變革價(jià)值、變革經(jīng)濟(jì)的中堅(jiān)力量,大數(shù)據(jù)必將改變世界。目前大數(shù)據(jù)處理涉及的相關(guān)技術(shù)較繁雜,而且許多關(guān)鍵技術(shù)正處于快速發(fā)展階段,這些越發(fā)引起了人們研究大數(shù)據(jù)的難度和興趣。大數(shù)據(jù)時(shí)代帶來的挑戰(zhàn)不僅體現(xiàn)在如何處理巨量數(shù)據(jù)從中獲取有價(jià)值的信息,也體現(xiàn)在如何加強(qiáng)大數(shù)據(jù)技術(shù)研發(fā),搶占時(shí)代發(fā)展的前沿。大數(shù)據(jù)研發(fā)目的是發(fā)展大數(shù)據(jù)技術(shù)并將其應(yīng)用到相關(guān)領(lǐng)域,通過解決巨量數(shù)據(jù)處理問題促進(jìn)其突破性發(fā)展。
參 考 文 獻(xiàn)
[1] 嚴(yán)霄鳳,張德馨.大數(shù)據(jù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013(4):1-5.
YAN Xiaofeng, ZHANG Dexin. Big Data Research[J]. Computer Technology and Development,2013(4):1-5.
[2] 孟小峰,慈祥.大數(shù)據(jù)管理:概念、技術(shù)與挑戰(zhàn)[J].計(jì)算機(jī)研究與發(fā)展,2013,50(1):146-169.
MENG Xiaofeng, CI Xiang. Big Data Management: Concepts, Technology, and Challenges[J]. Journal of Computer Research and Development,2013,50(1):146-169.
[3] 馬建光,姜巍.大數(shù)據(jù)的概念、特征及其應(yīng)用[J].國防科技,2013,34(2):10-17.
MA Jianguang, JIANG Wei. The Concept, Characteristics and Applications of Big Data[J]. National Defense Science & Technology,2013,34(2):10-17.
[4] 劉鵬,吳兆峰,胡谷雨.大數(shù)據(jù)——正在發(fā)生的深刻變革[J].中興通訊技術(shù),2013,19(4):2-7.
LIU Peng, WU Zhaofeng, HU Guyu. Big Data is Undergoing Profound Changes[J]. ZTE Technology Journal,2013,19(4):2-7.
[5] 陳杰.大數(shù)據(jù)場(chǎng)景下的云存儲(chǔ)技術(shù)與應(yīng)用[J].中興通訊技術(shù),2012,18(6):47-51.
CHEN Jie. The Cloud Storage Technology and Application in Large Data Scenarios[J]. ZTE Technology Journal,2012,18(6):47-51.
[6] 任仁.Hadoop在大數(shù)據(jù)處理中的應(yīng)用優(yōu)勢(shì)分析[J].電子技術(shù)與軟件工程,2014(15):193-194.
REN Ren. The Application Advantage Analysis of Hadoop in the Processing of Large Data[J]. Electronic Technology & Software Engineering,2014(15):193-194.
[7] 李瑞琴,鄭建國.大數(shù)據(jù)研究:現(xiàn)狀、問題、趨勢(shì)[J].現(xiàn)代商業(yè),2013(36):107-108.
LI Ruiqin, ZHENG Jianguo. Big Data Research: the Status Quo, Problems and Trends[J]. Modern Business,2013(36):107-108.
[8] 覃雄派,王會(huì)舉,杜小勇,等.大數(shù)據(jù)分析——RDBMS與Mapreduce的競(jìng)爭(zhēng)與共生[J].軟件學(xué)報(bào),2012,23(1):32-45.
TAN Xiongpai, WANG Huiju, DU Xiaoyong, et al. Big Data Analytics——Competition and Coexistence of RDBMS and Mapreduce[J]. Journal of Software,2012,23(1):32-45.
[9] 項(xiàng)軍,雷英杰.數(shù)據(jù)倉庫技術(shù)與應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2004(11):86-88,91.
XIANG Jun, LEI Yingjie. Data Warehouse Technology and Application[J]. Computer and Modernization,2004(11):86-88,91.
[10] 藕軍.Deep web搜索引擎的關(guān)鍵技術(shù)[D].合肥:合肥工業(yè)大學(xué),2007:34-35.
OU Jun. The Key Technology of Deep Web Search Engine[D]. Hefei: Hefei University of Technology,2007:34-35.
[11] 夏秀峰,趙小磊,孔慶云.MBE與大數(shù)據(jù)給PDM帶來的思考[J].制造業(yè)自動(dòng)化,2013,35(10):70-74.
XIA Xiufeng, ZHAO Xiaolei, KONG Qingyun. The Enlightenment about PDM from MBE and Dig Data[J]. Manufacturing Automation,2013,35(10):70-74.
[12] 陳康,向勇,喻超.大數(shù)據(jù)時(shí)代機(jī)器學(xué)習(xí)的新趨勢(shì)[J].電信科學(xué),2012(12):88-95.
CHEN Kang, XIANG Yong, YU Chao. The New Trend of Machine Learning in Big Data Era[J]. Telecommunications Science,2012(12):88-95.
[13] 李垚,朱亮,陳國潤(rùn).Hadoop在數(shù)據(jù)處理中的應(yīng)用[J].電信技術(shù),2013(4):34-38.
LI Yao, ZHU Liang, CHEN Guorui. The Application of the Hadoop in Data Processing[J]. Telecommunications Technology,2013(4):34-38.
[14] 吳華斌.大數(shù)據(jù)的統(tǒng)計(jì)分析淺議[J].經(jīng)濟(jì)師,2014(10):277-280.
WU Huabin. The Shallow Discussion of Statistical Analysis in Big Data[J]. China Economist,2014(10):277-280.
[15] 宗威,吳峰.大數(shù)據(jù)時(shí)代下數(shù)據(jù)質(zhì)量的挑戰(zhàn)[J].西安交通大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版),2013,33(5):38-43.
ZONG Wei, WU Feng. The Challenge of Data Quality in the Dig Data Era[J]. Journal of Xi’an Jiaotong University(Social Sciences),2013,33(5):38-43.
收稿日期:2015年10月10日,修回日期:2015年11月22日
基金項(xiàng)目:陜西省教育廳科學(xué)基金項(xiàng)目(15JK1134)資助。
作者簡(jiǎn)介:楊剛,男,碩士,副教授,研究方向:應(yīng)用統(tǒng)計(jì)、計(jì)算機(jī)應(yīng)用、區(qū)域經(jīng)濟(jì)等。楊凱,男,研究方向:信息管理與信息系統(tǒng)。
中圖分類號(hào)TP309
DOI:10.3969/j.issn.1672-9722.2016.04.030
Summary of Big Data Key Processing Technology
YANG GangYANG Kai
(School of Mathematics and Computer Science, Shanxi University of Technology, Hanzhong723000)
AbstractBig data is a disruptive technological revolution, in IT field, after the cloud computing and EPC system network, and big data development and research will change the world. The conceptions and characteristics of big data, its development course, and the relationship between big data and cloud computing are introduced. Then the more mature platform, Spark and Hadoop of big data analysis and processing are described. And some key techniques for big data processing are systematically analyzed, summarized and discussed, such as big data acquisition, big data preprocessing, big data storage and management, big data analysis and mining, and statistical analysis of big data.
Key Wordsbig data, Hadoop, data mining, NoSQL database