楊 臻 楊志宏 肖 漢
1(鄭州師范學(xué)院信息科學(xué)與技術(shù)學(xué)院 河南 鄭州 450044)2(中州大學(xué)信息工程學(xué)院 河南 鄭州 450044)
?
面向海量數(shù)據(jù)的在線流數(shù)據(jù)服務(wù)框架
楊臻1楊志宏2肖漢1
1(鄭州師范學(xué)院信息科學(xué)與技術(shù)學(xué)院河南 鄭州 450044)2(中州大學(xué)信息工程學(xué)院河南 鄭州 450044)
針對(duì)多應(yīng)用共享海量流數(shù)據(jù)的問(wèn)題,提出一個(gè)在線流數(shù)據(jù)服務(wù)框架。通過(guò)對(duì)多應(yīng)用共享流數(shù)據(jù)場(chǎng)景進(jìn)行分析和抽象,設(shè)計(jì)具有數(shù)據(jù)層、管理層和接口層的在線流數(shù)據(jù)服務(wù)框架??蚣軐⒘鲾?shù)據(jù)管理劃分為索引建立、注冊(cè)器、匹配器和內(nèi)存清理四個(gè)組成部分,并且通過(guò)一個(gè)專(zhuān)用的數(shù)據(jù)管理引擎對(duì)流數(shù)據(jù)進(jìn)行管理。框架的提出為多應(yīng)用流數(shù)據(jù)共享場(chǎng)景提供了一種統(tǒng)一管理流數(shù)據(jù)的方案。實(shí)驗(yàn)結(jié)果表明,相對(duì)與傳統(tǒng)數(shù)據(jù)庫(kù),在線流數(shù)據(jù)服務(wù)框架在流數(shù)據(jù)寫(xiě)入速度能提高近5倍,在流數(shù)據(jù)的讀取速度上提高4倍左右。
流數(shù)據(jù)在線服務(wù)海量數(shù)據(jù)管理數(shù)據(jù)服務(wù)框架數(shù)據(jù)管理引擎
進(jìn)入21世紀(jì),數(shù)據(jù)以令人驚訝的速度增長(zhǎng),我們的生活被海量數(shù)據(jù)所包圍。根據(jù)IDC 的預(yù)測(cè),在2005年到2015年這十年的時(shí)間內(nèi),全球數(shù)據(jù)總量將從2000 EB增長(zhǎng)到近8000 EB[1]。如此龐大的數(shù)據(jù)規(guī)模為數(shù)據(jù)的分析和處理提出了更多的挑戰(zhàn)。從實(shí)時(shí)采集、在線處理的角度來(lái)說(shuō),互聯(lián)網(wǎng)數(shù)據(jù)可以視為一種典型的流數(shù)據(jù)。
在互聯(lián)網(wǎng)應(yīng)用中有一種多應(yīng)用共享流數(shù)據(jù)的場(chǎng)景,多個(gè)應(yīng)用需要在一定的時(shí)效期內(nèi)訪問(wèn)該數(shù)據(jù),對(duì)其進(jìn)行在線分析和計(jì)算。這種場(chǎng)景廣泛存在于目前比較流行的互聯(lián)網(wǎng)搜索挖掘系統(tǒng)中,其難點(diǎn)主要體現(xiàn)在流數(shù)據(jù)處理的時(shí)效性和應(yīng)用的高效性兩方面。一方面,流數(shù)據(jù)源源不斷地到來(lái),隨著時(shí)間的增長(zhǎng),累積的數(shù)據(jù)規(guī)模將會(huì)非常巨大,這會(huì)對(duì)數(shù)據(jù)存儲(chǔ)造成很大的壓力;另一方面,多個(gè)應(yīng)用都需要訪問(wèn)數(shù)據(jù)。如果不能有效地組織多個(gè)應(yīng)用對(duì)流數(shù)據(jù)的處理關(guān)系,提高數(shù)據(jù)訪問(wèn)的效率,則很難使應(yīng)用的處理速度匹配上流數(shù)據(jù)處理的時(shí)效要求,因此必然導(dǎo)致部分?jǐn)?shù)據(jù)需要先存儲(chǔ)然后再重新加載處理,這將造成大量不必要的I/O開(kāi)銷(xiāo)和計(jì)算資源浪費(fèi)。為了提高流數(shù)據(jù)處理的時(shí)效性和應(yīng)用的高效性,迫切需要一種支持多應(yīng)用共享的在線流數(shù)據(jù)處理方法。
針對(duì)流數(shù)據(jù)的處理,金澈清[2]等分析了流數(shù)據(jù)的產(chǎn)生根源以及流數(shù)據(jù)速度快、規(guī)模宏大等特點(diǎn),并給出了流數(shù)據(jù)管理需要面對(duì)的主要問(wèn)題;針對(duì)流數(shù)據(jù)的存儲(chǔ),劉云生[3]等提出了一種采用本體技術(shù)來(lái)解決語(yǔ)義互操作性的流數(shù)據(jù)存儲(chǔ)框架;李子杰[4]等詳細(xì)闡述了流數(shù)據(jù)和傳統(tǒng)數(shù)據(jù)存儲(chǔ)及管理方法比較研究,雖然上述對(duì)流數(shù)據(jù)的存儲(chǔ)方面給出了很多的方法,但是對(duì)于流數(shù)據(jù)的處理,尤其是在多應(yīng)用共享的在線流數(shù)據(jù)的處理,沒(méi)有給出有效的解決方案。
針對(duì)多應(yīng)用共享在線流數(shù)據(jù)的處理問(wèn)題,本文首先對(duì)多應(yīng)用流數(shù)據(jù)共享場(chǎng)景進(jìn)行分析和抽象,提出一種通用的可應(yīng)用于多流數(shù)據(jù)共享場(chǎng)景的在線流數(shù)據(jù)服務(wù)框架,為流數(shù)據(jù)的統(tǒng)一處理提供了整合數(shù)據(jù)管理模型,為數(shù)據(jù)傳輸與計(jì)算提供標(biāo)準(zhǔn)接口。
流數(shù)據(jù)是一組順序、大量、快速、連續(xù)到達(dá)的數(shù)據(jù)序列,一般情況下,數(shù)據(jù)流可被視為一個(gè)隨時(shí)間延續(xù)而無(wú)限增長(zhǎng)的動(dòng)態(tài)數(shù)據(jù)集合[5]。流數(shù)據(jù)具有實(shí)時(shí)性、未知性和不可逆性3個(gè)特點(diǎn)[6]。流數(shù)據(jù)處理[7]是對(duì)流數(shù)據(jù)進(jìn)行傳輸、計(jì)算和存儲(chǔ)的過(guò)程。流數(shù)據(jù)傳輸提供端到端的流數(shù)據(jù)傳輸服務(wù)。在多應(yīng)用共享流數(shù)據(jù)的場(chǎng)景中,數(shù)據(jù)源將數(shù)據(jù)發(fā)布到一個(gè)消息總線上,多個(gè)應(yīng)用通過(guò)消息總線對(duì)流數(shù)據(jù)進(jìn)行訪問(wèn)。如圖1所示,一個(gè)面向互聯(lián)網(wǎng)的數(shù)據(jù)分析系統(tǒng)。分析程序會(huì)按照業(yè)務(wù)需求對(duì)數(shù)據(jù)進(jìn)行訪問(wèn),共享數(shù)據(jù)分析系統(tǒng)中的互聯(lián)網(wǎng)流數(shù)據(jù)。
圖1 互聯(lián)網(wǎng)數(shù)據(jù)分析示意圖
這種多個(gè)應(yīng)用共享流數(shù)據(jù)的場(chǎng)景存在兩個(gè)突出的特點(diǎn)。首先,互聯(lián)網(wǎng)流數(shù)據(jù)隨著時(shí)間的增長(zhǎng)會(huì)累積很大的數(shù)據(jù)量,如果無(wú)法及時(shí)對(duì)這些數(shù)據(jù)進(jìn)行在線處理的話,就需要將這些數(shù)據(jù)進(jìn)行存儲(chǔ),由此造成存儲(chǔ)的壓力。其次,流數(shù)據(jù)很難進(jìn)行存儲(chǔ)或者從存儲(chǔ)中獲取需要花費(fèi)巨大的代價(jià)。傳統(tǒng)流數(shù)據(jù)如骨干網(wǎng)絡(luò)中的數(shù)據(jù)包,無(wú)法進(jìn)行保存,互聯(lián)網(wǎng)流數(shù)據(jù)雖然可以存儲(chǔ),但如果完全依賴磁盤(pán)存儲(chǔ)系統(tǒng),則在多個(gè)應(yīng)用共享處理數(shù)據(jù)時(shí)必然要涉及到大量的I/O操作,由此造成處理效率的低下。
在典型的互聯(lián)網(wǎng)搜索挖掘業(yè)務(wù)場(chǎng)景中,應(yīng)用數(shù)目會(huì)在幾十個(gè)到幾百個(gè)之間,這些應(yīng)用需要對(duì)數(shù)據(jù)進(jìn)行不同的分析和處理。一條數(shù)據(jù)在這個(gè)過(guò)程中會(huì)被不同的應(yīng)用訪問(wèn)多次,因此數(shù)據(jù)訪問(wèn)的開(kāi)銷(xiāo)大小就成為整個(gè)流程的瓶頸。所以,多應(yīng)用共享流數(shù)據(jù)時(shí)應(yīng)具有高效性,減少不必要的存儲(chǔ)浪費(fèi)和I/O開(kāi)銷(xiāo)。
在多應(yīng)用共享流數(shù)據(jù)時(shí),每一個(gè)應(yīng)用在邏輯上都可以訪問(wèn)到一份完整的數(shù)據(jù)集合。采用流數(shù)據(jù)的多個(gè)副本可以解決共享問(wèn)題,但是隨著應(yīng)用數(shù)目的增加,流數(shù)據(jù)副本所占用的空間開(kāi)銷(xiāo)會(huì)隨之呈線性增長(zhǎng),同時(shí)維護(hù)多個(gè)流數(shù)據(jù)副本需要大量的存儲(chǔ)和計(jì)算資源。與此同時(shí),流數(shù)據(jù)會(huì)隨著時(shí)間動(dòng)態(tài)增長(zhǎng),流數(shù)據(jù)的訪問(wèn)對(duì)于實(shí)時(shí)性有很高的要求。流數(shù)據(jù)多副本的時(shí)空開(kāi)銷(xiāo)和流數(shù)據(jù)訪問(wèn)的實(shí)時(shí)性要求之間的矛盾,是解決多應(yīng)用流數(shù)據(jù)共享問(wèn)題的難點(diǎn)所在。亟需找到一種方法構(gòu)建應(yīng)用和流數(shù)據(jù)之間的橋梁,以便能夠高效便捷地對(duì)應(yīng)用與流數(shù)據(jù)進(jìn)行管理。本文設(shè)計(jì)的在線流數(shù)據(jù)服務(wù)框架采用內(nèi)存作為主要存儲(chǔ)介質(zhì),提高流數(shù)據(jù)的讀寫(xiě)速度,采用索引結(jié)構(gòu)記錄應(yīng)用可以訪問(wèn)的流數(shù)據(jù)范圍,避免了多副本帶來(lái)的空間開(kāi)銷(xiāo)。
在線流數(shù)據(jù)服務(wù)框架的設(shè)計(jì)需要滿足高效性和低耦合兩個(gè)基本原則[9]。第一,高效性的需求來(lái)自于流數(shù)據(jù)的實(shí)時(shí)性的特點(diǎn),這就要求所有的流數(shù)據(jù)處理都要在線進(jìn)行。為了滿足高效性,在線流數(shù)據(jù)服務(wù)框架的設(shè)計(jì)需要從硬件架構(gòu)和軟件算法兩個(gè)方面進(jìn)行考慮和設(shè)計(jì)。第二,低耦合是檢驗(yàn)框架通用性的標(biāo)準(zhǔn)。在線流數(shù)據(jù)服務(wù)框架應(yīng)該成為多應(yīng)用共享流數(shù)據(jù)場(chǎng)景下的通用框架。在線流數(shù)據(jù)服務(wù)框架需要提供流數(shù)據(jù)的管理和服務(wù)兩大功能。數(shù)據(jù)的管理包括數(shù)據(jù)收集、緩存、應(yīng)用注冊(cè)和數(shù)據(jù)查詢等;數(shù)據(jù)服務(wù)包括流數(shù)據(jù)交付模式、數(shù)據(jù)訪問(wèn)規(guī)則以及數(shù)據(jù)訪問(wèn)接口等。
2.1數(shù)據(jù)管理要求
在線流數(shù)據(jù)服務(wù)框架所提供的數(shù)據(jù)管理包括了索引建立、應(yīng)用注冊(cè)、數(shù)據(jù)查詢和內(nèi)存清理。
1) 索引建立。為了提高數(shù)據(jù)查詢和清理的效率,在對(duì)流數(shù)據(jù)進(jìn)行管理時(shí)需要對(duì)流數(shù)據(jù)建立索引結(jié)構(gòu)。
2) 應(yīng)用注冊(cè)。應(yīng)用需要和流數(shù)據(jù)進(jìn)行動(dòng)態(tài)地綁定。在線流數(shù)據(jù)服務(wù)框架需要提供一種應(yīng)用注冊(cè)的機(jī)制,以有效地管理應(yīng)用與流數(shù)據(jù)的動(dòng)態(tài)綁定。
3) 數(shù)據(jù)查詢。在線流數(shù)據(jù)服務(wù)框架需要向應(yīng)用提供數(shù)據(jù)查詢功能。應(yīng)用在進(jìn)行動(dòng)態(tài)綁定之后按需查詢流數(shù)據(jù)。
4) 內(nèi)存數(shù)據(jù)清理。在線流數(shù)據(jù)服務(wù)框架采用內(nèi)存作為主要存儲(chǔ)介質(zhì)。
2.2數(shù)據(jù)服務(wù)要求
在線流數(shù)據(jù)服務(wù)框架提供的流數(shù)據(jù)服務(wù)主要包括了流數(shù)據(jù)交付模式、流數(shù)據(jù)訪問(wèn)的規(guī)則和流數(shù)據(jù)的接口。
1) 流數(shù)據(jù)交付模式。為了提供異步的松耦合的在線流數(shù)據(jù)服務(wù),需要提供一種采用“拉”(Pull)方式的數(shù)據(jù)服務(wù)。采用了“拉”的數(shù)據(jù)服務(wù)模式就是讓?xiě)?yīng)用主動(dòng)發(fā)起數(shù)據(jù)請(qǐng)求,按照應(yīng)用自身的行為邏輯進(jìn)行數(shù)據(jù)的訪問(wèn)。
2) 流數(shù)據(jù)訪問(wèn)規(guī)則。在線流數(shù)據(jù)服務(wù)框架是針對(duì)多應(yīng)用共享流數(shù)據(jù)的場(chǎng)景,所以在線流數(shù)據(jù)服務(wù)框架對(duì)于每個(gè)應(yīng)用都提供一個(gè)邏輯上完整的流數(shù)據(jù)。每個(gè)應(yīng)用只能對(duì)流數(shù)據(jù)中的數(shù)據(jù)進(jìn)行一次訪問(wèn),而不能反復(fù)訪問(wèn)同一個(gè)流數(shù)據(jù)段。如圖2所示,應(yīng)用1在t1時(shí)刻完成了流數(shù)據(jù)的使用注冊(cè),那么應(yīng)用1從t1時(shí)刻起就可以使用流數(shù)據(jù),但是在t1時(shí)刻之前的數(shù)據(jù)對(duì)于應(yīng)用1來(lái)說(shuō)是不可見(jiàn)的。應(yīng)用2在t2時(shí)刻完成了流數(shù)據(jù)的使用注冊(cè),那么應(yīng)用2從t2時(shí)刻起就可以開(kāi)始使用流數(shù)據(jù)。如果應(yīng)用1已經(jīng)訪問(wèn)了從t1到t2時(shí)間段內(nèi)的數(shù)據(jù)記錄集合,那么它不能夠再次訪問(wèn)其中的數(shù)據(jù)。
圖2 數(shù)據(jù)訪問(wèn)規(guī)則示意圖
3) 流數(shù)據(jù)接口。在線流數(shù)據(jù)服務(wù)框架的流數(shù)據(jù)接口規(guī)定了應(yīng)用可以以何種條件對(duì)流數(shù)據(jù)進(jìn)行查詢?cè)L問(wèn)。在流數(shù)據(jù)接口的設(shè)計(jì)上要保證其簡(jiǎn)潔性和松耦合。流數(shù)據(jù)接口應(yīng)該提供簡(jiǎn)單的查詢條件,讓?xiě)?yīng)用進(jìn)行數(shù)據(jù)查詢。流數(shù)據(jù)接口的操作不應(yīng)涉及到流數(shù)據(jù)的具體內(nèi)容,以保證接口的松耦合。
多應(yīng)用共享數(shù)據(jù)流的場(chǎng)景可以歸納為一種典型的多對(duì)多異步數(shù)據(jù)訪問(wèn)模型。在解決這類(lèi)多對(duì)多的異步訪問(wèn)問(wèn)題時(shí)采用發(fā)布/訂閱模型是一種通用的方法。本節(jié)按照在線流數(shù)據(jù)服務(wù)的設(shè)計(jì)原則,將發(fā)布/訂閱模型作為框架的設(shè)計(jì)依據(jù),提出在線流數(shù)據(jù)服務(wù)框架。
3.1發(fā)布/訂閱模型
發(fā)布/訂閱模型是一個(gè)重要數(shù)據(jù)訪問(wèn)范式[10],可以用來(lái)解決多對(duì)多的數(shù)據(jù)生產(chǎn)和消費(fèi)問(wèn)題。該模型通過(guò)一個(gè)消息隊(duì)列和數(shù)據(jù)訪問(wèn)控制機(jī)制將應(yīng)用程序分為發(fā)布者和訂閱者,發(fā)布者負(fù)責(zé)將產(chǎn)生的消息放在消息隊(duì)列中,訂閱者可以從中獲取自己感興趣的數(shù)據(jù)。這種發(fā)布者和訂閱者的松散耦合允許更好的可擴(kuò)展性和數(shù)據(jù)的訪問(wèn)控制。
如圖3所示,發(fā)布/訂閱模型有五個(gè)重要的組成部分:發(fā)布者、訂閱者、數(shù)據(jù)容器、注冊(cè)器和匹配器。發(fā)布者產(chǎn)生數(shù)據(jù),將數(shù)據(jù)放入數(shù)據(jù)容器中。訂閱者通過(guò)注冊(cè)器向發(fā)布/訂閱系統(tǒng)發(fā)起注冊(cè)請(qǐng)求。注冊(cè)成功后訂閱者通過(guò)匹配器,訪問(wèn)查詢數(shù)據(jù)容器中的數(shù)據(jù)。
圖3 發(fā)布/訂閱模型圖
3.2框架組成
如圖4所示,在線流數(shù)據(jù)服務(wù)框架,數(shù)據(jù)源將流數(shù)據(jù)寫(xiě)入到內(nèi)存中;應(yīng)用通過(guò)注冊(cè)后使用數(shù)據(jù)管理引擎提供的服務(wù)。在線流數(shù)據(jù)服務(wù)框架包括了數(shù)據(jù)層、控制層和接口層。數(shù)據(jù)層負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和組織,是框架提供服務(wù)的保障。控制層負(fù)責(zé)處理讀寫(xiě)請(qǐng)求,是框架的邏輯處理部分。接口層負(fù)責(zé)提供網(wǎng)絡(luò)接口,供應(yīng)用使用服務(wù)。
圖4 在線流數(shù)據(jù)服務(wù)框架架構(gòu)圖
1) 數(shù)據(jù)層數(shù)據(jù)層負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和組織,是框架提供服務(wù)的保障。數(shù)據(jù)層分為數(shù)據(jù)高速通道和備份文件系統(tǒng)兩個(gè)部分。由于內(nèi)存讀寫(xiě)的系統(tǒng)開(kāi)銷(xiāo)要遠(yuǎn)遠(yuǎn)小于對(duì)磁盤(pán)的操作,所以數(shù)據(jù)高速通道以內(nèi)存作為主要存儲(chǔ)介質(zhì)。在線流數(shù)據(jù)服務(wù)框架的數(shù)據(jù)完全存在于數(shù)據(jù)高速通道中。在數(shù)據(jù)高速通道中存在著兩種類(lèi)型的數(shù)據(jù),流數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)索引結(jié)構(gòu)。流數(shù)據(jù)存儲(chǔ)是將流數(shù)據(jù)按照順序存放與數(shù)據(jù)高速通道中;數(shù)據(jù)索引結(jié)構(gòu)是使用流數(shù)據(jù)的字段建立的,以提高流數(shù)據(jù)的查詢效率。由于計(jì)算機(jī)內(nèi)存不是一個(gè)穩(wěn)定的存儲(chǔ)介質(zhì),所以在線流數(shù)據(jù)服務(wù)框架設(shè)計(jì)了備份文件系統(tǒng),對(duì)于內(nèi)存中的數(shù)據(jù)進(jìn)行備份,保證框架能夠提供穩(wěn)定的服務(wù)。
2) 控制層控制層負(fù)責(zé)處理讀寫(xiě)請(qǐng)求,按照讀寫(xiě)請(qǐng)求的語(yǔ)義進(jìn)行數(shù)據(jù)存儲(chǔ)、索引建立、應(yīng)用注冊(cè)、數(shù)據(jù)查詢和內(nèi)存清理等工作??刂茖又性O(shè)計(jì)了一個(gè)數(shù)據(jù)管理引擎,引擎中包括了索引建立、注冊(cè)器、匹配器和內(nèi)存清理四個(gè)部分。索引建立模塊負(fù)責(zé)對(duì)流數(shù)據(jù)索引結(jié)構(gòu)進(jìn)行寫(xiě)入和更新。注冊(cè)器負(fù)責(zé)處理應(yīng)用的注冊(cè)請(qǐng)求。應(yīng)用只有在進(jìn)行注冊(cè)之后才可以使用在線流數(shù)據(jù)服務(wù),注冊(cè)后的應(yīng)用由框架統(tǒng)一管理。匹配器處理應(yīng)用發(fā)起的數(shù)據(jù)查詢請(qǐng)求,匹配器對(duì)索引進(jìn)行數(shù)據(jù)查詢,然后將查詢到的數(shù)據(jù)從數(shù)據(jù)高速通道中提取出來(lái),返回給應(yīng)用。計(jì)算機(jī)的內(nèi)存空間是極度有限的,隨著時(shí)間的增長(zhǎng),駐留在內(nèi)存中的數(shù)據(jù)量會(huì)不斷增加。內(nèi)存清理模塊對(duì)內(nèi)存中的數(shù)據(jù)存儲(chǔ)和索引結(jié)構(gòu)進(jìn)行監(jiān)控和分析,及時(shí)對(duì)內(nèi)存數(shù)據(jù)和索引結(jié)構(gòu)進(jìn)行更新,將已經(jīng)過(guò)期的數(shù)據(jù)從存儲(chǔ)和索引中清除。數(shù)據(jù)管理引擎中最重要的部分是數(shù)據(jù)管理算法,數(shù)據(jù)管理算法運(yùn)行在數(shù)據(jù)引擎的四個(gè)組成部分之上,負(fù)責(zé)應(yīng)用注冊(cè)、數(shù)據(jù)查詢和內(nèi)存清理操作的相關(guān)邏輯。
3) 接口層接口層是在線流數(shù)據(jù)服務(wù)框架與客戶端進(jìn)行交互的中介。接口層定義統(tǒng)一的API接口供數(shù)據(jù)源和應(yīng)用使用。在線流數(shù)據(jù)服務(wù)框架的接口層采用了遠(yuǎn)程過(guò)程調(diào)用的方式對(duì)客戶端提供服務(wù)。接口層定義的接口類(lèi)型主要包括了讀接口、寫(xiě)接口和應(yīng)用注冊(cè)接口。
3.3流數(shù)據(jù)管理算法
流數(shù)據(jù)管理算法[11]運(yùn)行在框架的數(shù)據(jù)管理引擎之上,主要解決了框架中的索引建立、應(yīng)用注冊(cè)、數(shù)據(jù)管理和內(nèi)存數(shù)據(jù)清理四個(gè)問(wèn)題。下面將給出流數(shù)據(jù)管理算法的形式化定義。
從流數(shù)據(jù)的定義可以看出,一條流數(shù)據(jù)記錄同時(shí)包含了時(shí)間屬性和數(shù)據(jù)屬性。首先,一條流數(shù)據(jù)記錄是包含了許多屬性字段的數(shù)據(jù)。其次,在線流數(shù)據(jù)服務(wù)框架對(duì)每一條流數(shù)據(jù)記錄提供一個(gè)全局唯一的數(shù)據(jù)記錄編號(hào),這樣在在線流數(shù)據(jù)服務(wù)框架中一條流數(shù)據(jù)記錄可以采用“數(shù)據(jù)記錄編號(hào)—屬性集合”形式的“鍵—值”對(duì)來(lái)表示。最后,每條流數(shù)據(jù)還附帶著一個(gè)時(shí)間屬性,這樣一條流數(shù)據(jù)記錄就可以使用“鍵—時(shí)間—值”這種形式唯一表示。所以,在線流數(shù)據(jù)服務(wù)的數(shù)據(jù)記錄帶有三個(gè)基本屬性:數(shù)據(jù)記錄id、寫(xiě)入時(shí)間t和數(shù)據(jù)屬性集合vset。這三個(gè)基本屬性中數(shù)據(jù)記錄的時(shí)間屬性t是由流數(shù)據(jù)特點(diǎn)決定的;數(shù)據(jù)的id屬性是為了便于管理而增加的;數(shù)據(jù)的屬性集合是由數(shù)據(jù)自帶的信息和應(yīng)用邏輯決定的。為了達(dá)到和應(yīng)用最低的耦合度,在線流服務(wù)框架僅僅會(huì)對(duì)數(shù)據(jù)記錄的時(shí)間屬性和記錄id進(jìn)行操作,而不會(huì)對(duì)數(shù)據(jù)記錄的屬性集合做任何修改。
定義1數(shù)據(jù)記錄鍵值。采用一個(gè)整數(shù)標(biāo)示一條數(shù)據(jù)記錄的鍵值,用符號(hào)id來(lái)表示。在在線流數(shù)據(jù)服務(wù)中,每條數(shù)據(jù)記錄有唯一的鍵值,不會(huì)與其他數(shù)據(jù)記錄產(chǎn)生重復(fù)。
定義2數(shù)據(jù)記錄時(shí)間。在線流數(shù)據(jù)服務(wù)的時(shí)間取值范圍為(t0,∞),t0是在線流數(shù)據(jù)服務(wù)的開(kāi)始運(yùn)行時(shí)間。假設(shè)可以將在時(shí)間取值范圍內(nèi)的時(shí)間進(jìn)行無(wú)限的細(xì)分,取出時(shí)間點(diǎn){t0,t1,…,tn},那么每個(gè)ti(t=0,1,…,n)都可以作為一條數(shù)據(jù)記錄的時(shí)間值,用符號(hào)t表示。
定義3屬性集合。采用符號(hào)vset來(lái)表示在線流數(shù)據(jù)服務(wù)中數(shù)據(jù)記錄的屬性集合,用v來(lái)表示屬性。一個(gè)屬性集合由固定個(gè)數(shù)的屬性組成,即vset={v1,v2,…,vk},每條數(shù)據(jù)記錄的屬性集合中的每個(gè)屬性可以有不同的合法取值。
定義4流數(shù)據(jù)記錄集合采用數(shù)據(jù)記錄鍵值、數(shù)據(jù)記錄時(shí)間和屬性集合來(lái)唯一表示在線流數(shù)據(jù)服務(wù)中的流數(shù)據(jù)記錄,記為三元組{id,t,vs}。由所有數(shù)據(jù)記錄組成的集合,稱之為在線流數(shù)據(jù)服務(wù)中的流數(shù)據(jù)記錄集合。
應(yīng)用與在線流數(shù)據(jù)服務(wù)進(jìn)行交互主要有兩種行為:應(yīng)用注冊(cè)和數(shù)據(jù)訪問(wèn)[12]。在應(yīng)用注冊(cè)時(shí),應(yīng)用首先向在線流數(shù)據(jù)服務(wù)發(fā)起注冊(cè)請(qǐng)求,得到同意后,應(yīng)用獲得一個(gè)用于標(biāo)示自己身份的唯一應(yīng)用編號(hào),用appid標(biāo)示。在完成注冊(cè)后,應(yīng)用可以通過(guò)應(yīng)用編號(hào)向在線流數(shù)據(jù)服務(wù)發(fā)起數(shù)據(jù)查詢請(qǐng)求。由于希望構(gòu)建一個(gè)松耦合的在線流數(shù)據(jù)服務(wù)框架讓?xiě)?yīng)用合理得使用數(shù)據(jù),所以,在提供的數(shù)據(jù)服務(wù)中只會(huì)將流數(shù)據(jù)記錄的高層屬性作為數(shù)據(jù)服務(wù)的查詢條件。這些屬性包括了流數(shù)據(jù)記錄的唯一編號(hào)和流數(shù)據(jù)的時(shí)間信息。在線流數(shù)據(jù)服務(wù)將不會(huì)對(duì)流數(shù)據(jù)的屬性進(jìn)行任何的操作,也不會(huì)將其作為數(shù)據(jù)查詢的條件。
定義5應(yīng)用查詢。用q表示應(yīng)用查詢用。定義q={appid,bid,eid,bt,et}為一個(gè)五元組。其中appid表示發(fā)起查詢的應(yīng)用信息,bid表示應(yīng)用需要查詢的數(shù)據(jù)記錄集合的開(kāi)始id,eid表示應(yīng)用需要查詢的數(shù)據(jù)記錄集合的終止id,bt表示應(yīng)用需要查詢的數(shù)據(jù)記錄集合的開(kāi)始時(shí)間,et表示應(yīng)用需要查詢的數(shù)據(jù)記錄集合的終止時(shí)間。
框架中規(guī)定了如下三種具有合法語(yǔ)義的應(yīng)用查詢:
1) 已注冊(cè)的應(yīng)用按照數(shù)據(jù)記錄的id區(qū)間進(jìn)行數(shù)據(jù)查詢。符合這種查詢的應(yīng)用查詢形如q={appid,bid,eid,null,null},其中appid是應(yīng)用編號(hào),bid是需要查詢的數(shù)據(jù)集合的開(kāi)始id,eid是需要查詢的數(shù)據(jù)集合的終止id,數(shù)據(jù)記錄的時(shí)間屬性設(shè)置為空,這樣在線流數(shù)據(jù)服務(wù)就會(huì)為應(yīng)用編號(hào)為appid的應(yīng)用查詢數(shù)據(jù)記錄id從bid到eid的數(shù)據(jù)記錄。
2) 已注冊(cè)的應(yīng)用按照數(shù)據(jù)記錄的時(shí)間區(qū)間進(jìn)行數(shù)據(jù)查詢。符合這種查詢的應(yīng)用查詢形如q={appid,null,null,bt,et},其中appid是應(yīng)用編號(hào),數(shù)據(jù)記錄的id屬性設(shè)置為空,bt是需要查詢的數(shù)據(jù)集合的開(kāi)始時(shí)間,et是需要查詢的數(shù)據(jù)集合的終止時(shí)間,這樣在線流數(shù)據(jù)服務(wù)就會(huì)為應(yīng)用編號(hào)為appid的應(yīng)用查詢數(shù)據(jù)記錄時(shí)間從bt到et的數(shù)據(jù)記錄。
3) 已注冊(cè)的應(yīng)用按照數(shù)據(jù)記錄的id和數(shù)據(jù)記錄的時(shí)間兩個(gè)條件同時(shí)進(jìn)行查詢。符合這種查詢的應(yīng)用查詢形如q={appid,bid,eid,bt,et},其中appid是應(yīng)用編號(hào),bid是需要查詢的數(shù)據(jù)集合的開(kāi)始id,eid是需要查詢的數(shù)據(jù)集合的終止id,bt是需要查詢的數(shù)據(jù)集合的開(kāi)始時(shí)間,et是需要查詢的數(shù)據(jù)集合的終止時(shí)間,在線流數(shù)據(jù)服務(wù)就會(huì)為應(yīng)用編號(hào)為appid的應(yīng)用查詢,數(shù)據(jù)記錄id從bid到eid,時(shí)間從bt到et的數(shù)據(jù)記錄。
在線流數(shù)據(jù)服務(wù)框架能夠提供高效的數(shù)據(jù)管理和數(shù)據(jù)服務(wù)的關(guān)鍵是流數(shù)據(jù)管理算法的設(shè)計(jì)。流數(shù)據(jù)管理算法需要完成三個(gè)主要任務(wù):應(yīng)用注冊(cè),數(shù)據(jù)查詢和內(nèi)存清理。
1) 應(yīng)用注冊(cè)問(wèn)題。應(yīng)用注冊(cè)是應(yīng)用能夠使用流數(shù)據(jù)服務(wù)的先決條件,這樣可以保證應(yīng)用主動(dòng)地和流數(shù)據(jù)進(jìn)行動(dòng)態(tài)綁定,能夠保證流數(shù)據(jù)服務(wù)使用的安全。當(dāng)一個(gè)應(yīng)用向流數(shù)據(jù)服務(wù)提起注冊(cè)申請(qǐng)時(shí),流數(shù)據(jù)管理算法需要對(duì)應(yīng)用進(jìn)行驗(yàn)證,然后為其分配一個(gè)全局唯一的appid,在后續(xù)的操作中,應(yīng)用就可以使用這個(gè)appid構(gòu)造查詢請(qǐng)求。
2) 數(shù)據(jù)查詢問(wèn)題。應(yīng)用會(huì)按照自己的業(yè)務(wù)需求向在線流數(shù)據(jù)服務(wù)發(fā)起三種形式的數(shù)據(jù)查詢。流數(shù)據(jù)管理算法在驗(yàn)證應(yīng)用查詢的合法性之后,需要按照應(yīng)用查詢的語(yǔ)言,快速高效地進(jìn)行數(shù)據(jù)查詢。
3) 內(nèi)存清理問(wèn)題。在線流數(shù)據(jù)服務(wù)的主要存儲(chǔ)介質(zhì)是計(jì)算機(jī)內(nèi)存。但是計(jì)算機(jī)內(nèi)存是昂貴的計(jì)算資源,不可能無(wú)限量使用。所以,內(nèi)存的使用直接關(guān)系到在線流數(shù)據(jù)服務(wù)的質(zhì)量。每個(gè)應(yīng)用只能對(duì)流數(shù)據(jù)中的數(shù)據(jù)進(jìn)行一次訪問(wèn),而不能反復(fù)訪問(wèn)同一個(gè)流數(shù)據(jù)段[13]。而當(dāng)一條數(shù)據(jù)記錄被所有的應(yīng)用使用后就無(wú)需再停留在在線流數(shù)據(jù)服務(wù)系統(tǒng)中。內(nèi)存清理問(wèn)題就是要設(shè)計(jì)一種合理的內(nèi)存清理機(jī)制,保證在線流數(shù)據(jù)服務(wù)中內(nèi)存空間的有效利用。
4.1系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
本節(jié)以在線流數(shù)據(jù)服務(wù)框架為設(shè)計(jì)依據(jù),實(shí)現(xiàn)了一個(gè)在線流數(shù)據(jù)服務(wù)系統(tǒng)。系統(tǒng)采用內(nèi)存作為主要存儲(chǔ)介質(zhì),實(shí)現(xiàn)了在線流數(shù)據(jù)管理框架的索引建立、注冊(cè)器、匹配器和數(shù)據(jù)清理四個(gè)部分。系統(tǒng)采用C/S結(jié)構(gòu),通過(guò)網(wǎng)絡(luò)接口對(duì)數(shù)據(jù)源和應(yīng)用提供數(shù)據(jù)讀寫(xiě)服務(wù)。系統(tǒng)分為流數(shù)據(jù)服務(wù)端和客戶端兩個(gè)部分,兩者通過(guò)網(wǎng)絡(luò)數(shù)據(jù)接口進(jìn)行通信。
圖5 系統(tǒng)實(shí)現(xiàn)架構(gòu)圖
根據(jù)在線服務(wù)框架的規(guī)范,系統(tǒng)有索引模塊、注冊(cè)模塊、匹配模塊和內(nèi)存清理模塊四個(gè)基本的功能模塊。系統(tǒng)將數(shù)據(jù)高速通道在計(jì)算機(jī)內(nèi)存中實(shí)現(xiàn),四個(gè)功能模塊會(huì)對(duì)數(shù)據(jù)高速通道中的數(shù)據(jù)進(jìn)行操作和處理。下面將對(duì)服務(wù)端的各個(gè)模塊的功能進(jìn)行介紹。如圖5所示,系統(tǒng)的服務(wù)器端包括:索引建立、注冊(cè)、匹配和內(nèi)存回收四個(gè)功能模塊。
1) 索引模塊索引模塊的功能是對(duì)寫(xiě)入系統(tǒng)的數(shù)據(jù)建立索引結(jié)構(gòu),支持?jǐn)?shù)據(jù)的高效管理和使用。索引模塊的功能包括三個(gè)方面:(1) 對(duì)于寫(xiě)入到系統(tǒng)中的數(shù)據(jù),索引模塊要對(duì)其進(jìn)行處理,抽取出建立索引所需要的屬性,并增加到索引結(jié)構(gòu)中;(2) 索引結(jié)構(gòu)提供按照ID和時(shí)間兩種條件進(jìn)行數(shù)據(jù)查詢。索引結(jié)構(gòu)可以按照ID和時(shí)間對(duì)數(shù)據(jù)進(jìn)行查詢,并且將查詢得到的數(shù)據(jù)區(qū)間返回給調(diào)用者;(3) 索引結(jié)構(gòu)用于查找需要被刪除的數(shù)據(jù)區(qū)間。當(dāng)系統(tǒng)要進(jìn)行內(nèi)存數(shù)據(jù)清理操作時(shí),需要通過(guò)索引結(jié)構(gòu)查詢出需要?jiǎng)h除的數(shù)據(jù)區(qū)間。
2) 注冊(cè)模塊注冊(cè)模塊是系統(tǒng)對(duì)應(yīng)用資格進(jìn)行管理的模塊。應(yīng)用在訪問(wèn)系統(tǒng)之前需要先向注冊(cè)模塊發(fā)起注冊(cè)請(qǐng)求。注冊(cè)模塊會(huì)對(duì)應(yīng)用的注冊(cè)請(qǐng)求進(jìn)行處理,若應(yīng)用已經(jīng)出現(xiàn)在系統(tǒng)的注冊(cè)表中,那么注冊(cè)模塊會(huì)將注冊(cè)表項(xiàng)中的應(yīng)用標(biāo)識(shí)返回。如果應(yīng)用不在系統(tǒng)的注冊(cè)表中,那么系統(tǒng)會(huì)根據(jù)應(yīng)用的名稱為其分配一個(gè)唯一的應(yīng)用標(biāo)識(shí)號(hào),并且返回。應(yīng)用可以通過(guò)注冊(cè)模塊返回的應(yīng)用標(biāo)識(shí)號(hào)和系統(tǒng)進(jìn)行交互。
3) 匹配模塊匹配模塊負(fù)責(zé)對(duì)應(yīng)用查詢請(qǐng)求進(jìn)行解析并且在索引結(jié)構(gòu)上進(jìn)行數(shù)據(jù)查詢。支持?jǐn)?shù)據(jù)記錄ID 和時(shí)間兩種條件的組合數(shù)據(jù)查詢。查詢請(qǐng)求有三種:僅根據(jù)數(shù)據(jù)ID查詢、僅根據(jù)數(shù)據(jù)時(shí)間查詢和同時(shí)根據(jù)數(shù)據(jù)ID和數(shù)據(jù)時(shí)間查詢。匹配模塊會(huì)根據(jù)查詢的不同語(yǔ)義,選擇不同的查詢方式,最后將查詢的結(jié)果進(jìn)行返回。
4) 內(nèi)存清理模塊內(nèi)存清理模塊的功能是對(duì)數(shù)據(jù)高速通道中的無(wú)用數(shù)據(jù)記錄進(jìn)行刪除。在系統(tǒng)中,當(dāng)一條數(shù)據(jù)記錄被所有的應(yīng)用訪問(wèn)過(guò),這條數(shù)據(jù)就需要從數(shù)據(jù)高速通道中被刪除,來(lái)保證內(nèi)存有充足的空間。
4.2系統(tǒng)讀寫(xiě)性能分析
在系統(tǒng)寫(xiě)性能實(shí)驗(yàn)中,我們采用ORACLE數(shù)據(jù)庫(kù)作為本系統(tǒng)的比較對(duì)象,在實(shí)驗(yàn)環(huán)境中測(cè)試兩者的數(shù)據(jù)讀寫(xiě)性能。實(shí)驗(yàn)環(huán)境的系統(tǒng)部署方式如圖6所示,整個(gè)實(shí)驗(yàn)環(huán)境由6架計(jì)算機(jī)組成,其中有4架作為客戶端分別向本系統(tǒng)和ORACLE數(shù)據(jù)庫(kù)寫(xiě)入數(shù)據(jù),另外2架計(jì)算機(jī)分別部署本系統(tǒng)和ORACLE數(shù)據(jù)庫(kù)。各臺(tái)計(jì)算機(jī)之間采用千兆以太網(wǎng)進(jìn)行互聯(lián)。在實(shí)驗(yàn)環(huán)境中所采用的計(jì)算機(jī)都有相同的硬件配置。
圖6 讀寫(xiě)性能實(shí)驗(yàn)部署圖
對(duì)比實(shí)驗(yàn)的具體操如下:1) 實(shí)驗(yàn)分別針對(duì)本系統(tǒng)和ORACLE數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行讀寫(xiě)操作。2) 每次實(shí)驗(yàn)中,每個(gè)客戶端一共讀寫(xiě)1GB數(shù)據(jù),每個(gè)系統(tǒng)在一次實(shí)驗(yàn)過(guò)程中一共需要接收或者發(fā)送4 GB數(shù)據(jù)。3) 每個(gè)客戶端的1 GB數(shù)據(jù)分成16次讀取或者寫(xiě)入。4) 4個(gè)客戶端并發(fā)地對(duì)系統(tǒng)進(jìn)行讀寫(xiě)數(shù)據(jù)。
表1中顯示的是4個(gè)客戶端對(duì)本系統(tǒng)和ORACLE進(jìn)行一次數(shù)據(jù)寫(xiě)入所花費(fèi)的平均耗時(shí)。從表1中可以看到,客戶端對(duì)ORACLE數(shù)據(jù)庫(kù)進(jìn)行寫(xiě)入,平均的耗時(shí)是9.75 s,而對(duì)本系統(tǒng)進(jìn)行數(shù)據(jù)寫(xiě)入的平均耗時(shí)僅為1.69 s,寫(xiě)本系統(tǒng)的平均時(shí)間約占寫(xiě)ORACLE數(shù)據(jù)庫(kù)的平均時(shí)間的17.3%(1.69 s/9.75 s≈0.173)。
表1 客戶端寫(xiě)入(64MB數(shù)據(jù))平均耗時(shí)對(duì)比表 單位:s
下面測(cè)試4個(gè)客戶端分別從ORACLE數(shù)據(jù)庫(kù)和本系統(tǒng)寫(xiě)入數(shù)據(jù)的總體時(shí)間對(duì)比,對(duì)每個(gè)系統(tǒng)寫(xiě)入4 GB數(shù)據(jù),從表2中可以看出,4個(gè)客戶端從ORACLE數(shù)據(jù)庫(kù)中寫(xiě)入4 GB數(shù)據(jù),一共使用了158.56 s。而從本系統(tǒng)中寫(xiě)入4 GB的數(shù)據(jù),一共花費(fèi)了27.51 s。在寫(xiě)入等量數(shù)據(jù)時(shí),ORACLE數(shù)據(jù)庫(kù)所花費(fèi)的時(shí)間約為本系統(tǒng)的6.6倍。本系統(tǒng)的寫(xiě)數(shù)據(jù)性能要明顯優(yōu)于ORACLE數(shù)據(jù)庫(kù)。
表2 寫(xiě)本系統(tǒng)和讀ORACLE花費(fèi)時(shí)間表
對(duì)寫(xiě)入本系統(tǒng)和ORACLE系統(tǒng)的時(shí)間差異進(jìn)行分析,主要有兩個(gè)原因?qū)е逻@種性能上的差異。首先,本系統(tǒng)通過(guò)對(duì)數(shù)據(jù)的高效組織使得所有操作可以完全在內(nèi)存中完成。ORACLE數(shù)據(jù)庫(kù)的數(shù)據(jù)操作采用的是緩存加磁盤(pán)的方式,需要進(jìn)行磁盤(pán)I/O操作。其次,寫(xiě)入到本系統(tǒng)中的數(shù)據(jù),系統(tǒng)僅僅對(duì)數(shù)據(jù)的ID 和時(shí)間字段進(jìn)行處理,而不會(huì)去改變?cè)袛?shù)據(jù)記錄的組織結(jié)構(gòu)。而ORACLE數(shù)據(jù)庫(kù)則要求數(shù)據(jù)按照一定的規(guī)則映射到表中的每個(gè)屬性字段上。因此,數(shù)據(jù)寫(xiě)入ORACLE數(shù)據(jù)庫(kù)的速度相對(duì)于本系統(tǒng)就會(huì)慢的多。
表3中顯示的是4個(gè)客戶端對(duì)本系統(tǒng)和ORACLE進(jìn)行一次數(shù)據(jù)讀取所花費(fèi)的平均耗時(shí)。從表3中可以看到,客戶端對(duì)ORACLE數(shù)據(jù)進(jìn)行讀取,平均的耗時(shí)是4.5 s,而對(duì)本系統(tǒng)進(jìn)行數(shù)據(jù)讀取的耗時(shí)僅為1 s,讀本系統(tǒng)的平均時(shí)間約占讀ORACLE數(shù)據(jù)庫(kù)的平均時(shí)間的22.2%(1 s/4.5 s≈0.22)。
表3 客戶端讀取(64MB數(shù)據(jù))平均耗時(shí)對(duì)比表 單位:s
下面測(cè)試4個(gè)客戶端分別從ORACLE數(shù)據(jù)庫(kù)和本系統(tǒng)中讀取數(shù)據(jù),對(duì)每個(gè)系統(tǒng)讀取4 GB數(shù)據(jù)。從表4中可以看出,4個(gè)客戶端從ORACLE數(shù)據(jù)庫(kù)中讀取4 GB數(shù)據(jù),一共使用了68.75 s。而從本系統(tǒng)中讀取4 GB的數(shù)據(jù),一共花費(fèi)了18.18 s。在讀取等量數(shù)據(jù)時(shí),ORACLE數(shù)據(jù)庫(kù)所花費(fèi)的時(shí)間約為本系統(tǒng)的3.8 倍。本系統(tǒng)的讀取性能要明顯優(yōu)于ORACLE數(shù)據(jù)庫(kù)。
表4 讀系統(tǒng)和讀ORACLE花費(fèi)時(shí)間表
客戶端對(duì)于本系統(tǒng)和ORACLE數(shù)據(jù)庫(kù)的讀取速度的巨大差距主要是由于本的數(shù)據(jù)完全存儲(chǔ)于內(nèi)存中,對(duì)本讀取數(shù)據(jù)實(shí)際上是將大塊的內(nèi)存空間中的數(shù)據(jù)進(jìn)行整體讀取。而從ORACLE數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)則需要經(jīng)過(guò)磁盤(pán)的I/O。
本文分析了多應(yīng)用流數(shù)據(jù)共享存在的流數(shù)據(jù)時(shí)空開(kāi)銷(xiāo)與實(shí)時(shí)性的矛盾,提出在線流數(shù)據(jù)的三層架構(gòu)來(lái)解決這個(gè)問(wèn)題。在三個(gè)層次中,數(shù)據(jù)層提供了數(shù)據(jù)的儲(chǔ)存保障;控制層中的數(shù)據(jù)管理引擎負(fù)責(zé)流數(shù)據(jù)的管理;接口層負(fù)責(zé)提供網(wǎng)絡(luò)調(diào)用接口。運(yùn)行在控制層中的數(shù)據(jù)管理引擎上的數(shù)據(jù)管理算法是整個(gè)框架的核心部分,本文對(duì)算法進(jìn)行了形式化的定義,闡述了完成的應(yīng)用注冊(cè)、數(shù)據(jù)查詢和內(nèi)存清理三個(gè)問(wèn)題。在線流數(shù)據(jù)服務(wù)框架的提出,為多應(yīng)用共享流數(shù)據(jù)問(wèn)題提供了一種通用的解決方案,能夠使流數(shù)據(jù)源,應(yīng)用和流數(shù)據(jù)之間以一種低耦合的方式結(jié)合起來(lái)。在線流數(shù)據(jù)服務(wù)框架以內(nèi)存作為主要存儲(chǔ),縮短了數(shù)據(jù)的讀寫(xiě)開(kāi)銷(xiāo);以數(shù)據(jù)標(biāo)識(shí)、時(shí)間和數(shù)據(jù)三元組的數(shù)據(jù)模型來(lái)表示數(shù)據(jù)記錄,提供了對(duì)數(shù)據(jù)標(biāo)識(shí)和時(shí)間的查詢操作,而不對(duì)原始數(shù)據(jù)進(jìn)行操作,使得框架可以不依賴于具體數(shù)據(jù)類(lèi)型而存在。
[1] Gantz J,Reinsel D.Extracting value from chaos[M].New York: IDC iView EMC,2011.
[2] 金澈清,錢(qián)衛(wèi)寧,周傲英,等.流數(shù)據(jù)分析與管理綜述[J].軟件學(xué)報(bào),2004,15(8):1172-1181.
[3] 劉云生,鄧華鋒,代一塵,等.存儲(chǔ)特定流數(shù)據(jù)的通用框架[J].華中科技大學(xué)學(xué)報(bào):自然科學(xué)版,2005,33(S1):253-256.
[4] 李子杰,鄭誠(chéng).流數(shù)據(jù)和傳統(tǒng)數(shù)據(jù)存儲(chǔ)及管理方法比較研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009,19(4):101-104.
[5] 胡彧,閆巧梅.基于滑動(dòng)窗口的流數(shù)據(jù)聚類(lèi)算法研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(21):5621-5623.
[6] Chang F,Dean J,Ghemawat S,et al.Bigtable:A distributed storage system for structured data[J].ACM Transactions on Computer Systems,2008,26(2):205-218.
[7] 楊菊華.社會(huì)統(tǒng)計(jì)分析與數(shù)據(jù)處理技術(shù):STATA軟件的應(yīng)用[M].中國(guó)人民大學(xué)出版社,2008.
[8] Neumeyer L,Robbins B,Nair A,et al.S4:Distributed stream computing platform[C]//2010 IEEE International Conference on Data Mining Workshops.New York:IEEE,2010:170-177.
[9] Zhou Y,Ooi B,Tan K L.Disseminating streaming data in a dynamic environment: an adaptive and cost-based approach[J].Vldb Journal,2008,6(17):1465-1483.
[10] 周佳駿,馬瑞興,王峰,等.P2P網(wǎng)絡(luò)下的可移動(dòng)情報(bào)發(fā)布/訂閱模型[J].情報(bào)雜志,2011,30(6):168-172.
[11] Mehmed Kantardzic,Joung Woo Ryu,Chamila Walgampaya.Building a new classifier in an ensemble using streaming unlabeled data[C]//Proceedings of the 23rd international conference on Industrial engineering and other applications of applied intelligent systems.Heidelberg:Springer-Verlag,2011:77-86.
[12] Xun Yi,Elisa Bertino.Private searching for single and conjunctive keywords on streaming data[C]//Proceedings of the 10th annual ACM workshop on Privacy in the electronic society (WPES’11).New York,NY,USA:ACM,2011:153-158.
[13]ThiagoLGomes,SallesVGMagalh?es,MarcusVAAndrade,etal.Computingthedrainagenetworkonhugegridterrains[C]//Proceedingsofthe1stACMSIGSPATIALInternationalWorkshoponAnalyticsforBigGeospatialData(BigSpatial’12).NewYork,NY,USA:ACM,2012:53-60.
[14]JuanDu,NidhiShah,XiaohuiGu.Adaptivedata-drivenserviceintegrityattestationformulti-tenantcloudsystem[C]//ProceedingsoftheNineteenthInternationalWorkshoponQualityofService(IWQoS’11).Piscataway,NJ,USA:IEEEPress,2011:103-122.
MASSIVE DATA-ORIENTED ONLINE STREAMING DATA SERVICE FRAMEWORK
Yang Zhen1Yang Zhihong2Xiao Han1
1(SchoolofInformationScienceandTechnology,ZhengzhouNormalUniversity,Zhengzhou450044,Henan,China)2(SchoolofInformationEngineering,ZhongzhouUniversity,Zhengzhou450044,Henan,China)
To handle the problem of sharing massive streaming data between different applications, we proposed an online streaming data service framework. By analysing and abstracting the scene of sharing streaming data by multi-application, we designed a three-tier online streaming data service framework consisting of data tier, management tier and interface tier. The framework divides the streaming data management into four components including index building, registrar, matcher and memory cleaning, and manages the streaming data by a special data management engine. The presentation of the framework gave a solution of uniform streaming data management to the scene of streaming data sharing by multi-application. Experimental results showed that, relative to traditional database, the writing speed of the proposed service framework increased nearly 5 times, and the reading speed increased by 4 times.
Streaming dataOnline serviceMassive data managementData service frameworkData management engine
2014-08-06。河南省重點(diǎn)科技攻關(guān)項(xiàng)目(1321023100 03);中國(guó)博士后科學(xué)基金項(xiàng)目(2012M510110)。楊臻,講師,主研領(lǐng)域:數(shù)據(jù)挖掘,圖像處理。楊志宏,副教授。肖漢,教授。
TP391
A
10.3969/j.issn.1000-386x.2016.03.012