海量數(shù)據(jù)高速緩存的方法及裝置制造方法
【專利摘要】本發(fā)明適用于數(shù)據(jù)處理【技術(shù)領(lǐng)域】,提供了一種海量數(shù)據(jù)高速緩存的方法及裝置,該方法包括:將數(shù)據(jù)庫(kù)中獲取的原始數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù),并將轉(zhuǎn)換后的數(shù)據(jù)以mat文件格式緩存;在接收到用戶的數(shù)據(jù)請(qǐng)求信息時(shí),判斷所緩存的mat文件中是否存在與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的全部數(shù)據(jù);若否,利用統(tǒng)計(jì)模型算法,從所述數(shù)據(jù)庫(kù)中獲取缺失的數(shù)據(jù);將所述缺失的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù)后填充到所述mat文件中,并將填充后的所述mat文件中與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的數(shù)據(jù)反饋給所述用戶;將所述缺失的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù)后以mat文件格式緩存。通過(guò)本發(fā)明,可大量減少數(shù)據(jù)存儲(chǔ)冗余,提高數(shù)據(jù)存儲(chǔ)和讀取的效率。
【專利說(shuō)明】海量數(shù)據(jù)高速緩存的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)據(jù)處理【技術(shù)領(lǐng)域】,尤其涉及海量數(shù)據(jù)高速緩存的方法及裝置。
【背景技術(shù)】
[0002]隨著大數(shù)據(jù)時(shí)代的來(lái)臨,對(duì)海量數(shù)據(jù)的處理及存儲(chǔ)的需求越來(lái)越大。目前主要采用關(guān)系型數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)和處理海量數(shù)據(jù)。然而,由于關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)的是記錄型數(shù)據(jù),容易存在大量的數(shù)據(jù)冗余,在統(tǒng)計(jì)分析時(shí)需要進(jìn)行數(shù)據(jù)轉(zhuǎn)換才可以使用,很不方便。而且,關(guān)系型數(shù)據(jù)庫(kù)請(qǐng)求不同的數(shù)據(jù)需要關(guān)聯(lián)不同的表,單獨(dú)做查詢接口,獲取數(shù)據(jù)效率較低。另夕卜,雖然關(guān)系型數(shù)據(jù)庫(kù)提供了內(nèi)存級(jí)別的緩存功能,在數(shù)據(jù)請(qǐng)求時(shí)會(huì)在服務(wù)器的內(nèi)存中將數(shù)據(jù)緩存起來(lái),下次相同的請(qǐng)求速度會(huì)加快很多。但是這種內(nèi)存緩存會(huì)受到服務(wù)器內(nèi)存大小的限制,存在緩存容量的瓶頸。
【發(fā)明內(nèi)容】
[0003]本發(fā)明實(shí)施例提供一種海量數(shù)據(jù)高速緩存的方法,以解決現(xiàn)有技術(shù)采用關(guān)系型數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)和處理海量數(shù)據(jù),容易存在大量的數(shù)據(jù)冗余,且不適合統(tǒng)計(jì)分析平臺(tái)進(jìn)行數(shù)據(jù)處理的問(wèn)題。
[0004]本發(fā)明實(shí)施例的第一方面,提供一種海量數(shù)據(jù)高速緩存的方法,所述方法包括:
[0005]將數(shù)據(jù)庫(kù)中獲取的原始數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù),并將轉(zhuǎn)換后的數(shù)據(jù)以mat文件格式緩存;
[0006]在接收到用戶的數(shù)據(jù)請(qǐng)求信息時(shí),判斷所緩存的mat文件中是否存在與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的全部數(shù)據(jù);
[0007]若否,從所述數(shù)據(jù)庫(kù)中獲取缺失的數(shù)據(jù),所述缺失的數(shù)據(jù)為所緩存的mat文件中缺失的與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的數(shù)據(jù);
[0008]將所述缺失的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù)后填充到所述mat文件中,并將填充后的所述mat文件中與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的數(shù)據(jù)反饋給所述用戶,所述mat文件為與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的文件;
[0009]將所述缺失的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù)后以mat文件格式緩存。
[0010]本發(fā)明實(shí)施例的第二方面,一種海量數(shù)據(jù)高速緩存的裝置,所述裝置包括:
[0011]第一緩存單元,用于將數(shù)據(jù)庫(kù)中獲取的原始數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù),并將轉(zhuǎn)換后的數(shù)據(jù)以mat文件格式緩存;
[0012]判斷單元,用于在接收到用戶的數(shù)據(jù)請(qǐng)求信息時(shí),判斷所緩存的mat文件中是否存在與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的全部數(shù)據(jù);
[0013]數(shù)據(jù)獲取單元,用于在所述判斷單元判斷結(jié)果為否時(shí),從所述數(shù)據(jù)庫(kù)中獲取缺失的數(shù)據(jù),所述缺失的數(shù)據(jù)為所緩存的mat文件中缺失的與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的數(shù)據(jù);
[0014]數(shù)據(jù)填充單元,用于將所述缺失的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù)后填充到所述mat文件中,并將填充后的所述mat文件中與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的數(shù)據(jù)反饋給所述用戶,所述mat文件為與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的文件;
[0015]所述第一緩存單元,還用于將所述缺失的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù)后以mat文件格式緩存。
[0016]本發(fā)明實(shí)施例與現(xiàn)有技術(shù)相比存在的有益效果是:本發(fā)明實(shí)施例將數(shù)據(jù)庫(kù)中的記錄型數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)矩陣格式使用和存儲(chǔ),可大量減少記錄型數(shù)據(jù)中的描述性冗余數(shù)據(jù)。而且將標(biāo)準(zhǔn)的矩陣數(shù)據(jù)緩存到mat文件,省去了數(shù)據(jù)轉(zhuǎn)換的過(guò)程,從而可以和統(tǒng)計(jì)分析平臺(tái)之間進(jìn)行數(shù)據(jù)交互,大幅提升數(shù)據(jù)存儲(chǔ)和讀取的效率。另外,基于mat文件形式的數(shù)據(jù)緩存功能,可將緩存文件存儲(chǔ)到硬盤,形成緩存文件管理系統(tǒng),突破了內(nèi)存緩存的容量限制。
【專利附圖】
【附圖說(shuō)明】
[0017]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0018]圖1是本發(fā)明實(shí)施例一提供的海量數(shù)據(jù)高速緩存方法的實(shí)現(xiàn)流程圖;
[0019]圖2是本發(fā)明實(shí)施例二提供的海量數(shù)據(jù)高速緩存裝置的架構(gòu)示例圖;
[0020]圖3是本發(fā)明實(shí)施例三提供的海量數(shù)據(jù)高速緩存裝置的組成結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0021]以下描述中,為了說(shuō)明而不是為了限定,提出了諸如特定系統(tǒng)結(jié)構(gòu)、接口、技術(shù)之類的具體細(xì)節(jié),以便透切理解本發(fā)明實(shí)施例。然而,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)清楚,在沒(méi)有這些具體細(xì)節(jié)的其它實(shí)施例中也可以實(shí)現(xiàn)本發(fā)明。在其它情況中,省略對(duì)眾所周知的系統(tǒng)、裝置、電路以及方法的詳細(xì)說(shuō)明,以免不必要的細(xì)節(jié)妨礙本發(fā)明的描述。
[0022]為了說(shuō)明本發(fā)明所述的技術(shù)方案,下面通過(guò)具體實(shí)施例來(lái)進(jìn)行說(shuō)明。
[0023]實(shí)施例一:
[0024]圖1示出了本發(fā)明第一實(shí)施例提供的海量數(shù)據(jù)高速緩存方法的實(shí)現(xiàn)流程,其過(guò)程詳述如下:
[0025]在步驟SlOl中,將數(shù)據(jù)庫(kù)中獲取的原始數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù),并將轉(zhuǎn)換后的數(shù)據(jù)以mat文件格式緩存。
[0026]在本實(shí)施例中,所述標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù)為matlab標(biāo)準(zhǔn)矩陣數(shù)據(jù)。所述mat文件是matlab數(shù)據(jù)存儲(chǔ)的標(biāo)準(zhǔn)格式。mat文件是標(biāo)準(zhǔn)的二進(jìn)制文件,可以以ASCII碼形式保存和加載。
[0027]其中,將數(shù)據(jù)庫(kù)中獲取的原始數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù)具體包括:
[0028]從數(shù)據(jù)庫(kù)中獲取cell格式的數(shù)據(jù);具體的可以是,通過(guò)多個(gè)數(shù)據(jù)適配器從數(shù)據(jù)庫(kù)中獲取原始數(shù)據(jù),所述原始數(shù)據(jù)從數(shù)據(jù)庫(kù)中獲取到matlab平臺(tái)是cell矩陣格式,每一行表不一條記錄,每一列表不一個(gè)字段。
[0029]根據(jù)獲取的所述數(shù)據(jù)生成行列索引;具體的是,根據(jù)所述cell矩陣中行列所表示的業(yè)務(wù)含義生成行列索引,示例性的,所述行索引可以為證券代碼列表,列索引可以為時(shí)間點(diǎn)列表,通過(guò)所述行列索引可以定位到所需要的數(shù)據(jù)在矩陣中的位置。
[0030]根據(jù)所述行列索引將所述cell格式的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的數(shù)值矩陣,并根據(jù)所述行列索引對(duì)獲取的所述數(shù)據(jù)進(jìn)行定位,即每條數(shù)據(jù)在所述數(shù)值矩陣中的行列坐標(biāo)。
[0031]根據(jù)所述定位,將獲取的所述數(shù)據(jù)批量插入到所述數(shù)值矩陣的相應(yīng)位置。
[0032]對(duì)所述數(shù)值矩陣中空缺的位置進(jìn)行數(shù)據(jù)填充、插值或標(biāo)記。
[0033]本實(shí)施例將記錄型數(shù)據(jù)轉(zhuǎn)換為矩陣數(shù)據(jù)后,免去了很多描述性的重復(fù)數(shù)據(jù)存儲(chǔ),矩陣中只存儲(chǔ)核心的業(yè)務(wù)數(shù)據(jù),從而可大大減少數(shù)據(jù)冗余。另外,一般情況下,在matlab平臺(tái)下直接連接數(shù)據(jù)庫(kù)獲取到的數(shù)據(jù)是cell格式,進(jìn)行科學(xué)計(jì)算和時(shí)間序列分析非常不方便。本實(shí)施例通過(guò)將獲取到的cell格式數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式數(shù)據(jù)后,可以在matlab平臺(tái)上非常方便的使用,從而大大降低用戶處理和轉(zhuǎn)換數(shù)據(jù)的時(shí)間,提高數(shù)據(jù)處理和轉(zhuǎn)換的效率。
[0034]進(jìn)一步的,本實(shí)施例還提供了基于mat文件形式的數(shù)據(jù)緩存功能,將緩存文件存儲(chǔ)到硬盤,形成緩存文件管理系統(tǒng),突破了內(nèi)存緩存的容量限制。而且,將標(biāo)準(zhǔn)的矩陣數(shù)據(jù)緩存到mat文件,減少了數(shù)據(jù)加工轉(zhuǎn)換的過(guò)程,節(jié)省了數(shù)據(jù)計(jì)算和存儲(chǔ)的資源,大幅提升使用效率。
[0035]在步驟S102中,在接收到用戶的數(shù)據(jù)請(qǐng)求信息時(shí),判斷所緩存的mat文件中是否存在與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的全部數(shù)據(jù),如果判斷結(jié)果為“是”,則執(zhí)行步驟S103 ;如果判斷結(jié)果為“否”,則執(zhí)行步驟S104。
[0036]在本實(shí)施例中,從緩存的mat文件中提取數(shù)據(jù)時(shí),如果所請(qǐng)求的數(shù)據(jù)都不存在所述緩存中,則全部從數(shù)據(jù)庫(kù)中獲取。如果所請(qǐng)求的數(shù)據(jù)部分存在于所述緩存中,則需要從數(shù)據(jù)庫(kù)中提取所缺失的數(shù)據(jù)。
[0037]其中,所述接收用戶的數(shù)據(jù)請(qǐng)求信息包括:
[0038]接收用戶通過(guò)統(tǒng)一接口發(fā)送的數(shù)據(jù)請(qǐng)求信息,所述統(tǒng)一接口通過(guò)多個(gè)數(shù)據(jù)適配器和數(shù)據(jù)接口路由實(shí)現(xiàn),所述數(shù)據(jù)適配器用于對(duì)從所述數(shù)據(jù)庫(kù)中獲取的不同的原始數(shù)據(jù)進(jìn)行處理(包括數(shù)據(jù)的提取、轉(zhuǎn)換等),其中每一個(gè)數(shù)據(jù)適配器處理一類數(shù)據(jù),所述數(shù)據(jù)接口路由用于將不同的數(shù)據(jù)請(qǐng)求信息發(fā)送至相應(yīng)的數(shù)據(jù)適配器。
[0039]為了解決現(xiàn)有數(shù)據(jù)庫(kù)請(qǐng)求不同的數(shù)據(jù)需要關(guān)聯(lián)不同的表,單獨(dú)做查詢接口,獲取數(shù)據(jù)效率較低的問(wèn)題。本實(shí)施例提供了基于統(tǒng)計(jì)分析平臺(tái)的統(tǒng)一接口獲取數(shù)據(jù),即各種類型的數(shù)據(jù)都可以通過(guò)所述統(tǒng)一接口獲取,并以標(biāo)準(zhǔn)的矩陣數(shù)據(jù)格式返回給用戶。
[0040]在步驟S103中,將所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的數(shù)據(jù)返回給用戶。示例性的,可以以數(shù)值矩陣的方式將所述數(shù)據(jù)返回給用戶。
[0041]在步驟S104中,從所述數(shù)據(jù)庫(kù)中獲取缺失的數(shù)據(jù),所述缺失的數(shù)據(jù)為所緩存的mat文件中缺失的與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的數(shù)據(jù)。
[0042]在本實(shí)施例中,當(dāng)從所述數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)時(shí),需要向數(shù)據(jù)庫(kù)發(fā)送數(shù)據(jù)請(qǐng)求信息。如果需要盡可能少的數(shù)據(jù)請(qǐng)求次數(shù),極限的做法是只請(qǐng)求一次,不管緩存中是否存在,全部從數(shù)據(jù)庫(kù)中獲取,這種做法必然造成大量數(shù)據(jù)的重復(fù)提取,也使得mat緩存失去其價(jià)值。如果需要盡可能減少數(shù)據(jù)的重復(fù)提取,極限的做法是緩存中已存在的數(shù)據(jù)都不會(huì)向數(shù)據(jù)庫(kù)重新請(qǐng)求,這種做法當(dāng)缺失的數(shù)據(jù)很零散的存在時(shí),需要較多的數(shù)據(jù)請(qǐng)求次數(shù),會(huì)影響到數(shù)據(jù)獲取的效率。因此,為了盡可能少的數(shù)據(jù)請(qǐng)求次數(shù),又不能重復(fù)提取過(guò)多的已緩存數(shù)據(jù),本實(shí)施例優(yōu)選的是:以最大化命中率和完成率為目標(biāo)函數(shù),并通過(guò)聚類的方式獲得最大化目標(biāo)函數(shù),根據(jù)所述最大化目標(biāo)函數(shù)確定搜索的次數(shù)以及每次搜索的行列索引,并根據(jù)所述搜索的次數(shù)以及每次搜索的行列索引對(duì)所述數(shù)據(jù)庫(kù)進(jìn)行搜索以獲取所述缺失的數(shù)據(jù)。其中,命中率保證每次數(shù)據(jù)請(qǐng)求中包含盡可能少的已緩存數(shù)據(jù),完成率保證盡可能少的數(shù)據(jù)請(qǐng)求次數(shù)。
[0043]其具體實(shí)現(xiàn)過(guò)程如下:
[0044]A、將與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的mat文件中標(biāo)準(zhǔn)化的矩陣按列進(jìn)行分段;
[0045]B、統(tǒng)計(jì)每個(gè)列區(qū)間缺失數(shù)據(jù)的數(shù)量,并按照所述缺失數(shù)據(jù)的數(shù)量對(duì)列區(qū)間進(jìn)行排序;
[0046]C、從缺失數(shù)據(jù)數(shù)量最多或最少的列區(qū)間開始,進(jìn)行行變換,并與其相連的列區(qū)間進(jìn)行相同缺失數(shù)據(jù)行的合并,計(jì)算合并后列區(qū)間待獲取子矩陣的命中率和完成率,其中所述子矩陣的命中率=(等于)子矩陣中缺失數(shù)據(jù)的數(shù)量/ (除以)子矩陣大小,所述子矩陣的完成率=子矩陣中缺失數(shù)據(jù)的數(shù)量/矩陣缺失數(shù)據(jù)的總數(shù);
[0047]D、以所述子矩陣的命中率和所述子矩陣的完成率為目標(biāo)函數(shù)進(jìn)行列區(qū)間的搜索合并,以獲得最大化目標(biāo)函數(shù)的合并方式,并根據(jù)所述最大化目標(biāo)函數(shù)的合并方式對(duì)所述數(shù)據(jù)庫(kù)進(jìn)行搜索以獲取所述列區(qū)間缺失的數(shù)據(jù);
[0048]E、迭代進(jìn)行A、B、C、D步驟,直到所述矩陣中所有缺失的數(shù)據(jù)都被獲取。
[0049]在步驟S105中,將所述缺失的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù)后填充到所述mat文件中,并將填充后的所述mat文件中與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的數(shù)據(jù)反饋給所述用戶,所述mat文件為與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的文件。
[0050]在本實(shí)施例中,當(dāng)所述矩陣中所缺失的數(shù)據(jù)都被填充后,將所述矩陣格式的數(shù)據(jù)發(fā)送給所述數(shù)據(jù)請(qǐng)求的用戶。填充后的所述mat文件中包含了所有與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的數(shù)據(jù)。
[0051 ] 在步驟S106中,將所述缺失的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù)后以mat文件格式緩存。
[0052]在本實(shí)施例中,mat文件是matlab標(biāo)準(zhǔn)化的數(shù)據(jù)存儲(chǔ)格式,適合矩陣式數(shù)據(jù)的存儲(chǔ),通過(guò)mat文件可以和matlab平臺(tái)方便的進(jìn)行數(shù)據(jù)傳遞,實(shí)現(xiàn)數(shù)據(jù)的快速存儲(chǔ)和讀取。
[0053]另外,mat文件基于matlab內(nèi)嵌的matfiIe類進(jìn)行封裝,以支持更大規(guī)模,更高效的數(shù)據(jù)存取。實(shí)現(xiàn)的接口有保存數(shù)據(jù),提取數(shù)據(jù),插入行,插入列,可以方便的進(jìn)行大規(guī)模數(shù)據(jù)分文件存取,保證存儲(chǔ)文件的穩(wěn)定性和存取性能。
[0054]實(shí)施例二:
[0055]圖2示出了本發(fā)明第二實(shí)施例提供的海量數(shù)據(jù)高速緩存裝置的架構(gòu)示例,如圖2所示,該海量數(shù)據(jù)高速緩存裝置架構(gòu)從下到上依次包括數(shù)據(jù)庫(kù)層、適配器層、數(shù)據(jù)接口路由層、數(shù)據(jù)提取及緩存調(diào)度層以及圖形用戶交互層,各層的具體應(yīng)用如下:
[0056]I)數(shù)據(jù)庫(kù)層
[0057]數(shù)據(jù)庫(kù)層主要通過(guò)數(shù)據(jù)庫(kù)存儲(chǔ)原始數(shù)據(jù),并通過(guò)一系列存儲(chǔ)過(guò)程提取所述原始數(shù)據(jù)。
[0058]2)適配器層
[0059]適配器層主要是從所述數(shù)據(jù)庫(kù)中提取原始數(shù)據(jù),并將提取的所述原始數(shù)據(jù)轉(zhuǎn)換成matlab標(biāo)準(zhǔn)矩陣數(shù)據(jù)。所述適配器層包括多個(gè)數(shù)據(jù)適配器,每個(gè)數(shù)據(jù)適配器處理一類數(shù)據(jù)。
[0060]適配器層的具體應(yīng)用如下:首先從所述數(shù)據(jù)庫(kù)中提取原始數(shù)據(jù)。所述原始數(shù)據(jù)從數(shù)據(jù)庫(kù)中取到matlab平臺(tái)是cell矩陣格式,每一行是一條記錄,每一列是一個(gè)字段。然后將cell矩陣按照預(yù)定的行索引(如證券代碼)和列索引(時(shí)間點(diǎn))轉(zhuǎn)換成數(shù)值矩陣,使得一個(gè)數(shù)值矩陣表示一個(gè)字段,每一行表示一只證券,每一列表示一個(gè)時(shí)間點(diǎn)。轉(zhuǎn)成數(shù)值矩陣后,有些因子需要對(duì)矩陣進(jìn)行再計(jì)算,計(jì)算后返回給上一層(如計(jì)算買賣價(jià)差因子,需要先提取委買價(jià)和委買價(jià)的因子矩陣,然后將兩個(gè)矩陣相減,最終得到的矩陣返回給上一層),不需計(jì)算的就直接返回給上一層。
[0061]3)數(shù)據(jù)接口路由層
[0062]數(shù)據(jù)接口路由層主要功能是將用戶不同的數(shù)據(jù)請(qǐng)求路由到相應(yīng)的數(shù)據(jù)適配器,以對(duì)應(yīng)的獲取到所需的數(shù)值矩陣。具體實(shí)現(xiàn)時(shí),是通過(guò)建立字段名稱、頻率和數(shù)據(jù)適配器間的映射表,每次接收到新的數(shù)據(jù)請(qǐng)求時(shí)(所述數(shù)據(jù)請(qǐng)求中攜帶有請(qǐng)求數(shù)據(jù)的字段名稱),數(shù)據(jù)接口路由在所述映射表中定位到請(qǐng)求的字段名稱和頻率后,將所述數(shù)據(jù)請(qǐng)求發(fā)送給對(duì)應(yīng)的數(shù)據(jù)適配器。
[0063]4)數(shù)據(jù)提取及緩存調(diào)度層
[0064]數(shù)據(jù)提取及緩存調(diào)度層主要功能是處理用戶的數(shù)據(jù)請(qǐng)求,在本地mat文件緩存和數(shù)據(jù)庫(kù)之間進(jìn)行調(diào)度。具體是,在接收到用戶的數(shù)據(jù)請(qǐng)求時(shí),判斷本地緩存的mat文件中是否存在與所述數(shù)據(jù)請(qǐng)求相對(duì)應(yīng)的全部數(shù)據(jù),若否,則通過(guò)調(diào)度算法從所述數(shù)據(jù)庫(kù)中提取缺失的數(shù)據(jù),向用戶返回最終完整的數(shù)據(jù),并將提取的所述缺失的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù)后以mat文件格式補(bǔ)充緩存至本地。其中通過(guò)調(diào)度算法從所述數(shù)據(jù)庫(kù)中提取缺失的數(shù)據(jù)的具體過(guò)程如實(shí)施例所述,在此不再贅述。
[0065]5)圖形用戶交互層
[0066]圖形用戶交互層提供了基于統(tǒng)計(jì)分析平臺(tái)的統(tǒng)一接口獲取數(shù)據(jù),使得各種類型的數(shù)據(jù)都可以通過(guò)所述統(tǒng)一接口獲取,并以標(biāo)準(zhǔn)的矩陣數(shù)據(jù)格式返回給用戶。
[0067]所述統(tǒng)一接口統(tǒng)一了高頻數(shù)據(jù),財(cái)務(wù)數(shù)據(jù),因子倉(cāng)庫(kù),風(fēng)險(xiǎn)控制模型等多個(gè)數(shù)據(jù)源的數(shù)據(jù)。通過(guò)所述統(tǒng)一接口返回相同的數(shù)據(jù)格式,極大減少了用戶提取并處理數(shù)據(jù)的時(shí)間成本。同時(shí),通過(guò)所述統(tǒng)一接口隔離了用戶與交互型數(shù)據(jù)庫(kù)的直接交互,可以實(shí)現(xiàn)交互型數(shù)據(jù)庫(kù)的無(wú)縫切換,提高了系統(tǒng)的安全性和穩(wěn)定性。
[0068]本實(shí)施例通過(guò)mat文件緩存的機(jī)制,突破了內(nèi)存緩存受內(nèi)存大小限制的瓶頸,只要硬盤容量支持,可以實(shí)現(xiàn)大規(guī)模數(shù)據(jù)的本地緩存,且可以實(shí)現(xiàn)高速的文件存取操作。為了更好的體現(xiàn)mat文件緩存的實(shí)用性,本實(shí)施例以收盤價(jià)字段為例,展示提取不同頻率,不同股票數(shù)量時(shí),有mat文件緩存和無(wú)mat文件緩存情況的性能測(cè)試報(bào)告,如表I所示:
[0069]
【權(quán)利要求】
1.一種海量數(shù)據(jù)高速緩存的方法,其特征在于,所述方法包括: 將數(shù)據(jù)庫(kù)中獲取的原始數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù),并將轉(zhuǎn)換后的數(shù)據(jù)以mat文件格式緩存; 在接收到用戶的數(shù)據(jù)請(qǐng)求信息時(shí),判斷所緩存的mat文件中是否存在與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的全部數(shù)據(jù); 若否,從所述數(shù)據(jù)庫(kù)中獲取缺失的數(shù)據(jù),所述缺失的數(shù)據(jù)為所緩存的mat文件中缺失的與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的數(shù)據(jù); 將所述缺失的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù)后填充到所述mat文件中,并將填充后的所述mat文件中與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的數(shù)據(jù)反饋給所述用戶,所述mat文件為與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的文件; 將所述缺失的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù)后以mat文件格式緩存。
2.如權(quán)利要求1所述的方法,其特征在于,所述將數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù)包括: 從數(shù)據(jù)庫(kù)中獲取cell格式的數(shù)據(jù); 根據(jù)獲取的所述數(shù)據(jù)生成行列索引; 根據(jù)所述行列索引將所述cell格式的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的數(shù)值矩陣,并根據(jù)所述行列索引對(duì)獲取的所述數(shù)據(jù)進(jìn)行定位,即每條數(shù)據(jù)在所述數(shù)值矩陣中的行列坐標(biāo); 根據(jù)所述定位,將獲取的所述數(shù) 據(jù)批量插入到所述數(shù)值矩陣的相應(yīng)位置; 對(duì)所述數(shù)值矩陣中空缺的位置進(jìn)行數(shù)據(jù)填充、插值或標(biāo)記。
3.如權(quán)利要求1所述的方法,其特征在于,從所述數(shù)據(jù)庫(kù)中獲取缺失的數(shù)據(jù)包括: 以最大化命中率和完成率為目標(biāo)函數(shù),并通過(guò)聚類的方式獲得最大化目標(biāo)函數(shù),根據(jù)所述最大化目標(biāo)函數(shù)確定搜索的次數(shù)以及每次搜索的行列索引,并根據(jù)所述搜索的次數(shù)以及每次搜索的行列索引對(duì)所述數(shù)據(jù)庫(kù)進(jìn)行搜索以獲取所述缺失的數(shù)據(jù)。
4.如權(quán)利要求3所述的方法,其特征在于,所述以最大化命中率和完成率為目標(biāo)函數(shù),并通過(guò)聚類的方式獲得最大化目標(biāo)函數(shù),根據(jù)所述最大化目標(biāo)函數(shù)確定搜索的次數(shù)以及每次搜索的行列索引,并根據(jù)所述搜索的次數(shù)以及每次搜索的行列索引對(duì)所述數(shù)據(jù)庫(kù)進(jìn)行搜索以獲取所述缺失的數(shù)據(jù)包括: A、將與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的mat文件中標(biāo)準(zhǔn)化的矩陣按列進(jìn)行分段; B、統(tǒng)計(jì)每個(gè)列區(qū)間缺失數(shù)據(jù)的數(shù)量,并按照所述缺失數(shù)據(jù)的數(shù)量對(duì)列區(qū)間進(jìn)行排序; C、從缺失數(shù)據(jù)數(shù)量最多或最少的列區(qū)間開始,進(jìn)行行變換,并與其相連的列區(qū)間進(jìn)行相同缺失數(shù)據(jù)行的合并,計(jì)算合并后列區(qū)間待獲取子矩陣的命中率和完成率,其中所述子矩陣的命中率=子矩陣中缺失數(shù)據(jù)的數(shù)量/子矩陣大小,所述子矩陣的完成率=子矩陣中缺失數(shù)據(jù)的數(shù)量/矩陣缺失數(shù)據(jù)的總數(shù); D、以所述子矩陣的命中率和完成率為目標(biāo)函數(shù)進(jìn)行列區(qū)間的搜索合并,以獲得最大化目標(biāo)函數(shù)的合并方式,并根據(jù)所述最大化目標(biāo)函數(shù)的合并方式對(duì)所述數(shù)據(jù)庫(kù)進(jìn)行搜索以獲取所述列區(qū)間缺失的數(shù)據(jù); E、迭代進(jìn)行A、B、C、D步驟,直到所述矩陣中所有缺失的數(shù)據(jù)都被獲取。
5.如權(quán)利要求1所述的方法,其特征在于,所述接收用戶的數(shù)據(jù)請(qǐng)求信息包括: 接收用戶通過(guò)統(tǒng)一接口發(fā)送的數(shù)據(jù)請(qǐng)求信息,所述統(tǒng)一接口通過(guò)多個(gè)數(shù)據(jù)適配器和數(shù)據(jù)接口路由實(shí)現(xiàn),所述數(shù)據(jù)適配器用于對(duì)從所述數(shù)據(jù)庫(kù)中獲取的不同的原始數(shù)據(jù)進(jìn)行處理,其中每一個(gè)數(shù)據(jù)適配器處理一類數(shù)據(jù),所述數(shù)據(jù)接口路由用于將不同的數(shù)據(jù)請(qǐng)求信息發(fā)送至相應(yīng)的數(shù)據(jù)適配器。
6.一種海量數(shù)據(jù)高速緩存的裝置,其特征在于,所述裝置包括: 第一緩存單元,用于將數(shù)據(jù)庫(kù)中獲取的原始數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù),并將轉(zhuǎn)換后的數(shù)據(jù)以mat文件格式緩存; 判斷單元,用于在接收到用戶的數(shù)據(jù)請(qǐng)求信息時(shí),判斷所緩存的mat文件中是否存在與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的全部數(shù)據(jù); 數(shù)據(jù)獲取單元,用于在所述判斷單元判斷結(jié)果為否時(shí),從所述數(shù)據(jù)庫(kù)中獲取缺失的數(shù)據(jù),所述缺失的數(shù)據(jù)為所緩存的mat文件中缺失的與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的數(shù)據(jù); 數(shù)據(jù)填充單元,用于將所述缺失的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù)后填充到所述mat文件中,并將填充后的所述mat文件中與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的數(shù)據(jù)反饋給所述用戶,所述mat文件為與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的文件; 所述第一緩存單元,還用于將所述缺失的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的矩陣格式的數(shù)據(jù)后以mat文件格式緩存。
7.如權(quán)利要求6所述的裝置,其特征在于,所述第一緩存單元包括: 數(shù)據(jù)獲取模塊,用于從數(shù)據(jù)庫(kù)中獲取cell格式的數(shù)據(jù); 生成模塊,用于根據(jù)獲取的 所述數(shù)據(jù)生成行列索引; 定位模塊,用于根據(jù)所述行列索引將所述cell格式的數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)化的數(shù)值矩陣,并根據(jù)所述行列索引對(duì)獲取的所述數(shù)據(jù)進(jìn)行定位,即每條數(shù)據(jù)在所述數(shù)值矩陣中的行列坐標(biāo); 數(shù)據(jù)插入模塊,用于根據(jù)所述定位,將獲取的所述數(shù)據(jù)批量插入到所述數(shù)值矩陣的相應(yīng)位置; 處理模塊,用于對(duì)所述數(shù)值矩陣中空缺的位置進(jìn)行數(shù)據(jù)填充、插值或標(biāo)記。
8.如權(quán)利要求6所述的裝置,其特征在于,所述數(shù)據(jù)獲取單元用于: 以最大化命中率和完成率為目標(biāo)函數(shù),并通過(guò)聚類的方式獲得最大化目標(biāo)函數(shù),根據(jù)所述最大化目標(biāo)函數(shù)確定搜索的次數(shù)以及每次搜索的行列索引,并根據(jù)所述搜索的次數(shù)以及每次搜索的行列索引對(duì)所述數(shù)據(jù)庫(kù)進(jìn)行搜索以獲取所述缺失的數(shù)據(jù)。
9.如權(quán)利要求8所述的裝置,其特征在于,所述數(shù)據(jù)獲取單元包括: 分段模塊,用于將與所述數(shù)據(jù)請(qǐng)求信息相對(duì)應(yīng)的mat文件中標(biāo)準(zhǔn)化的矩陣按列進(jìn)行分段; 統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)每個(gè)列區(qū)間缺失數(shù)據(jù)的數(shù)量,并按照所述缺失數(shù)據(jù)的數(shù)量對(duì)列區(qū)間進(jìn)行排序; 處理模塊,用于從缺失數(shù)據(jù)數(shù)量最多或最少的列區(qū)間開始,進(jìn)行行變換,并與其相連的列區(qū)間進(jìn)行相同缺失數(shù)據(jù)行的合并,計(jì)算合并后列區(qū)間待獲取子矩陣的命中率和完成率,其中所述子矩陣的命中率=子矩陣中缺失數(shù)據(jù)的數(shù)量/子矩陣大小,所述子矩陣的完成率=子矩陣中缺失數(shù)據(jù)的數(shù)量/矩陣缺失數(shù)據(jù)的總數(shù); 數(shù)據(jù)獲取模塊,用于以所述子矩陣的命中率和完成率為目標(biāo)函數(shù)進(jìn)行列區(qū)間的搜索合并,以獲得最大化目標(biāo)函數(shù)的合并方式,并根據(jù)所述最大化目標(biāo)函數(shù)的合并方式對(duì)所述數(shù)據(jù)庫(kù)進(jìn)行搜索以獲取所述列區(qū)間缺失的數(shù)據(jù); 控制模塊,用于控制分段模塊、統(tǒng)計(jì)模塊、處理模塊以及數(shù)據(jù)獲取模塊的迭代處理,直到所述矩陣中所有缺失的數(shù)據(jù)都被獲取。
10.如權(quán)利要求6所述的裝置,其特征在于,所述判斷單元包括: 數(shù)據(jù)請(qǐng)求接收模塊,用于接收用戶通過(guò)統(tǒng)一接口發(fā)送的數(shù)據(jù)請(qǐng)求信息,所述統(tǒng)一接口通過(guò)多個(gè)數(shù)據(jù)適配器和數(shù)據(jù)接口路由實(shí)現(xiàn),所述數(shù)據(jù)適配器用于對(duì)從所述數(shù)據(jù)庫(kù)中獲取的不同的原始數(shù)據(jù)進(jìn)行處理,其中每一個(gè)數(shù)據(jù)適配器處理一類數(shù)據(jù),所述數(shù)據(jù)接口路由用于將不同的數(shù)據(jù)請(qǐng)求 信息發(fā)送至相應(yīng)的數(shù)據(jù)適配器。
【文檔編號(hào)】G06F3/06GK103543959SQ201310467372
【公開日】2014年1月29日 申請(qǐng)日期:2013年10月8日 優(yōu)先權(quán)日:2013年10月8日
【發(fā)明者】林健武, 李倬, 楊波, 凌宗平 申請(qǐng)人:深圳市國(guó)泰安信息技術(shù)有限公司