專利名稱:一種聯(lián)機(jī)分析處理系統(tǒng)中多維數(shù)據(jù)讀寫的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是指一種聯(lián)機(jī)分析處理系統(tǒng)中多維數(shù)據(jù)讀寫的方法和裝置。
背景技術(shù):
在科技快速發(fā)展的今天,社會各個(gè)領(lǐng)域中的需要統(tǒng)計(jì)的數(shù)據(jù)都飛速增長,海量數(shù)據(jù)的記錄、查詢?yōu)橛?jì)算機(jī)技術(shù)帶來新的發(fā)展方向,提供新的技術(shù)課題。
企業(yè)資源計(jì)劃(ERP,Enterprise Recourse Planning)系統(tǒng)為企業(yè)的帶來新的數(shù)據(jù)管理方式。通過ERP系統(tǒng),企業(yè)能更加高效的運(yùn)用、管理企業(yè)的各類資源。ERP數(shù)據(jù)庫中存儲大量的數(shù)據(jù),從分析處理過程來看,分析一般需要多表操作、較長的運(yùn)行時(shí)間,若直接利用ERP業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫中現(xiàn)有的數(shù)據(jù)進(jìn)行決策的分析和推理、將影響ERP系統(tǒng)的效率,并造成繁忙的網(wǎng)絡(luò)數(shù)據(jù)傳輸。因此需要結(jié)合聯(lián)機(jī)分析處理系統(tǒng)(OLAP,Online Analytic Processing)。
管理決策人員通過OLAP從不同的角度、快速靈活地對數(shù)據(jù)倉庫中的數(shù)據(jù)進(jìn)行多維分析處理。OLAP系統(tǒng)主要包括多維聯(lián)機(jī)分析處理系統(tǒng)MOLAP(Multidimensional OLAP)和關(guān)系聯(lián)機(jī)分析處理系統(tǒng)ROLAP(Relational OLAP)。從邏輯上看,OLAP抽象模型包括結(jié)構(gòu)模型和查詢模型,結(jié)構(gòu)模型表示多維數(shù)據(jù)集的各種對象,查詢模型表示在這些對象上面的查詢。實(shí)現(xiàn)時(shí)將結(jié)構(gòu)模型和查詢模型映射為物理實(shí)現(xiàn)模型。OLAP結(jié)構(gòu)模型中,核心是多維數(shù)據(jù)集立方體,即立方體(Cube)。Cube中含有大量的發(fā)生數(shù)據(jù)和聚合數(shù)據(jù),聚合數(shù)據(jù)是由維度層級結(jié)構(gòu)決定的,維度個(gè)數(shù)、維度成員數(shù)以及層級結(jié)構(gòu)的復(fù)雜度決定了聚合數(shù)據(jù)的數(shù)據(jù)量。其中,維度是人們觀察數(shù)據(jù)的特定角度,如時(shí)間維度、地理維度等。用戶在某個(gè)維度上觀察數(shù)據(jù)時(shí)還可以存在細(xì)節(jié)程度不同層次的各個(gè)描述方面。如,時(shí)間維度包括日期、月份、季度、年。維度中包括的成員時(shí)維度上的取值,是數(shù)據(jù)在某個(gè)維度中位置的描述。如,“某年某月某日”是在時(shí)間維度上位置的描述。通過各個(gè)不同的維度,能夠更加靈活的觀測數(shù)據(jù)。Cube中的每個(gè)數(shù)據(jù)均對應(yīng)于各個(gè)維度中的一個(gè)成員,通過各個(gè)維度中成員的組合即可查詢到相應(yīng)的數(shù)據(jù)。
對于多維的數(shù)據(jù)結(jié)構(gòu),OLAP服務(wù)器在數(shù)據(jù)的存儲和查詢上有不同的實(shí)現(xiàn)方式,但大都應(yīng)用于海量數(shù)據(jù),處理時(shí),OLAP服務(wù)器預(yù)先存儲有來自數(shù)據(jù)源中的海量數(shù)據(jù),并生成Cube數(shù)據(jù),用戶通過OLAP服務(wù)器從不同維度進(jìn)行數(shù)據(jù)分析時(shí),將OLAP服務(wù)器中生成的海量Cube數(shù)據(jù)劃分為多個(gè)部分?jǐn)?shù)據(jù),每次將一部分?jǐn)?shù)據(jù)讀入到內(nèi)存中建立報(bào)表數(shù)據(jù),再將內(nèi)存中建立的報(bào)表數(shù)據(jù)組合成完整的報(bào)表后,顯示到用戶的終端上。
上述進(jìn)行OLAP數(shù)據(jù)分析時(shí),主要是應(yīng)用于海量數(shù)據(jù)的查詢、分析,且查詢的Cube數(shù)據(jù)是已經(jīng)在OLAP服務(wù)器中生成的。對于小數(shù)據(jù)量的存儲和查詢,如果仍采用OLAP服務(wù)器生成Cube數(shù)據(jù),再通過OLAP服務(wù)器進(jìn)行Cube數(shù)據(jù)的查詢、分析,將會對OLAP服務(wù)器利用效率上產(chǎn)生較大的浪費(fèi)。而目前對于小數(shù)據(jù)量的查詢、分析,還沒有完整的解決方案。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明在于提供一種聯(lián)機(jī)分析處理系統(tǒng)中多維數(shù)據(jù)讀寫的方法和裝置,以解決上述小數(shù)據(jù)量的存儲和查詢的問題。
為解決上述問題,本發(fā)明提供一種聯(lián)機(jī)分析處理系統(tǒng)中多維數(shù)據(jù)讀寫的方法,包括從數(shù)據(jù)源中獲取出初始數(shù)據(jù),設(shè)定初始數(shù)據(jù)中各個(gè)維度中成員的任意組合,將所述組合和其相對應(yīng)初始數(shù)據(jù)中的度量值數(shù)據(jù)寫入到內(nèi)存中,利用所述組合從所述內(nèi)存中讀取相應(yīng)的度量值數(shù)據(jù)。
其中,所述寫入包括將所述任意組合作為哈希表的關(guān)鍵字Key,將所述相對應(yīng)的度量值數(shù)據(jù)作為哈希表的值Value,將所述組合和所述相對應(yīng)的度量值數(shù)據(jù)以哈希表的形式寫入到內(nèi)存中。
其中,所述讀取包括利用所述關(guān)鍵字Key,從內(nèi)存中讀取相對應(yīng)的度量值數(shù)據(jù)。
其中,所述寫入包括在內(nèi)存中建立與各個(gè)維度中成員的全部任意組合相對應(yīng)的多維數(shù)組;將所述組合相對應(yīng)的度量值數(shù)據(jù)寫入與所述數(shù)組下標(biāo)相對應(yīng)的內(nèi)存空間中。
其中,所述讀取包括利用所述數(shù)組下標(biāo),從內(nèi)存中讀取相對應(yīng)的數(shù)據(jù)。
本發(fā)明還提供一種聯(lián)機(jī)分析處理系統(tǒng)中多維數(shù)據(jù)讀寫的裝置,包括數(shù)據(jù)采集單元,用于從數(shù)據(jù)源中提取初始數(shù)據(jù),并發(fā)送至組合生成單元和內(nèi)存讀寫單元;組合生成單元,用于利用初始數(shù)據(jù)設(shè)定各個(gè)維度中成員的任意組合,并將所述組合信息發(fā)送至內(nèi)存讀寫單元;內(nèi)存讀寫單元,用于將所述組合和其相對應(yīng)初始數(shù)據(jù)中的度量值數(shù)據(jù)寫入到內(nèi)存中,利用所述組合從所述內(nèi)存中讀取相應(yīng)的數(shù)據(jù)。
其中,所述內(nèi)存讀寫單元用于將所述任意組合作為哈希表的關(guān)鍵字Key,將所述相對應(yīng)的度量值數(shù)據(jù)作為哈希表的值Value,將所述組合和所述相對應(yīng)的度量值數(shù)據(jù)以哈希表的形式寫入到內(nèi)存中。
其中,所述內(nèi)存讀寫單元用于利用所述關(guān)鍵字Key,從內(nèi)存中讀取相對應(yīng)的度量值數(shù)據(jù)。
其中,所述內(nèi)存讀寫單元用于在內(nèi)存中建立與各個(gè)維度中成員的全部任意組合相對應(yīng)的多維數(shù)組;將所述組合相對應(yīng)的度量值數(shù)據(jù)寫入與所述數(shù)組下標(biāo)相對應(yīng)的內(nèi)存空間中。
其中,所述內(nèi)存讀寫單元用于利用所述數(shù)組下標(biāo),從內(nèi)存中讀取相對應(yīng)的度量值數(shù)據(jù)。
本發(fā)明的方法和裝置,解決了小數(shù)據(jù)量的OLAP存儲和查詢,將小數(shù)據(jù)量的OLAP的存儲和查詢?nèi)吭趦?nèi)存中處理。在內(nèi)存中讀寫多維數(shù)據(jù),將多維數(shù)據(jù)模型以哈希表的形式進(jìn)行存儲,更加有利于內(nèi)存的存儲和查詢。而且對于小數(shù)據(jù)量的讀寫,哈希表占用內(nèi)存空間小,不會對系統(tǒng)性能產(chǎn)生瓶頸,完美地解決了基于內(nèi)存的小數(shù)據(jù)量的OLAP存儲和查詢。
圖1是本發(fā)明方法的流程圖;圖2是本發(fā)明實(shí)施例中維度成員關(guān)系的數(shù)據(jù)結(jié)構(gòu)圖;圖3是本發(fā)明實(shí)施例中維度成員與數(shù)據(jù)的對應(yīng)關(guān)系圖;圖4是本發(fā)明裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
全球經(jīng)濟(jì)快速發(fā)展的今天,無論是跨國公司、企業(yè)還是政府機(jī)關(guān),每天都會有大量的數(shù)據(jù)需要處理,這些數(shù)據(jù)包括各個(gè)類別,如生產(chǎn)、銷售、日常辦公等。決策者通過對生成的大量數(shù)據(jù)進(jìn)行分析,對市場銷售、生產(chǎn)進(jìn)度進(jìn)行決策。但對于有些小型公司,每天的產(chǎn)生的數(shù)據(jù)較少,如果使用大型分析海量數(shù)據(jù)的OLAP系統(tǒng),則會浪費(fèi)較大的系統(tǒng)資源。
下面詳細(xì)闡述本發(fā)明的思想和具體實(shí)現(xiàn)的過程,本發(fā)明主要應(yīng)用于內(nèi)存嵌入式小數(shù)據(jù)量的OLAP。對于生成的多維數(shù)據(jù),本發(fā)明將各個(gè)維度中成員的組合和與其相對應(yīng)的數(shù)據(jù)存儲在內(nèi)存中進(jìn)行分析處理。參見圖1,本發(fā)明的主要步驟包括步驟S101從數(shù)據(jù)源中獲取出初始數(shù)據(jù);步驟S102設(shè)定初始數(shù)據(jù)中各個(gè)維度中成員的任意組合;步驟S103將所述組合和其相對應(yīng)初始數(shù)據(jù)中的度量值數(shù)據(jù)寫入到內(nèi)存中,利用所述組合從所述內(nèi)存中讀取相應(yīng)的度量值數(shù)據(jù)。
下面給出本發(fā)明的具體實(shí)施例。
對于公司產(chǎn)生的數(shù)據(jù),需要預(yù)先設(shè)定數(shù)據(jù)的維度(Dimension),維度是人們觀察數(shù)據(jù)的特定角度,是考慮問題時(shí)的一類屬性,屬性集合構(gòu)成一個(gè)維度(時(shí)間維度、地理維度等)。
維度的層次(Level)是人們觀察數(shù)據(jù)的某個(gè)特定角度(即某個(gè)維)還可以存在細(xì)節(jié)程度不同的各個(gè)描述方面。如時(shí)間維度日期、月份、季度、年。
維度的成員(Member)維度上的取值,是數(shù)據(jù)在某個(gè)維度中位置的描述。如“某年某月某日”是在時(shí)間維度上位置的描述。
通過各個(gè)不同的維度,能夠更加靈活的觀測數(shù)據(jù)。每個(gè)維度的層級關(guān)系是以樹型的數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲的,這樣便于進(jìn)行數(shù)據(jù)的匯總和聚集。
下面給出本發(fā)明的具體實(shí)施例。為便于更清晰地理解對本發(fā)明,在本發(fā)明的實(shí)施例中維度以三維為例。
以特快專遞公司的數(shù)據(jù)為例,在進(jìn)行OLAP分析時(shí),需要先從數(shù)據(jù)源中獲取數(shù)據(jù),數(shù)據(jù)源可以是數(shù)據(jù)庫或以各類格式軟件存儲的數(shù)據(jù)。獲取初始數(shù)據(jù)后,取出初始數(shù)據(jù)中的維度成員,設(shè)定初始數(shù)據(jù)中各個(gè)維度中成員的任意組合,通過維度成員與度量值數(shù)據(jù)的對應(yīng)關(guān)系生成維度成員組合與度量值數(shù)據(jù)的對應(yīng)關(guān)系。如,特快專遞公司產(chǎn)生的數(shù)據(jù)包括三個(gè)維度,分別為源、路線和時(shí)間。各個(gè)維度的層級關(guān)系參見圖2。源的維度成員包括航空、海路、公路、鐵路四個(gè)成員;路線的維度成員包括非洲、亞洲、澳洲、歐洲、北美洲、南美洲六個(gè)成員;時(shí)間的維度成員包括第一季度、第二季度、第三季度、第四季度四個(gè)成員。在各個(gè)維度上任意取出一個(gè)成員,組成的組合稱為元組,如(航空,非洲,第一季度);(航空,南美洲,第二季度)等。每個(gè)元組中對應(yīng)于一組度量值數(shù)據(jù),在該組度量值數(shù)據(jù)中包括一個(gè)或多個(gè)數(shù)據(jù)。
各個(gè)維度中的成員與數(shù)據(jù)的對應(yīng)關(guān)系參見圖3。在圖3中,維度成員和相對應(yīng)的數(shù)據(jù)以立方體的形式展現(xiàn)出來。在立方體中,有三個(gè)維度和兩個(gè)度量值,立方體內(nèi)的單元格存儲的是度量值,度量值代表事實(shí)數(shù)據(jù)。如元組(航空、非洲、第一季度)對應(yīng)的單元格對應(yīng)有兩個(gè)度量值為190和99/02/17,(航空、南美洲、第二季度)對應(yīng)的單元格對應(yīng)有兩個(gè)度量值為490和99/06/03。立方體中的每個(gè)單元格也對應(yīng)于各個(gè)維度上的一個(gè)成員。由于本發(fā)明最終應(yīng)用于小數(shù)據(jù)量,因此在整個(gè)立方體中,存儲的數(shù)據(jù)量是稀疏的。在基于內(nèi)存的小數(shù)據(jù)量的OLAP,在存儲到內(nèi)存中時(shí),以哈希表的形式存儲最為簡便,快捷。在各類語言中,如JAVA、VC++等等,調(diào)用哈希函數(shù)時(shí),都會自動將數(shù)據(jù)以哈希表的形式存儲到內(nèi)存中。
存儲時(shí),可以將元組作為哈希函數(shù)的關(guān)鍵字Key,將度量值作為哈希函數(shù)的Value值。具體實(shí)現(xiàn)代碼如下Public void put(Object key,Object value);Public Object get(Object key);其中,put和get函數(shù)用于存儲和讀取數(shù)據(jù)。將元組和度量值作為哈希表存儲,不需要特殊處理維度的層級關(guān)系;讀取數(shù)據(jù)時(shí),通過get函數(shù)能夠根據(jù)關(guān)鍵字key從內(nèi)存中讀出相應(yīng)的數(shù)據(jù)。
哈希表是一種能夠?qū)崿F(xiàn)快速查找的數(shù)據(jù)結(jié)構(gòu),查找記錄時(shí)需進(jìn)行一系列和關(guān)鍵字的比較。查找方法是建立在比較的基礎(chǔ)上,查找的效率依賴于查找過程中所進(jìn)行的比較次數(shù)。
理想的情況是能直接找到需要的記錄,因此必須在記錄的存儲位置和它的關(guān)鍵字之間建立一種確定的對應(yīng)關(guān)系,使每個(gè)關(guān)鍵字和存儲數(shù)據(jù)的唯一的存儲位置相對應(yīng)。
哈希函數(shù)在實(shí)現(xiàn)時(shí),記錄的存儲位置和它的關(guān)鍵字之間可以有多種對應(yīng)關(guān)系,每種對應(yīng)關(guān)系在查找速率和效率上都有各自的優(yōu)點(diǎn)。建立對應(yīng)關(guān)系時(shí),需要先確定Key值,即由組成各個(gè)元組的成員確定出一個(gè)Key值,由Key值確定出數(shù)據(jù)在內(nèi)存中的地址。確定的方式主要由以下幾種,如直接定址法,是直接將Key值作為內(nèi)存中的地址來存儲數(shù)據(jù)。這種方式的特點(diǎn)是計(jì)算簡單,沖突最小。
數(shù)字分析法,是將Key的若干數(shù)位作為內(nèi)存中的地址。
平方取中法,是將Key取平方后的中間幾位作為內(nèi)存中的地址。
折疊法,是將Key值分割成位數(shù)相同的幾部分(最后一部分的位數(shù)可以不同),然后取這幾個(gè)部分的疊加和(舍去進(jìn)位)作為內(nèi)存中的地址。
除留余數(shù)法,是將Key值被某個(gè)不大于哈希表表長的數(shù)除后所得余數(shù)為內(nèi)存地址。
隨機(jī)數(shù)法,是選擇一個(gè)隨機(jī)函數(shù),將Key值的隨機(jī)函數(shù)值作為內(nèi)存地址。
哈希函數(shù)在確定Key值和Value值的對應(yīng)關(guān)系時(shí),大都是通過上述幾種函數(shù)來確定內(nèi)存地址和存儲數(shù)據(jù)的對應(yīng)關(guān)系。
用戶在進(jìn)行OLAP操作時(shí),各個(gè)維度上的成員可以通過圖2所示的父節(jié)點(diǎn),即匯總級別上的成員,得到子節(jié)點(diǎn)位于即維度上成員的Key值和需要匯總的Value值。如查詢時(shí)間維度上的匯總級別的成員上半年,與航空、非洲組成的元組(航空、非洲、上半年)對應(yīng)的度量值時(shí),先找出(航空、非洲、上半年)的兩個(gè)子節(jié)點(diǎn)(航空、非洲、第一季度)和(航空、非洲、第二季度)的Key值,(航空、非洲、上半年)的度量值就可通過查詢(航空、非洲、第一季度)和(航空、非洲、第二季度)的Key值所對應(yīng)的Value值聚集匯總得到。實(shí)現(xiàn)時(shí)可以通過維度中父節(jié)點(diǎn)和子節(jié)點(diǎn)之間節(jié)點(diǎn)的層級關(guān)系進(jìn)行處理。
以哈希表存儲,存儲的空間占用較少,利用率較高,且不易OLAP在基于內(nèi)存實(shí)現(xiàn)時(shí)造成系統(tǒng)的性能瓶頸。
本發(fā)明在將元組和其對應(yīng)的度量值寫入到內(nèi)存中的方式不止一種,有多種實(shí)現(xiàn)的方式,還可以以數(shù)組的方式寫入到內(nèi)存中。在以數(shù)組的方式寫入到內(nèi)存中時(shí),需要事先將各個(gè)維度成員所能組成的所有元組分配好相應(yīng)的內(nèi)存空間。每個(gè)維度對應(yīng)一個(gè)數(shù)組維度,數(shù)組中的每個(gè)空間的下標(biāo)值對應(yīng)一個(gè)元組的組合。數(shù)組中空間的下標(biāo)值對應(yīng)存儲單元的存儲空間用于所存儲的數(shù)據(jù)。
數(shù)組和哈希表的存儲方式是不同的,數(shù)組需要預(yù)先占用所有各個(gè)元組對應(yīng)的空間,由于小數(shù)據(jù)量的數(shù)據(jù)在整個(gè)數(shù)組中是稀疏的,會造成一定空間的浪費(fèi)。哈希表在數(shù)據(jù)存儲中是隨著數(shù)據(jù)的不斷存儲而不斷的分配空間。因此,在向內(nèi)存寫入數(shù)據(jù)時(shí),以哈希表的形式會比數(shù)組的形式更能提高系統(tǒng)效率,因?yàn)檎加玫膬?nèi)存空間少,系統(tǒng)可以使用更多的內(nèi)存空間完成其它工作。
本發(fā)明還提供一種聯(lián)機(jī)分析處理系統(tǒng)中多維數(shù)據(jù)讀寫的裝置,包括數(shù)據(jù)采集單元401,用于從數(shù)據(jù)源中提取初始數(shù)據(jù),并發(fā)送至組合生成單元402和內(nèi)存讀寫單元403;組合生成單元402,用于利用初始數(shù)據(jù)設(shè)定各個(gè)維度中成員的任意組合,并將所述組合信息發(fā)送至內(nèi)存讀寫單元403;內(nèi)存讀寫單元403,用于將所述組合和其相對應(yīng)初始數(shù)據(jù)中的度量值數(shù)據(jù)寫入到內(nèi)存中,利用所述組合從所述內(nèi)存中讀取相應(yīng)的數(shù)據(jù)。
在本發(fā)明的裝置中,所述內(nèi)存讀寫單元402用于將所述任意組合作為哈希表的關(guān)鍵字Key,將所述相對應(yīng)的度量值數(shù)據(jù)作為哈希表的值Value,將所述組合和所述相對應(yīng)的度量值數(shù)據(jù)以哈希表的形式寫入到內(nèi)存中。
在本發(fā)明的裝置中,所述內(nèi)存讀寫單元403用于利用所述關(guān)鍵字Key,從內(nèi)存中讀取相對應(yīng)的度量值數(shù)據(jù)。
在本發(fā)明的裝置中,所述內(nèi)存讀寫單元403用于在內(nèi)存中建立與各個(gè)維度中成員的全部任意組合相對應(yīng)的多維數(shù)組;將所述組合相對應(yīng)的度量值數(shù)據(jù)寫入與所述數(shù)組下標(biāo)相對應(yīng)的內(nèi)存空間中。
在本發(fā)明的裝置中,所述內(nèi)存讀寫單元403用于利用所述數(shù)組下標(biāo),從內(nèi)存中讀取相對應(yīng)的度量值數(shù)據(jù)。
對于本發(fā)明的方法和裝置,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種聯(lián)機(jī)分析處理系統(tǒng)中多維數(shù)據(jù)讀寫的方法,其特征在于,包括從數(shù)據(jù)源中獲取出初始數(shù)據(jù),設(shè)定初始數(shù)據(jù)中各個(gè)維度中成員的任意組合,將所述組合和其相對應(yīng)初始數(shù)據(jù)中的度量值數(shù)據(jù)寫入到內(nèi)存中,利用所述組合從所述內(nèi)存中讀取相應(yīng)的度量值數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述寫入包括將所述任意組合作為哈希表的關(guān)鍵字Key,將所述相對應(yīng)的度量值數(shù)據(jù)作為哈希表的值Value,將所述組合和所述相對應(yīng)的度量值數(shù)據(jù)以哈希表的形式寫入到內(nèi)存中。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述讀取包括利用所述關(guān)鍵字Key,從內(nèi)存中讀取相對應(yīng)的度量值數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述寫入包括在內(nèi)存中建立與各個(gè)維度中成員的全部任意組合相對應(yīng)的多維數(shù)組;將所述組合相對應(yīng)的度量值數(shù)據(jù)寫入與所述數(shù)組下標(biāo)相對應(yīng)的內(nèi)存空間中。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述讀取包括利用所述數(shù)組下標(biāo),從內(nèi)存中讀取相對應(yīng)的數(shù)據(jù)。
6.一種聯(lián)機(jī)分析處理系統(tǒng)中多維數(shù)據(jù)讀寫的裝置,其特征在于,包括數(shù)據(jù)采集單元,用于從數(shù)據(jù)源中提取初始數(shù)據(jù),并發(fā)送至組合生成單元和內(nèi)存讀寫單元;組合生成單元,用于利用初始數(shù)據(jù)設(shè)定各個(gè)維度中成員的任意組合,并將所述組合信息發(fā)送至內(nèi)存讀寫單元;內(nèi)存讀寫單元,用于將所述組合和其相對應(yīng)初始數(shù)據(jù)中的度量值數(shù)據(jù)寫入到內(nèi)存中,利用所述組合從所述內(nèi)存中讀取相應(yīng)的數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述內(nèi)存讀寫單元用于將所述任意組合作為哈希表的關(guān)鍵字Key,將所述相對應(yīng)的度量值數(shù)據(jù)作為哈希表的值Value,將所述組合和所述相對應(yīng)的度量值數(shù)據(jù)以哈希表的形式寫入到內(nèi)存中。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述內(nèi)存讀寫單元用于利用所述關(guān)鍵字Key,從內(nèi)存中讀取相對應(yīng)的度量值數(shù)據(jù)。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述內(nèi)存讀寫單元用于在內(nèi)存中建立與各個(gè)維度中成員的全部任意組合相對應(yīng)的多維數(shù)組;將所述組合相對應(yīng)的度量值數(shù)據(jù)寫入與所述數(shù)組下標(biāo)相對應(yīng)的內(nèi)存空間中。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述內(nèi)存讀寫單元用于利用所述數(shù)組下標(biāo),從內(nèi)存中讀取相對應(yīng)的度量值數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種聯(lián)機(jī)分析處理系統(tǒng)中多維數(shù)據(jù)讀寫的方法和裝置,涉及計(jì)算機(jī)技術(shù)領(lǐng)域,本發(fā)明的方法包括從數(shù)據(jù)源中獲取出初始數(shù)據(jù),設(shè)定初始數(shù)據(jù)中各個(gè)維度中成員的任意組合,將所述組合和其相對應(yīng)初始數(shù)據(jù)中的度量值數(shù)據(jù)寫入到內(nèi)存中,利用所述組合從所述內(nèi)存中讀取相應(yīng)的度量值數(shù)據(jù)。本發(fā)明的方法在向內(nèi)存中讀寫數(shù)據(jù)時(shí),以哈希表或數(shù)組的形式寫入或讀出。將多維數(shù)據(jù)模型以哈希表的形式進(jìn)行存儲,更加有利于內(nèi)存的存儲和查詢。而且對于小數(shù)據(jù)量的讀寫,哈希表占用內(nèi)存空間小,不會對系統(tǒng)性能產(chǎn)生瓶頸,完美地解決了基于內(nèi)存的小數(shù)據(jù)量的OLAP存儲和查詢。
文檔編號G06F17/30GK1949226SQ20061014565
公開日2007年4月18日 申請日期2006年11月23日 優(yōu)先權(quán)日2006年11月23日
發(fā)明者林志賢 申請人:金蝶軟件(中國)有限公司