一種在線上分析處理系統中多維數據讀寫的方法和裝置

一種在線上分析處理系統中多維數據讀寫的方法和裝置

《一種在線上分析處理系統中多維數據讀寫的方法和裝置》是金蝶軟體(中國)有限公司於2006年11月23日申請的專利,該專利的申請號為2006101456534,公布號為CN1949226,授權公布日為2007年4月18日,發明人是林志賢。

《一種在線上分析處理系統中多維數據讀寫的方法和裝置》公開了一種在線上分析處理系統中多維數據讀寫的方法和裝置,涉及計算機技術領域,該發明的方法包括:從數據源中獲取出初始數據,設定初始數據中各個維度中成員的任意組合,將所述組合和其相對應初始數據中的度量值數據寫入到記憶體中,利用所述組合從所述記憶體中讀取相應的度量值數據。該發明的方法在向記憶體中讀寫數據時,以哈希表或數組的形式寫入或讀出。將多維數據模型以哈希表的形式進行存儲,更加有利於記憶體的存儲和查詢。而且對於小數據量的讀寫,哈希表占用記憶體空間小,不會對系統性能產生瓶頸,解決了基於記憶體的小數據量的OLAP存儲和查詢。

2016年12月7日,《一種在線上分析處理系統中多維數據讀寫的方法和裝置》獲得第十八屆中國專利優秀獎。

(概述圖為《一種在線上分析處理系統中多維數據讀寫的方法和裝置》摘要附圖)

基本介紹

  • 中文名:一種在線上分析處理系統中多維數據讀寫的方法和裝置
  • 公布號:CN1949226
  • 授權日:2007年4月18日
  • 申請號:2006101456534
  • 申請日:2006年11月23日
  • 申請人:金蝶軟體(中國)有限公司
  • 地址:廣東省深圳市南山區深南大道市高新技術工業村W1-B4
  • 發明人:林志賢
  • Int.Cl.:G06F17/30(2006.01)
  • 代理機構:北京集佳智慧財產權代理有限公司
  • 代理人:逯長明
  • 類別:發明專利
專利背景,發明內容,專利目的,技術方案,改善效果,附圖說明,技術領域,權利要求,實施方式,榮譽表彰,

專利背景

在科技快速發展的今天,社會各個領域中的需要統計的數巴朵據都飛速增長,海量數據的記錄、查詢為計算機技術帶來新的發展方向,提供新的技術課題。
企業資源計畫(ERP,Enterprise Recourse Planning)系統為企業的帶來新的數據管理方式。通過ERP系統,企業能更加高效的運用、管理企業的各類資源。ERP資料庫中存儲大量的數據,從分析處理過程來看,分析一般需要多表操作、較長的運行時間,若直接利用ERP業務系統的資料庫中2006年11月之前的數據進行決策的分析和推理、將影響ERP系統的效率,並造成繁忙的網路數據傳輸。因此需要結合在線上分析處理系統(OLAP,Online Analytic Processing)。
管理決策人員通過OLAP從不同的角度、快速靈活地對數據倉庫中的數據進行多維分析處理。OLAP系統主要包括多維在線上分析處理系統MOLAP(Multidimensional OLAP)和關係在線上分析處理系統ROLAP(RelationalOLAP)。從邏輯上看,OLAP抽象模型包括結構模型和查詢模型,結構模型表示多維數據集的各種對象,查詢模型表示在這些對象上面的查詢。實現時將結構模型和查詢模型映射為物理實現模型。OLAP結構模型中,核心是多維數據集立方體,即立方體(Cube)。Cube中含有大量的發生數據和聚合數據,聚合數據是由維度層級結構決定的,維度個數、維度成員數以及層級結構的複雜度決定了聚合數據的數據量。其中,維度是人們觀察數據的特定角度,如時間維度、地理維度等。用戶在某個維度上觀察數據時還可以存在細節程度不同層次的各個描述方面。如,時間維度包括:日期、月份、季度、年。維度中包括的成員時維度上的取值,是數據在某個維度中位置的描述。如,“某年某月某日”是在時間維度上位置的描述。通過各個不同的維度,能夠更加靈活的觀測數據。Cube中的每個數據均對應於各個維度中的一個成員,通過各個維度中成員的組合即可查詢到相應的數據。
對於多維的數據結構,OLAP伺服器在數據的存儲和查詢上有不同的實現方式,但大都套用于海量數據,處理時,OLAP伺服器預先存儲有來自數據源中的海量數據,並生成Cube數據,用戶通過OLAP伺服器從不同維度進行數據分析時,將OLAP伺服器中生成的海量Cube數據劃分為多個部分數據蘭乎鍵察,每次將一部分數據讀入到記憶體中建立報表數據,再將記憶體中建立的報表數據組合成完整的報表後,顯示到用戶的終端上。
上述進行OLAP數據分析時,主要是套用于海量數據的查詢、分析,且查拒殃朵詢的Cube數據是已經在OLAP伺服器中生成的。對於烏糠祝小數據量的存儲和查詢,如果仍採用OLAP伺服器生成Cube數據,再通過OLAP伺服器進行Cube數據的查詢、分析,將會對OLAP伺服器利用效率上產生較大的浪費。而2006年11月之前對於小數據量的查詢、分析,還沒有完整的解決方案。

發明內容

專利目的

《一種在線上分析處理系統中多維數據讀寫的方法和裝置》在於提供一種在線上分析處理系統中多維數據讀寫的方法和裝置,以解決上述小數據量的存儲和查詢的問題。

技術方案

《一種在線上分析處理系統中多維數據讀寫的方法和裝置》提供一種在線上分析處理系統中多維數據讀寫的方法,包括:
從數據源中獲取出初始數據,設定初始數據中各個維度中成員的任意組合,將所述組合和其相對應初始數據中的度量值數據寫入到記憶體中,利用所述組合從所述記憶體中讀取相應的度量值數據。
其中,所述寫入包括:將所述任意組合作為哈希表的關鍵字Key,將所述相對應的度量值數據作為哈希表的值Value,將所述組合和所述相對應的度量值數據以哈乃婚凶希表的形式寫入到記憶體中。
其中,所述讀取包括:利用所述關鍵字Key,從記憶體中讀取相對應的度量值數據。
其中,所述寫入包括:在記憶體中建立與各個維度中成員的全部任意組合相對應的多維數組;將所述組合相對應的度量值數據寫入與所述數組下標相對應的記憶體空間中。
其中,所述讀取包括:利用所述數組下標,從記憶體中讀取相對應的數據。
《一種在線上分析處理系統中多維數據讀寫的方法和裝置》還提供一種在線上分析處理系戲埋戒統中多維數據讀寫的裝置,包括:數據採集單元,用於從數據故講元習源中提取初始數據,並傳送至組合生成單元和記憶體讀寫單元;組合生成單元,用於利用初始數據設定各個維度中成員的任意組合,並將所述組合信息傳送至記憶體讀寫單元;記憶體讀寫單元,用於將所述組合和其相對應初始數據中的度量值數據寫入到記憶體中,利用所述組合從所述記憶體中讀取相應的數據。
其中,所述記憶體讀寫單元用於將所述任意組合作為哈希表的關鍵字Key,將所述相對應的度量值數據作為哈希表的值Value,將所述組合和所述相對應的度量值數據以哈希表的形式寫入到記憶體中。
其中,所述記憶體讀寫單元用於利用所述關鍵字Key,從記憶體中讀取相對應的度量值數據。
其中,所述記憶體讀寫單元用於在記憶體中建立與各個維度中成員的全部任意組合相對應的多維數組;將所述組合相對應的度量值數據寫入與所述數組下標相對應的記憶體空間中。
其中,所述記憶體讀寫單元用於利用所述數組下標,從記憶體中讀取相對應的度量值數據。

改善效果

《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的方法和裝置,解決了小數據量的OLAP存儲和查詢,將小數據量的OLAP的存儲和查詢全部在記憶體中處理。在記憶體中讀寫多維數據,將多維數據模型以哈希表的形式進行存儲,更加有利於記憶體的存儲和查詢。而且對於小數據量的讀寫,哈希表占用記憶體空間小,不會對系統性能產生瓶頸,完美地解決了基於記憶體的小數據量的OLAP存儲和查詢。

附圖說明

圖1是《一種在線上分析處理系統中多維數據讀寫的方法和裝置》方法的流程圖;
圖2是《一種在線上分析處理系統中多維數據讀寫的方法和裝置》實施例中維度成員關係的數據結構圖;
圖3是《一種在線上分析處理系統中多維數據讀寫的方法和裝置》實施例中維度成員與數據的對應關係圖;
圖4是《一種在線上分析處理系統中多維數據讀寫的方法和裝置》裝置的結構示意圖。

技術領域

《一種在線上分析處理系統中多維數據讀寫的方法和裝置》涉及計算機技術領域,特別是指一種在線上分析處理系統中多維數據讀寫的方法和裝置。

權利要求

1、一種在線上分析處理系統中多維數據讀寫的方法,其特徵在於,包括:從數據源中獲取出初始數據,設定初始數據中各個維度中成員的任意組合,將所述組合和其相對應初始數據中的度量值數據寫入到記憶體中,利用所述組合從所述記憶體中讀取相應的度量值數據。
2、根據權利要求1所述的方法,其特徵在於,所述寫入包括:將所述任意組合作為哈希表的關鍵字Key,將所述相對應的度量值數據作為哈希表的值Value,將所述組合和所述相對應的度量值數據以哈希表的形式寫入到記憶體中。
3、根據權利要求2所述的方法,其特徵在於,所述讀取包括:利用所述關鍵字Key,從記憶體中讀取相對應的度量值數據。
4、根據權利要求1所述的方法,其特徵在於,所述寫入包括:在記憶體中建立與各個維度中成員的全部任意組合相對應的多維數組;將所述組合相對應的度量值數據寫入與所述數組下標相對應的記憶體空間中。
5、根據權利要求4所述的方法,其特徵在於,所述讀取包括:利用所述數組下標,從記憶體中讀取相對應的數據。
6、一種在線上分析處理系統中多維數據讀寫的裝置,其特徵在於,包括:數據採集單元,用於從數據源中提取初始數據,並傳送至組合生成單元和記憶體讀寫單元;組合生成單元,用於利用初始數據設定各個維度中成員的任意組合,並將所述組合信息傳送至記憶體讀寫單元;記憶體讀寫單元,用於將所述組合和其相對應初始數據中的度量值數據寫入到記憶體中,利用所述組合從所述記憶體中讀取相應的數據。
7、根據權利要求6所述的裝置,其特徵在於,所述記憶體讀寫單元用於將所述任意組合作為哈希表的關鍵字Key,將所述相對應的度量值數據作為哈希表的值Value,將所述組合和所述相對應的度量值數據以哈希表的形式寫入到記憶體中。
8、根據權利要求7所述的裝置,其特徵在於,所述記憶體讀寫單元用於利用所述關鍵字Key,從記憶體中讀取相對應的度量值數據。
9、根據權利要求6所述的裝置,其特徵在於,所述記憶體讀寫單元用於在記憶體中建立與各個維度中成員的全部任意組合相對應的多維數組;將所述組合相對應的度量值數據寫入與所述數組下標相對應的記憶體空間中。
10、根據權利要求9所述的裝置,其特徵在於,所述記憶體讀寫單元用於利用所述數組下標,從記憶體中讀取相對應的度量值數據。

實施方式

下面詳細闡述《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的思想和具體實現的過程,《一種在線上分析處理系統中多維數據讀寫的方法和裝置》主要套用於記憶體嵌入式小數據量的OLAP。對於生成的多維數據,《一種在線上分析處理系統中多維數據讀寫的方法和裝置》將各個維度中成員的組合和與其相對應的數據存儲在記憶體中進行分析處理。參見圖1,
《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的主要步驟包括:
步驟S101:從數據源中獲取出初始數據;
步驟S102:設定初始數據中各個維度中成員的任意組合;
步驟S103:將所述組合和其相對應初始數據中的度量值數據寫入到記憶體中,利用所述組合從所述記憶體中讀取相應的度量值數據。
下面給出《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的具體實施例。
對於公司產生的數據,需要預先設定數據的維度(Dimension),維度:是人們觀察數據的特定角度,是考慮問題時的一類屬性,屬性集合構成一個維度(時間維度、地理維度等)。
維度的層次(Level):是人們觀察數據的某個特定角度(即某個維)還可以存在細節程度不同的各個描述方面。如:時間維度:日期、月份、季度、年。
維度的成員(Member):維度上的取值,是數據在某個維度中位置的描述。如:“某年某月某日”是在時間維度上位置的描述。
通過各個不同的維度,能夠更加靈活的觀測數據。每個維度的層級關係是以樹型的數據結構進行存儲的,這樣便於進行數據的匯總和聚集。
下面給出《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的具體實施例。為便於更清晰地理解對《一種在線上分析處理系統中多維數據讀寫的方法和裝置》,在《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的實施例中維度以三維為例。
以特快專遞公司的數據為例,在進行OLAP分析時,需要先從數據源中獲取數據,數據源可以是資料庫或以各類格式軟體存儲的數據。獲取初始數據後,取出初始數據中的維度成員,設定初始數據中各個維度中成員的任意組合,通過維度成員與度量值數據的對應關係生成維度成員組合與度量值數據的對應關係。如,特快專遞公司產生的數據包括三個維度,分別為源、路線和時間。各個維度的層級關係參見圖2。源的維度成員包括:航空、海路、公路、鐵路四個成員;路線的維度成員包括:非洲、亞洲、澳洲、歐洲、北美洲、南美洲六個成員;時間的維度成員包括:第一季度、第二季度、第三季度、第四季度四個成員。在各個維度上任意取出一個成員,組成的組合稱為元組,如(航空,非洲,第一季度);(航空,南美洲,第二季度)等。每個元組中對應於一組度量值數據,在該組度量值數據中包括一個或多個數據。
各個維度中的成員與數據的對應關係參見圖3。在圖3中,維度成員和相對應的數據以立方體的形式展現出來。在立方體中,有三個維度和兩個度量值,立方體內的單元格存儲的是度量值,度量值代表事實數據。如元組(航空、非洲、第一季度)對應的單元格對應有兩個度量值為190和99/02/17,(航空、南美洲、第二季度)對應的單元格對應有兩個度量值為490和99/06/03。立方體中的每個單元格也對應於各個維度上的一個成員。由於《一種在線上分析處理系統中多維數據讀寫的方法和裝置》最終套用於小數據量,因此在整個立方體中,存儲的數據量是稀疏的。在基於記憶體的小數據量的OLAP,在存儲到記憶體中時,以哈希表的形式存儲最為簡便,快捷。在各類語言中,如JAVA、VC++等等,調用哈希函式時,都會自動將數據以哈希表的形式存儲到記憶體中。
存儲時,可以將元組作為哈希函式的關鍵字Key,將度量值作為哈希函式的Value值。具體實現代碼如下:
Publicvoidput(Objectkey,Objectvalue);
PublicObjectget(Objectkey);
其中,put和get函式用於存儲和讀取數據。將元組和度量值作為哈希表存儲,不需要特殊處理維度的層級關係;讀取數據時,通過get函式能夠根據關鍵字key從記憶體中讀出相應的數據。
哈希表是一種能夠實現快速查找的數據結構,查找記錄時需進行一系列和關鍵字的比較。查找方法是建立在比較的基礎上,查找的效率依賴於查找過程中所進行的比較次數。
理想的情況是能直接找到需要的記錄,因此必須在記錄的存儲位置和它的關鍵字之間建立一種確定的對應關係,使每個關鍵字和存儲數據的唯一的存儲位置相對應。
哈希函式在實現時,記錄的存儲位置和它的關鍵字之間可以有多種對應關係,每種對應關係在查找速率和效率上都有各自的優點。建立對應關係時,需要先確定Key值,即由組成各個元組的成員確定出一個Key值,由Key值確定出數據在記憶體中的地址。確定的方式主要由以下幾種,如:
直接定址法,是直接將Key值作為記憶體中的地址來存儲數據。這種方式的特點是計算簡單,衝突最小。
數字分析法,是將Key的若干數位作為記憶體中的地址。
平方取中法,是將Key取平方後的中間幾位作為記憶體中的地址。
摺疊法,是將Key值分割成位數相同的幾部分(最後一部分的位數可以不同),然後取這幾個部分的疊加和(捨去進位)作為記憶體中的地址。
除留餘數法,是將Key值被某個不大於哈希表表長的數除後所得餘數為記憶體地址。
隨機數法,是選擇一個隨機函式,將Key值的隨機函式值作為記憶體地址。
哈希函式在確定Key值和Value值的對應關係時,大都是通過上述幾種函式來確定記憶體地址和存儲數據的對應關係。
用戶在進行OLAP操作時,各個維度上的成員可以通過圖2所示的父節點,即匯總級別上的成員,得到子節點位於即維度上成員的Key值和需要匯總的Value值。如:
查詢時間維度上的匯總級別的成員上半年,與航空、非洲組成的元組(航空、非洲、上半年)對應的度量值時,先找出(航空、非洲、上半年)的兩個子節點(航空、非洲、第一季度)和(航空、非洲、第二季度)的Key值,(航空、非洲、上半年)的度量值就可通過查詢(航空、非洲、第一季度)和(航空、非洲、第二季度)的Key值所對應的Value值聚集匯總得到。實現時可以通過維度中父節點和子節點之間節點的層級關係進行處理。
以哈希表存儲,存儲的空間占用較少,利用率較高,且不易OLAP在基於記憶體實現時造成系統的性能瓶頸。
《一種在線上分析處理系統中多維數據讀寫的方法和裝置》在將元組和其對應的度量值寫入到記憶體中的方式不止一種,有多種實現的方式,還可以以數組的方式寫入到記憶體中。在以數組的方式寫入到記憶體中時,需要事先將各個維度成員所能組成的所有元組分配好相應的記憶體空間。每個維度對應一個數組維度,數組中的每個空間的下標值對應一個元組的組合。數組中空間的下標值對應存儲單元的存儲空間用於所存儲的數據。
數組和哈希表的存儲方式是不同的,數組需要預先占用所有各個元組對應的空間,由於小數據量的數據在整個數組中是稀疏的,會造成一定空間的浪費。哈希表在數據存儲中是隨著數據的不斷存儲而不斷的分配空間。因此,在向記憶體寫入數據時,以哈希表的形式會比數組的形式更能提高系統效率,因為占用的記憶體空間少,系統可以使用更多的記憶體空間完成其它工作。
《一種在線上分析處理系統中多維數據讀寫的方法和裝置》還提供一種在線上分析處理系統中多維數據讀寫的裝置,包括:
數據採集單元401,用於從數據源中提取初始數據,並傳送至組合生成單元402和記憶體讀寫單元403;
組合生成單元402,用於利用初始數據設定各個維度中成員的任意組合,並將所述組合信息傳送至記憶體讀寫單元403;
記憶體讀寫單元403,用於將所述組合和其相對應初始數據中的度量值數據寫入到記憶體中,利用所述組合從所述記憶體中讀取相應的數據。
在《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的裝置中,所述記憶體讀寫單元402用於將所述任意組合作為哈希表的關鍵字Key,將所述相對應的度量值數據作為哈希表的值Value,將所述組合和所述相對應的度量值數據以哈希表的形式寫入到記憶體中。
在《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的裝置中,所述記憶體讀寫單元403用於利用所述關鍵字Key,從記憶體中讀取相對應的度量值數據。
在《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的裝置中,所述記憶體讀寫單元403用於在記憶體中建立與各個維度中成員的全部任意組合相對應的多維數組;
將所述組合相對應的度量值數據寫入與所述數組下標相對應的記憶體空間中。
在《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的裝置中,所述記憶體讀寫單元403用於利用所述數組下標,從記憶體中讀取相對應的度量值數據。

榮譽表彰

2016年12月7日,《一種在線上分析處理系統中多維數據讀寫的方法和裝置》獲得第十八屆中國專利優秀獎。
對於多維的數據結構,OLAP伺服器在數據的存儲和查詢上有不同的實現方式,但大都套用于海量數據,處理時,OLAP伺服器預先存儲有來自數據源中的海量數據,並生成Cube數據,用戶通過OLAP伺服器從不同維度進行數據分析時,將OLAP伺服器中生成的海量Cube數據劃分為多個部分數據,每次將一部分數據讀入到記憶體中建立報表數據,再將記憶體中建立的報表數據組合成完整的報表後,顯示到用戶的終端上。
上述進行OLAP數據分析時,主要是套用于海量數據的查詢、分析,且查詢的Cube數據是已經在OLAP伺服器中生成的。對於小數據量的存儲和查詢,如果仍採用OLAP伺服器生成Cube數據,再通過OLAP伺服器進行Cube數據的查詢、分析,將會對OLAP伺服器利用效率上產生較大的浪費。而2006年11月之前對於小數據量的查詢、分析,還沒有完整的解決方案。

發明內容

專利目的

《一種在線上分析處理系統中多維數據讀寫的方法和裝置》在於提供一種在線上分析處理系統中多維數據讀寫的方法和裝置,以解決上述小數據量的存儲和查詢的問題。

技術方案

《一種在線上分析處理系統中多維數據讀寫的方法和裝置》提供一種在線上分析處理系統中多維數據讀寫的方法,包括:
從數據源中獲取出初始數據,設定初始數據中各個維度中成員的任意組合,將所述組合和其相對應初始數據中的度量值數據寫入到記憶體中,利用所述組合從所述記憶體中讀取相應的度量值數據。
其中,所述寫入包括:將所述任意組合作為哈希表的關鍵字Key,將所述相對應的度量值數據作為哈希表的值Value,將所述組合和所述相對應的度量值數據以哈希表的形式寫入到記憶體中。
其中,所述讀取包括:利用所述關鍵字Key,從記憶體中讀取相對應的度量值數據。
其中,所述寫入包括:在記憶體中建立與各個維度中成員的全部任意組合相對應的多維數組;將所述組合相對應的度量值數據寫入與所述數組下標相對應的記憶體空間中。
其中,所述讀取包括:利用所述數組下標,從記憶體中讀取相對應的數據。
《一種在線上分析處理系統中多維數據讀寫的方法和裝置》還提供一種在線上分析處理系統中多維數據讀寫的裝置,包括:數據採集單元,用於從數據源中提取初始數據,並傳送至組合生成單元和記憶體讀寫單元;組合生成單元,用於利用初始數據設定各個維度中成員的任意組合,並將所述組合信息傳送至記憶體讀寫單元;記憶體讀寫單元,用於將所述組合和其相對應初始數據中的度量值數據寫入到記憶體中,利用所述組合從所述記憶體中讀取相應的數據。
其中,所述記憶體讀寫單元用於將所述任意組合作為哈希表的關鍵字Key,將所述相對應的度量值數據作為哈希表的值Value,將所述組合和所述相對應的度量值數據以哈希表的形式寫入到記憶體中。
其中,所述記憶體讀寫單元用於利用所述關鍵字Key,從記憶體中讀取相對應的度量值數據。
其中,所述記憶體讀寫單元用於在記憶體中建立與各個維度中成員的全部任意組合相對應的多維數組;將所述組合相對應的度量值數據寫入與所述數組下標相對應的記憶體空間中。
其中,所述記憶體讀寫單元用於利用所述數組下標,從記憶體中讀取相對應的度量值數據。

改善效果

《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的方法和裝置,解決了小數據量的OLAP存儲和查詢,將小數據量的OLAP的存儲和查詢全部在記憶體中處理。在記憶體中讀寫多維數據,將多維數據模型以哈希表的形式進行存儲,更加有利於記憶體的存儲和查詢。而且對於小數據量的讀寫,哈希表占用記憶體空間小,不會對系統性能產生瓶頸,完美地解決了基於記憶體的小數據量的OLAP存儲和查詢。

附圖說明

圖1是《一種在線上分析處理系統中多維數據讀寫的方法和裝置》方法的流程圖;
圖2是《一種在線上分析處理系統中多維數據讀寫的方法和裝置》實施例中維度成員關係的數據結構圖;
圖3是《一種在線上分析處理系統中多維數據讀寫的方法和裝置》實施例中維度成員與數據的對應關係圖;
圖4是《一種在線上分析處理系統中多維數據讀寫的方法和裝置》裝置的結構示意圖。

技術領域

《一種在線上分析處理系統中多維數據讀寫的方法和裝置》涉及計算機技術領域,特別是指一種在線上分析處理系統中多維數據讀寫的方法和裝置。

權利要求

1、一種在線上分析處理系統中多維數據讀寫的方法,其特徵在於,包括:從數據源中獲取出初始數據,設定初始數據中各個維度中成員的任意組合,將所述組合和其相對應初始數據中的度量值數據寫入到記憶體中,利用所述組合從所述記憶體中讀取相應的度量值數據。
2、根據權利要求1所述的方法,其特徵在於,所述寫入包括:將所述任意組合作為哈希表的關鍵字Key,將所述相對應的度量值數據作為哈希表的值Value,將所述組合和所述相對應的度量值數據以哈希表的形式寫入到記憶體中。
3、根據權利要求2所述的方法,其特徵在於,所述讀取包括:利用所述關鍵字Key,從記憶體中讀取相對應的度量值數據。
4、根據權利要求1所述的方法,其特徵在於,所述寫入包括:在記憶體中建立與各個維度中成員的全部任意組合相對應的多維數組;將所述組合相對應的度量值數據寫入與所述數組下標相對應的記憶體空間中。
5、根據權利要求4所述的方法,其特徵在於,所述讀取包括:利用所述數組下標,從記憶體中讀取相對應的數據。
6、一種在線上分析處理系統中多維數據讀寫的裝置,其特徵在於,包括:數據採集單元,用於從數據源中提取初始數據,並傳送至組合生成單元和記憶體讀寫單元;組合生成單元,用於利用初始數據設定各個維度中成員的任意組合,並將所述組合信息傳送至記憶體讀寫單元;記憶體讀寫單元,用於將所述組合和其相對應初始數據中的度量值數據寫入到記憶體中,利用所述組合從所述記憶體中讀取相應的數據。
7、根據權利要求6所述的裝置,其特徵在於,所述記憶體讀寫單元用於將所述任意組合作為哈希表的關鍵字Key,將所述相對應的度量值數據作為哈希表的值Value,將所述組合和所述相對應的度量值數據以哈希表的形式寫入到記憶體中。
8、根據權利要求7所述的裝置,其特徵在於,所述記憶體讀寫單元用於利用所述關鍵字Key,從記憶體中讀取相對應的度量值數據。
9、根據權利要求6所述的裝置,其特徵在於,所述記憶體讀寫單元用於在記憶體中建立與各個維度中成員的全部任意組合相對應的多維數組;將所述組合相對應的度量值數據寫入與所述數組下標相對應的記憶體空間中。
10、根據權利要求9所述的裝置,其特徵在於,所述記憶體讀寫單元用於利用所述數組下標,從記憶體中讀取相對應的度量值數據。

實施方式

下面詳細闡述《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的思想和具體實現的過程,《一種在線上分析處理系統中多維數據讀寫的方法和裝置》主要套用於記憶體嵌入式小數據量的OLAP。對於生成的多維數據,《一種在線上分析處理系統中多維數據讀寫的方法和裝置》將各個維度中成員的組合和與其相對應的數據存儲在記憶體中進行分析處理。參見圖1,
《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的主要步驟包括:
步驟S101:從數據源中獲取出初始數據;
步驟S102:設定初始數據中各個維度中成員的任意組合;
步驟S103:將所述組合和其相對應初始數據中的度量值數據寫入到記憶體中,利用所述組合從所述記憶體中讀取相應的度量值數據。
下面給出《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的具體實施例。
對於公司產生的數據,需要預先設定數據的維度(Dimension),維度:是人們觀察數據的特定角度,是考慮問題時的一類屬性,屬性集合構成一個維度(時間維度、地理維度等)。
維度的層次(Level):是人們觀察數據的某個特定角度(即某個維)還可以存在細節程度不同的各個描述方面。如:時間維度:日期、月份、季度、年。
維度的成員(Member):維度上的取值,是數據在某個維度中位置的描述。如:“某年某月某日”是在時間維度上位置的描述。
通過各個不同的維度,能夠更加靈活的觀測數據。每個維度的層級關係是以樹型的數據結構進行存儲的,這樣便於進行數據的匯總和聚集。
下面給出《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的具體實施例。為便於更清晰地理解對《一種在線上分析處理系統中多維數據讀寫的方法和裝置》,在《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的實施例中維度以三維為例。
以特快專遞公司的數據為例,在進行OLAP分析時,需要先從數據源中獲取數據,數據源可以是資料庫或以各類格式軟體存儲的數據。獲取初始數據後,取出初始數據中的維度成員,設定初始數據中各個維度中成員的任意組合,通過維度成員與度量值數據的對應關係生成維度成員組合與度量值數據的對應關係。如,特快專遞公司產生的數據包括三個維度,分別為源、路線和時間。各個維度的層級關係參見圖2。源的維度成員包括:航空、海路、公路、鐵路四個成員;路線的維度成員包括:非洲、亞洲、澳洲、歐洲、北美洲、南美洲六個成員;時間的維度成員包括:第一季度、第二季度、第三季度、第四季度四個成員。在各個維度上任意取出一個成員,組成的組合稱為元組,如(航空,非洲,第一季度);(航空,南美洲,第二季度)等。每個元組中對應於一組度量值數據,在該組度量值數據中包括一個或多個數據。
各個維度中的成員與數據的對應關係參見圖3。在圖3中,維度成員和相對應的數據以立方體的形式展現出來。在立方體中,有三個維度和兩個度量值,立方體內的單元格存儲的是度量值,度量值代表事實數據。如元組(航空、非洲、第一季度)對應的單元格對應有兩個度量值為190和99/02/17,(航空、南美洲、第二季度)對應的單元格對應有兩個度量值為490和99/06/03。立方體中的每個單元格也對應於各個維度上的一個成員。由於《一種在線上分析處理系統中多維數據讀寫的方法和裝置》最終套用於小數據量,因此在整個立方體中,存儲的數據量是稀疏的。在基於記憶體的小數據量的OLAP,在存儲到記憶體中時,以哈希表的形式存儲最為簡便,快捷。在各類語言中,如JAVA、VC++等等,調用哈希函式時,都會自動將數據以哈希表的形式存儲到記憶體中。
存儲時,可以將元組作為哈希函式的關鍵字Key,將度量值作為哈希函式的Value值。具體實現代碼如下:
Publicvoidput(Objectkey,Objectvalue);
PublicObjectget(Objectkey);
其中,put和get函式用於存儲和讀取數據。將元組和度量值作為哈希表存儲,不需要特殊處理維度的層級關係;讀取數據時,通過get函式能夠根據關鍵字key從記憶體中讀出相應的數據。
哈希表是一種能夠實現快速查找的數據結構,查找記錄時需進行一系列和關鍵字的比較。查找方法是建立在比較的基礎上,查找的效率依賴於查找過程中所進行的比較次數。
理想的情況是能直接找到需要的記錄,因此必須在記錄的存儲位置和它的關鍵字之間建立一種確定的對應關係,使每個關鍵字和存儲數據的唯一的存儲位置相對應。
哈希函式在實現時,記錄的存儲位置和它的關鍵字之間可以有多種對應關係,每種對應關係在查找速率和效率上都有各自的優點。建立對應關係時,需要先確定Key值,即由組成各個元組的成員確定出一個Key值,由Key值確定出數據在記憶體中的地址。確定的方式主要由以下幾種,如:
直接定址法,是直接將Key值作為記憶體中的地址來存儲數據。這種方式的特點是計算簡單,衝突最小。
數字分析法,是將Key的若干數位作為記憶體中的地址。
平方取中法,是將Key取平方後的中間幾位作為記憶體中的地址。
摺疊法,是將Key值分割成位數相同的幾部分(最後一部分的位數可以不同),然後取這幾個部分的疊加和(捨去進位)作為記憶體中的地址。
除留餘數法,是將Key值被某個不大於哈希表表長的數除後所得餘數為記憶體地址。
隨機數法,是選擇一個隨機函式,將Key值的隨機函式值作為記憶體地址。
哈希函式在確定Key值和Value值的對應關係時,大都是通過上述幾種函式來確定記憶體地址和存儲數據的對應關係。
用戶在進行OLAP操作時,各個維度上的成員可以通過圖2所示的父節點,即匯總級別上的成員,得到子節點位於即維度上成員的Key值和需要匯總的Value值。如:
查詢時間維度上的匯總級別的成員上半年,與航空、非洲組成的元組(航空、非洲、上半年)對應的度量值時,先找出(航空、非洲、上半年)的兩個子節點(航空、非洲、第一季度)和(航空、非洲、第二季度)的Key值,(航空、非洲、上半年)的度量值就可通過查詢(航空、非洲、第一季度)和(航空、非洲、第二季度)的Key值所對應的Value值聚集匯總得到。實現時可以通過維度中父節點和子節點之間節點的層級關係進行處理。
以哈希表存儲,存儲的空間占用較少,利用率較高,且不易OLAP在基於記憶體實現時造成系統的性能瓶頸。
《一種在線上分析處理系統中多維數據讀寫的方法和裝置》在將元組和其對應的度量值寫入到記憶體中的方式不止一種,有多種實現的方式,還可以以數組的方式寫入到記憶體中。在以數組的方式寫入到記憶體中時,需要事先將各個維度成員所能組成的所有元組分配好相應的記憶體空間。每個維度對應一個數組維度,數組中的每個空間的下標值對應一個元組的組合。數組中空間的下標值對應存儲單元的存儲空間用於所存儲的數據。
數組和哈希表的存儲方式是不同的,數組需要預先占用所有各個元組對應的空間,由於小數據量的數據在整個數組中是稀疏的,會造成一定空間的浪費。哈希表在數據存儲中是隨著數據的不斷存儲而不斷的分配空間。因此,在向記憶體寫入數據時,以哈希表的形式會比數組的形式更能提高系統效率,因為占用的記憶體空間少,系統可以使用更多的記憶體空間完成其它工作。
《一種在線上分析處理系統中多維數據讀寫的方法和裝置》還提供一種在線上分析處理系統中多維數據讀寫的裝置,包括:
數據採集單元401,用於從數據源中提取初始數據,並傳送至組合生成單元402和記憶體讀寫單元403;
組合生成單元402,用於利用初始數據設定各個維度中成員的任意組合,並將所述組合信息傳送至記憶體讀寫單元403;
記憶體讀寫單元403,用於將所述組合和其相對應初始數據中的度量值數據寫入到記憶體中,利用所述組合從所述記憶體中讀取相應的數據。
在《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的裝置中,所述記憶體讀寫單元402用於將所述任意組合作為哈希表的關鍵字Key,將所述相對應的度量值數據作為哈希表的值Value,將所述組合和所述相對應的度量值數據以哈希表的形式寫入到記憶體中。
在《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的裝置中,所述記憶體讀寫單元403用於利用所述關鍵字Key,從記憶體中讀取相對應的度量值數據。
在《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的裝置中,所述記憶體讀寫單元403用於在記憶體中建立與各個維度中成員的全部任意組合相對應的多維數組;
將所述組合相對應的度量值數據寫入與所述數組下標相對應的記憶體空間中。
在《一種在線上分析處理系統中多維數據讀寫的方法和裝置》的裝置中,所述記憶體讀寫單元403用於利用所述數組下標,從記憶體中讀取相對應的度量值數據。

榮譽表彰

2016年12月7日,《一種在線上分析處理系統中多維數據讀寫的方法和裝置》獲得第十八屆中國專利優秀獎。

熱門詞條

聯絡我們