JP2004021628A - 多次元データベース管理方法及びその実施装置並びにその処理プログラム - Google Patents
多次元データベース管理方法及びその実施装置並びにその処理プログラム Download PDFInfo
- Publication number
- JP2004021628A JP2004021628A JP2002175960A JP2002175960A JP2004021628A JP 2004021628 A JP2004021628 A JP 2004021628A JP 2002175960 A JP2002175960 A JP 2002175960A JP 2002175960 A JP2002175960 A JP 2002175960A JP 2004021628 A JP2004021628 A JP 2004021628A
- Authority
- JP
- Japan
- Prior art keywords
- data
- dimension
- aggregation
- multidimensional database
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】事前集約処理時の入出力処理負荷が各格納領域でできるだけ均等となる様な分散格納を支援することが可能な技術を提供する。
【解決手段】事前集約処理の行われる多次元データベースのデータの分散格納を支援する多次元データベース管理方法において、多次元データベースの入力データを読み込むステップと、前記読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計するステップと、前記メンバを事前集約先の次元メンバにマッピングし、前記集計した次元メンバ数量を事前集約先の次元メンバ毎に集計するステップと、前記集計した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求めるステップとを有するものである。
【選択図】 図1
【解決手段】事前集約処理の行われる多次元データベースのデータの分散格納を支援する多次元データベース管理方法において、多次元データベースの入力データを読み込むステップと、前記読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計するステップと、前記メンバを事前集約先の次元メンバにマッピングし、前記集計した次元メンバ数量を事前集約先の次元メンバ毎に集計するステップと、前記集計した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求めるステップとを有するものである。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は多次元データベースを管理する多次元データベース管理装置に関し、特に多次元データを高速に事前集約処理するのに好適なデータの分割を行う多次元データベース管理装置に適用して有効な技術に関するものである。
【0002】
【従来の技術】
従来のデータベースシステムにおいて、1個のデータベースやテーブル等を複数の格納領域に分散格納させることは、特に並列処理を行う際に処理能力の面から見て有効な手段である。
【0003】
リレーショナルデータベース管理システムでは、並列処理の適用においてデータの複数の格納領域への割り振りにの為にレンジ分割等が用いられている(DeWitt,D.,et al., ’The Gamma Database Machine Project’, IEEE Transactions on Knowledge and Data Engineering, vol.2,no.1,pp.44−63,1990)。ここでレンジ分割とは、1個以上の次元に関し、境界値を元にデータを分割するものであるが、この境界値はユーザの推量や経験によって決められるものである。この為、実際にデータを格納すると、うまく均等に分割できなかったり、事前集約処理に大きな時間がかかったりすることがある。これは、データが多次元空間中に均一に分布していることが前記境界値の決定の際に暗黙に仮定されていたり、データの偏りを無視したデータの分割を行った為に入出力処理が局所的に多く発生する為に起こる。
【0004】
複数の格納領域にデータを分けて管理するデータベースシステムにおいて、1個のスキーマに含まれるデータをどの様に分けるのかはデータの格納処理や検索処理の処理時間、使用するリソースの量を大きく左右する要素である。
【0005】
図13は従来の複数の格納領域を持つデータベースシステムの一例を示す図である。図13では、前記の様なデータ分割の行われる格納領域を複数持つデータベースシステムの例を表しており、図中のシステムは4箇所の格納領域を持っている。ここでデータベースの例としてコンビニエンスストアの売上高を格納したデータベースを考える。
【0006】
図14は従来のコンビニエンスストアの売上高データベースのデータ分布並びにデータ分割の例を示す図である。図14の「コンビニエンスストアの売上高データベース(多次元空間のイメージ)」のデータベースは、4個の次元(商品、販売時期、店舗、売上高)を持つものとし、図14の「コンビニエンスストアの売上高データベース(多次元空間のイメージ)」では、立方体のそれぞれの辺が商品、販売時期、店舗にあたり、立方体の中に売上高が表されるものとする。
【0007】
ここで、店舗と販売時期に着目し、そのデータの分布が図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)」の様になっているものとすると、図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)」から分かる様に、店舗間の売上の差が大きく、販売時期に関しては比較的偏りが少ない。
【0008】
ここで、図13のデータベースシステムでは格納領域が4個あることから、データベースの管理者がこのデータベースを4個に分ける場合を考える。
【0009】
データベース管理者は、データの分布を図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)」の様に把握しているとは限らないので、データベース管理者が、図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)パターン1」の様にデータを分割した場合を考える。ここで、図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)パターン1」中の吹き出しは、図13のデータベースの格納領域を示すものとする。
【0010】
このとき図から見てはっきり分かるのは、格納領域AとDにはデータが集中し、格納領域BとCにはデータが比較的少ないことである。この様なデータ分割を行うと、例えばデータを格納する場合には格納領域AやDにはI/Oが集中し、システム全体の処理時間を遅くする危険性が高い。
【0011】
或いは、データベース管理者が、図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)パターン2」の様にデータを各格納領域に割り振ったとすると、データ件数自体は格納領域A〜Dにはほぼ均等にデータが行き渡る様に見えるが、事前集約処理において図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)パターン3」の様な範囲のデータに集約をかける場合(店舗次元上で集約を行った場合)、格納領域AとBにはごく少ないデータしかない為、格納領域AとBではI/Oは多く発生しないが、格納領域CとDにはデータが多量にある為、格納領域CとDでI/Oが多く発生する。この為、せっかく格納領域を4個に分けても格納領域毎にデータの偏りが大きいままであり、十分な負荷分散は行われず、処理時間は必要以上に長くなる。
【0012】
実際、既存のデータベースシステムでは事前集約処理に多くの時間が必要となる。特に多次元データベースは複数の次元を持ち、この為、ユーザはしばしば多くの箇所を事前集約する必要がある。個々の集約箇所に関して事前集約に長い時間がかかり、集約箇所が複数あるのだから事前集約が完了するのに長い時間、例えば丸一昼夜かかる様なこともある。
【0013】
個々の集約箇所について事前集約で長い時間がかかる理由の一つはデータの分布を十分に加味せずにレンジ分割等を行うことが挙げられる。多くの場合、ユーザは経験や推量に基づく分割位置の設定や均一なデータ分布を仮定したデータの分割を行っている。この為、実際には格納先毎にデータ量に差が出たり、幾つかの次元ではデータの偏りが大きい為に格納先のごく一部で入出力処理が多発し、必然的に処理時間そのものが長くなる。すなわち、多次元データベースをうまく格納する為にはデータの分布を知ることが必要である。
【0014】
多次元データベースにおいてはもう1点考慮すべき事項がある。事前集約処理では集約した結果のデータ分布は集約元と異なる可能性が高い。この為、事前集約結果の格納の際にI/Oをできるだけ均等にしようとする場合には、事前集約結果のデータ分布を予測し、最適なデータの分割を行うことが必要となる。事前集約はいくつかの次元に関して集約計算を行うものである。実際の集約計算の結果、データの分布が集約前と異なることは容易に起こりえる。この例を図15で示す。
【0015】
図15は従来のコンビニエンスストアの多次元データの商品次元の階層構造の一例を示す図である。図15ではコンビニエンスストアの商品次元の構造を表しており、食品や書籍は多くあるが、他の商品は比較的少ない。下の段は事前集約する前であり、上の段は事前集約した後である。
【0016】
お弁当や雑誌等は商品の点数が多い為、事前集約の前にはデータは比較的広い範囲に分散される。しかし、お弁当や飲み物が全て食品に集約されている。この為、集約後には多くのデータが狭いところに集まることが分かる。この結果、事前集約後にはデータの偏り具合が大きく変わる。事前集約結果の格納の際にI/Oをできるだけ均等にしようとする場合には、この様な集約計算によるデータ分布の変化を加味したデータ分布の解析を可能とすることが求められる。
【0017】
更に、多次元空間上のデータの分布を知る上でネックとなるのが多次元空間そのものが膨大な大きさになる点である。例えば先程のコンビニエンスストアの例で、商品が300アイテム、店舗が1000店、販売時期が2年(最下位のレベルを分とすれば、1051200分)である場合、これらの積が多次元空間の論理的な大きさである。この様な大きなデータをそのまま計算機上で論理的に再現することは困難である。
【0018】
仮に論理的な1セルを1ビットで表すとして、先の商品、店舗、時間の3次元だけでも作り出される論理的なセルを全て表現するには315360000000ビット必要となる。更に顧客の年代、性別、天気、気温、湿度等を次元として加えた場合、多次元空間は爆発的な大きさになる。実際、実用的なレベルでは多次元データベースの次元数は10次元を超えることも至極普通に起こる。すなわち、多次元空間をそのまま計算机上で取り扱うのは現実的な解決方法ではない。この為、ビットマップ等を使わずにデータ分布を知る手段が必要となる。
【0019】
【発明が解決しようとする課題】
前記従来技術において、多次元データベースのデータを複数の格納領域に分散格納させる場合にデータが多次元空間中に均一に分布していると仮定してデータ分割を行っている為、事前集約処理等の際に入出力処理が局所的に多く発生するという問題が生じることがある。
【0020】
また前記従来技術において、多次元データベースのデータを複数の格納領域に分散格納させて事前集約を行う場合に事前集約前後でのデータ分布の変化を考慮していない為、事前集約結果を格納する際に入出力処理が局所的に多く発生するという問題が生じることがある。
【0021】
また前記従来技術において多次元データベースを構成するデータを論理的なセルで表現した場合には爆発的な大きさのビット数が必要となる為、ビットマップ等を用いてデータ分布を知るのが難しいという問題がある。
【0022】
本発明の目的は上記問題を解決し、事前集約処理時の入出力処理負荷が各格納領域でできるだけ均等となる様な分散格納を支援することが可能な技術を提供することにある。
【0023】
【課題を解決するための手段】
本発明は、事前集約処理の行われる多次元データベースのデータの分散格納を支援する多次元データベース管理装置において、事前集約処理の行われる多次元データベースのデータ分布を提示するものである。
【0024】
本発明の多次元データベース管理装置において、多次元データベースを構成する入力データを読み込むと、前記読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計し、次元メンバ数量テーブルへ格納する。
【0025】
次に、事前集約先の次元を示す集約先情報と、前記集計した次元メンバから事前集約先の次元メンバまでの階層構造を示す階層情報とを参照して、前記集計した次元メンバを事前集約先の次元メンバにマッピングし、前記次元メンバ数量テーブルに格納した次元メンバ数量を事前集約先の次元メンバ毎に集計して事前集約先の次元メンバ数量テーブルへ格納する。そして、前記事前集約先の次元メンバ数量テーブルへ格納した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求め、これをデータベース管理者に提示する。
【0026】
従来の事前集約処理では、ある次元の事前集約処理の際に処理されるデータがどの様に分布しているかは明らかではなかった為、データ分布とは無関係に事前集約処理を実行して事前集約後のデータの分散格納を行うこととなり、一部の格納領域への入出力処理が集中する場合があった。
【0027】
本発明では、事前集約処理の際に処理されるデータのデータ分布を提示するので、そのデータベース管理者が行おうとしている事前集約処理におけるデータのデータ分布に合わせ、複数の格納領域への入出力処理が均等に行われる様にデータの分散格納を行うことができる。
【0028】
以上の様に本発明の多次元データベース管理装置によれば、事前集約処理の行われる多次元データベースのデータ分布を提示するので、事前集約処理時の入出力処理負荷が各格納領域でできるだけ均等となる様な分散格納を支援することが可能である。
【0029】
【発明の実施の形態】
以下に事前集約処理の行われる多次元データベースのデータの分散格納を支援する一実施形態の多次元データベース管理装置について説明する。
【0030】
図1は本実施形態の多次元データベース管理装置の概略構成を示す図である。図1に示す様に本実施形態の多次元データベース管理装置は、入力データ読み込み処理部201と、次元切り出し/集計処理部202と、マッピング処理部203と、データ分布解析処理部204とを有している。
【0031】
入力データ読み込み処理部201は、多次元データベースの入力データを読み込む処理部である。次元切り出し/集計処理部202は、前記読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計する処理部である。
【0032】
マッピング処理部203は、前記メンバを事前集約先の次元メンバにマッピングし、前記集計した次元メンバ数量を事前集約先の次元メンバ毎に集計する処理部である。データ分布解析処理部204は、前記集計した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求める処理部である。
【0033】
多次元データベース管理装置を入力データ読み込み処理部201、次元切り出し/集計処理部202、マッピング処理部203及びデータ分布解析処理部204として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【0034】
本実施形態の多次元データベース管理装置は、内部的にデータ読み込み処理、次元集計/切り出し処理、マッピング処理、データ分布解析処理の4つの処理フェーズを持ち、事前集約処理で処理されるデータのデータ分布を提示する処理を行う。
【0035】
図2は本実施形態のデータ解析処理の処理手順を示すフローチャートである。図2に示す様に本実施形態の多次元データベース管理装置は、多次元データベースの入力データを読み込み、その読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計した後、前記メンバを事前集約先の次元メンバにマッピングすることにより、前記集計した次元メンバ数量を事前集約先の次元メンバ毎に集計し、その集計した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求める処理を行う。
【0036】
図1の入力データ読み込み処理部201は、入力データを読み込む処理を担当する処理部であり、図2ではステップ401にあたる処理を行う。データの読み込みは入力データの終端まで行い、読み込んだデータの中から、多次元データベースの各次元のメンバに相当する部分を切り出す(CSV: Comma Separated Value形式のファイルであれば、カラム番号等を元にして入力データから取り出すことができる)。入力データのどこに各次元に相当するデータがあるかを示す情報はデータベース管理者が与えるものとし、図1及び図2では入力データ位置情報がこれに該当するものとする。入力データ位置情報の例として図3を挙げる。
【0037】
図3は本実施形態の入力データ位置情報の一例を示す図である。図3に示す様に入力データ位置情報では、各次元のメンバに相当する情報がCSVファイルの何カラム目にあたるかを示すものとなっている。
【0038】
次にステップ402で次元切り出し/集計処理部202は、前述の処理で取り出したメンバを次元メンバ数量テーブルへ格納し、そのカウント値に「1」を登録する。また前記取り出したメンバが既に次元メンバ数量テーブルへ登録されている場合には、そのカウント値を「1」増加させる。このとき、入力データ中に複数の分析項目がある場合には、その項目数だけカウント値を増加させる。分析項目が実際のデータベースのデータの数になる為、その分多くメンバ数も数えなければならない。
【0039】
図4は本実施形態の次元メンバ数量テーブルの一例を示す図である。前記の登録処理の結果、各次元毎に得られる次元メンバ数量テーブルは、図4の様にメンバとメンバの出現回数を表すデータとなる。
【0040】
前述の処理で生成された次元メンバ数量テーブルは、入力データを元に作成したものであり、現段階では事前集約は加味されていない。このデータ分布の分析がどの事前集約先に対するものであるかはデータベース管理者によって指定されものとし、このデータベース管理者による指定は図1と図2では集約先情報に該当している。
【0041】
図5は本実施形態の集約先情報の一例を示す図である。図5では集約先情報の中身の例を表しており、この例では集約先が各次元のどの階層であるかを示している(商品次元は下から1段上のレベルであり、他の次元は最下位のレベルである)。ここで集約先の構造を知る為に階層情報を参照する。
【0042】
図6は本実施形態の格納対象のデータベースの階層情報の一例を示す図である。図6に示す階層情報自体は、データベースを定義したり、多次元データベースシステム自体が事前集約処理等の為に持っているものであり、図1や図2ではファイルイメージで表されている。
【0043】
ステップ403でマッピング処理部203は、図6の階層情報のメンバ名称と図4の次元メンバ数量情報のメンバ名称とをつき合わせた後、事前集約先のメンバ毎のデータ件数を算出して事前集約先の次元メンバ数量テーブルに格納する。
【0044】
図7は本実施形態の事前集約先の次元メンバ数量テーブルの一例を示す図である。図5の集約先情報では商品次元は下から1段上のレベルに事前集約されることが示されているので、この集約先情報での事前集約では、図6の階層情報で最下位レベルのメンバとなっている弁当Aや弁当Bは、全て1段上のレベルの食品に分類される。このとき、図4の弁当Aや弁当Bの数量は全て足し上げられ、図7の様に商品次元の事前集約先のデータ件数が、事前集約先の次元メンバ数量テーブルとして作成される。書籍や文房具についても同様に事前集約先の数量が算出される。新たに作成された次元メンバ数量テーブルは、事前集約結果に対応するものである。
【0045】
マッピング処理部203は、この図7の次元メンバ数量テーブルを処理結果の一つとして出力し、図1の様に集約対象の次元の次元メンバ数量テーブルの一つとしてファイルに出力する。この図7の次元メンバ数量テーブルでは、データの並び順は階層情報のメンバの並び順に一致しており、すなわち、そのテーブルの内容は、当該次元の当該レベルにおけるデータ分布を示すデータとなる。また、レベルの指定を最下位に設定すれば、これは元のデータベースのデータ分布を階層情報のメンバの並び順に表現した形となる。
【0046】
次にステップ404でデータ分布解析処理部204は、事前集約先の次元メンバ数量テーブルを元に分析結果テーブルを作成する。
【0047】
図8は本実施形態の分析結果テーブルの一例を示す図である。図8に示す様に分析結果テーブルには各メンバの出現割合が記録される。データの総数は次元メンバ数量テーブルの数値を合計すれば取得できる。データの総数で各メンバにおけるデータの数を割るのである。これにより、各次元ではどのメンバにデータが集中しているのかが分かる様になり、図8の様なメンバ毎のデータの割合が得られる。
【0048】
図9は本実施形態のデータ分析結果のデータ件数でのソート結果の一例を示す図である。ステップ404では、各次元について図8をデータ件数でソートし、図9の様にデータの件数が多い順に並べ直す。
【0049】
ステップ405では、この結果を元に各次元について上位からユーザ指定のメンバ(この例では上位10%に該当するメンバ)のデータ量の割合を計算する。これは図9のデータから容易に計算できる。この結果、図10の様なテーブルが得られる。
【0050】
図10は本実施形態の次元毎のデータ分析テーブルの一例を示す図である。図10では、各次元の上位メンバに存在するデータの割合を表しており、この次元毎のデータ分布テーブルから各次元のデータの偏りの度合いが分る。すなわち、この数字の大きいもの程データの分布が局所化しており、本システムはこの数値の少ない次元から順に次元名を出力する。つまり、図10の次元毎のデータ分布テーブルの例では「販売時期、販売店、..」といった順番でデータ分布のなだらかな順にデータベース管理者に提示する。
【0051】
次に、本実施形態において、前述のコンビニエンスストアの多次元データベースについてデータ分布をデータベース管理者に提示し、図14のデータベースで、データベース管理者が商品次元と販売時期次元に関して事前集約を行う場合について説明する。
【0052】
図11は本実施形態のコンビニエンスストアの多次元データベースの各次元に関する分析結果のグラフ例を示す図である。図11では、前述のコンビニエンスストアの多次元データベースにおいて、商品次元と販売時期次元に関して事前集約を行う場合の各次元に関する分析結果をグラフで提示しており、商品次元のデータ分布は図11の「商品次元の集約先」の様になり、販売時期次元の集約先におけるデータ分布は図11の「販売時期次元の集約先」の様になっており、集約しない店舗次元のデータ分布は図11の「店舗次元」の様になっている。
【0053】
図11の様に、このとき商品次元は極端にデータが偏っているが、店舗次元はほぼ中央でデータが2分されることが分る。また、販売時期次元に関してはデータが全体に均一に近く分布していることが分る。この為、データベース管理者は、販売時期次元を細かく分割し、店舗次元を大きく2つに分割、商品次元は分割しない方が良い等、前記データ分布を参考にした判断を行うことが可能であり、このときデータベース管理者が行うデータ分割の一つは例えば図12の様なものとなりえる。
【0054】
図12は本実施形態のデータ分割の一例を示す図である。図12の分割の結果、データベースは図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)パターン1」や図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)パターン2」と同じ数(16個)に分割されている。
【0055】
この場合、図からも分る様にデータは各格納領域に均等に分けられる。また、販売時期、店舗のどちらから横断的に検索を行っても、全ての格納領域に均等に負荷が分散される(データの偏りが大きい商品次元で、多くの割合を占める食品のデータが販売時期に対して均等に分布している場合には、販売時期に対する均等なデータ分割により商品次元のデータも均等に分割されると考えられる為、商品次元に関して横断的な検索を行っても、図12の分割によって全ての格納領域にI/Oが分散される。この為、商品次元についても十分な効果が得られる)。
【0056】
従来の事前集約処理では、ある次元の事前集約処理の際に処理されるデータがどの様に分布しているかは明らかではなかった為、データ分布とは無関係に事前集約処理を実行して事前集約後のデータの分散格納を行うこととなり、一部の格納領域への入出力処理が集中する場合があった。
【0057】
本実施形態では、事前集約処理の際に処理されるデータのデータ分布を提示するので、そのデータベース管理者が行おうとしている事前集約処理におけるデータのデータ分布に合わせ、複数の格納領域への入出力処理が均等に行われる様にデータの分散格納を行うことができる。
【0058】
すなわち、本実施形態において、データベース管理者は、多次元データのデータ分布を一目で分る形で取得することが可能であり、この様子の例は図11に見ることができる。図11の「商品次元の集約元」は最下位レベルでのデータ分布を、図11の「商品次元の集約先」は事前集約先のデータ分布をそれぞれ示しており、この様なグラフの作成は、表計算を行うソフトウェア等を利用して行うこともできる。
【0059】
図11の「商品次元の集約元」から、最下位レベルにおいては商品次元は比較的分割しやすい次元の様に見えるが、集約後の図11の「商品次元の集約先」では商品次元上のデータ分布は極端に偏っており、データの分割が難しいことが分る。この様に、本実施形態におけるデータ分布の提示は、データベース管理者がデータを分割する際の有効な判断材料となる。事前集約処理でデータが均等に分割されていると、多次元データベースにおける事前集約処理そのものが速くなる。また、格納領域毎のデータの偏りも抑止できる為、事前集約後のデータの検索処理も速くなる。
【0060】
多次元データベースにおいて実際に事前集約を行った場合、データの一部は計算の結果と同じデータに集約され、事前集約結果は集約元のデータに比べて件数は少なくなる為、本実施形態の様な単純な件数の足し上げでは、実際の事前集約後のデータ数とは異なる結果が出る場合がある。そこで本実施形態では、事前集約前のデータ数と比較して事前集約後のデータ数があまり小さくならないケースを想定するものとし、単純な足し上げでも大きな誤差とはならない場合についてデータ分布の提示を行うものとする。なお、事前集約前のデータ数と比較して事前集約後のデータ数が小さくなるのであれば、事前集約結果の格納に要する処理時間もそれだけ短くなる為、そのデータ分布の提示を行わないこととしても問題とはならないと考えられる。
【0061】
また、従来技術において多次元データベースを構成するデータを論理的なセルで表現した場合には爆発的な大きさのビット数が必要となる為、ビットマップ等を用いてデータ分布を知るのは困難であったが、本実施形態で実現される機能は、ビットマップ等を用いる場合と比較して処理負荷の低いものとなっており、実際の計算機上において、論理的な多次元空間全体をメモリ上に展開する等の処理を行っていないので、少ないリソースでの処理が可能である。
【0062】
以上説明した様に本実施形態の多次元データベース管理装置によれば、事前集約処理の行われる多次元データベースのデータ分布を提示するので、事前集約処理時の入出力処理負荷が各格納領域でできるだけ均等となる様な分散格納を支援することが可能である。
【0063】
【発明の効果】
本発明によれば事前集約処理の行われる多次元データベースのデータ分布を提示するので、事前集約処理時の入出力処理負荷が各格納領域でできるだけ均等となる様な分散格納を支援することが可能である。
【図面の簡単な説明】
【図1】本実施形態の多次元データベース管理装置の概略構成を示す図である。
【図2】本実施形態のデータ解析処理の処理手順を示すフローチャートである。
【図3】本実施形態の入力データ位置情報の一例を示す図である。
【図4】本実施形態の次元メンバ数量テーブルの一例を示す図である。
【図5】本実施形態の集約先情報の一例を示す図である。
【図6】本実施形態の格納対象のデータベースの階層情報の一例を示す図である。
【図7】本実施形態の事前集約先の次元メンバ数量テーブルの一例を示す図である。
【図8】本実施形態の分析結果テーブルの一例を示す図である。
【図9】本実施形態のデータ分析結果のデータ件数でのソート結果の一例を示す図である。
【図10】本実施形態の次元毎のデータ分析テーブルの一例を示す図である。
【図11】本実施形態のコンビニエンスストアの多次元データベースの各次元に関する分析結果のグラフ例を示す図である。
【図12】本実施形態のデータ分割の一例を示す図である。
【図13】従来の複数の格納領域を持つデータベースシステムの一例を示す図である。
【図14】従来のコンビニエンスストアの売上高データベースのデータ分布並びにデータ分割の例を示す図である。
【図15】従来のコンビニエンスストアの多次元データの商品次元の階層構造の一例を示す図である。
【符号の説明】
201…入力データ読み込み処理部、202…次元切り出し/集計処理部、203…マッピング処理部、204…データ分布解析処理部。
【発明の属する技術分野】
本発明は多次元データベースを管理する多次元データベース管理装置に関し、特に多次元データを高速に事前集約処理するのに好適なデータの分割を行う多次元データベース管理装置に適用して有効な技術に関するものである。
【0002】
【従来の技術】
従来のデータベースシステムにおいて、1個のデータベースやテーブル等を複数の格納領域に分散格納させることは、特に並列処理を行う際に処理能力の面から見て有効な手段である。
【0003】
リレーショナルデータベース管理システムでは、並列処理の適用においてデータの複数の格納領域への割り振りにの為にレンジ分割等が用いられている(DeWitt,D.,et al., ’The Gamma Database Machine Project’, IEEE Transactions on Knowledge and Data Engineering, vol.2,no.1,pp.44−63,1990)。ここでレンジ分割とは、1個以上の次元に関し、境界値を元にデータを分割するものであるが、この境界値はユーザの推量や経験によって決められるものである。この為、実際にデータを格納すると、うまく均等に分割できなかったり、事前集約処理に大きな時間がかかったりすることがある。これは、データが多次元空間中に均一に分布していることが前記境界値の決定の際に暗黙に仮定されていたり、データの偏りを無視したデータの分割を行った為に入出力処理が局所的に多く発生する為に起こる。
【0004】
複数の格納領域にデータを分けて管理するデータベースシステムにおいて、1個のスキーマに含まれるデータをどの様に分けるのかはデータの格納処理や検索処理の処理時間、使用するリソースの量を大きく左右する要素である。
【0005】
図13は従来の複数の格納領域を持つデータベースシステムの一例を示す図である。図13では、前記の様なデータ分割の行われる格納領域を複数持つデータベースシステムの例を表しており、図中のシステムは4箇所の格納領域を持っている。ここでデータベースの例としてコンビニエンスストアの売上高を格納したデータベースを考える。
【0006】
図14は従来のコンビニエンスストアの売上高データベースのデータ分布並びにデータ分割の例を示す図である。図14の「コンビニエンスストアの売上高データベース(多次元空間のイメージ)」のデータベースは、4個の次元(商品、販売時期、店舗、売上高)を持つものとし、図14の「コンビニエンスストアの売上高データベース(多次元空間のイメージ)」では、立方体のそれぞれの辺が商品、販売時期、店舗にあたり、立方体の中に売上高が表されるものとする。
【0007】
ここで、店舗と販売時期に着目し、そのデータの分布が図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)」の様になっているものとすると、図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)」から分かる様に、店舗間の売上の差が大きく、販売時期に関しては比較的偏りが少ない。
【0008】
ここで、図13のデータベースシステムでは格納領域が4個あることから、データベースの管理者がこのデータベースを4個に分ける場合を考える。
【0009】
データベース管理者は、データの分布を図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)」の様に把握しているとは限らないので、データベース管理者が、図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)パターン1」の様にデータを分割した場合を考える。ここで、図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)パターン1」中の吹き出しは、図13のデータベースの格納領域を示すものとする。
【0010】
このとき図から見てはっきり分かるのは、格納領域AとDにはデータが集中し、格納領域BとCにはデータが比較的少ないことである。この様なデータ分割を行うと、例えばデータを格納する場合には格納領域AやDにはI/Oが集中し、システム全体の処理時間を遅くする危険性が高い。
【0011】
或いは、データベース管理者が、図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)パターン2」の様にデータを各格納領域に割り振ったとすると、データ件数自体は格納領域A〜Dにはほぼ均等にデータが行き渡る様に見えるが、事前集約処理において図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)パターン3」の様な範囲のデータに集約をかける場合(店舗次元上で集約を行った場合)、格納領域AとBにはごく少ないデータしかない為、格納領域AとBではI/Oは多く発生しないが、格納領域CとDにはデータが多量にある為、格納領域CとDでI/Oが多く発生する。この為、せっかく格納領域を4個に分けても格納領域毎にデータの偏りが大きいままであり、十分な負荷分散は行われず、処理時間は必要以上に長くなる。
【0012】
実際、既存のデータベースシステムでは事前集約処理に多くの時間が必要となる。特に多次元データベースは複数の次元を持ち、この為、ユーザはしばしば多くの箇所を事前集約する必要がある。個々の集約箇所に関して事前集約に長い時間がかかり、集約箇所が複数あるのだから事前集約が完了するのに長い時間、例えば丸一昼夜かかる様なこともある。
【0013】
個々の集約箇所について事前集約で長い時間がかかる理由の一つはデータの分布を十分に加味せずにレンジ分割等を行うことが挙げられる。多くの場合、ユーザは経験や推量に基づく分割位置の設定や均一なデータ分布を仮定したデータの分割を行っている。この為、実際には格納先毎にデータ量に差が出たり、幾つかの次元ではデータの偏りが大きい為に格納先のごく一部で入出力処理が多発し、必然的に処理時間そのものが長くなる。すなわち、多次元データベースをうまく格納する為にはデータの分布を知ることが必要である。
【0014】
多次元データベースにおいてはもう1点考慮すべき事項がある。事前集約処理では集約した結果のデータ分布は集約元と異なる可能性が高い。この為、事前集約結果の格納の際にI/Oをできるだけ均等にしようとする場合には、事前集約結果のデータ分布を予測し、最適なデータの分割を行うことが必要となる。事前集約はいくつかの次元に関して集約計算を行うものである。実際の集約計算の結果、データの分布が集約前と異なることは容易に起こりえる。この例を図15で示す。
【0015】
図15は従来のコンビニエンスストアの多次元データの商品次元の階層構造の一例を示す図である。図15ではコンビニエンスストアの商品次元の構造を表しており、食品や書籍は多くあるが、他の商品は比較的少ない。下の段は事前集約する前であり、上の段は事前集約した後である。
【0016】
お弁当や雑誌等は商品の点数が多い為、事前集約の前にはデータは比較的広い範囲に分散される。しかし、お弁当や飲み物が全て食品に集約されている。この為、集約後には多くのデータが狭いところに集まることが分かる。この結果、事前集約後にはデータの偏り具合が大きく変わる。事前集約結果の格納の際にI/Oをできるだけ均等にしようとする場合には、この様な集約計算によるデータ分布の変化を加味したデータ分布の解析を可能とすることが求められる。
【0017】
更に、多次元空間上のデータの分布を知る上でネックとなるのが多次元空間そのものが膨大な大きさになる点である。例えば先程のコンビニエンスストアの例で、商品が300アイテム、店舗が1000店、販売時期が2年(最下位のレベルを分とすれば、1051200分)である場合、これらの積が多次元空間の論理的な大きさである。この様な大きなデータをそのまま計算機上で論理的に再現することは困難である。
【0018】
仮に論理的な1セルを1ビットで表すとして、先の商品、店舗、時間の3次元だけでも作り出される論理的なセルを全て表現するには315360000000ビット必要となる。更に顧客の年代、性別、天気、気温、湿度等を次元として加えた場合、多次元空間は爆発的な大きさになる。実際、実用的なレベルでは多次元データベースの次元数は10次元を超えることも至極普通に起こる。すなわち、多次元空間をそのまま計算机上で取り扱うのは現実的な解決方法ではない。この為、ビットマップ等を使わずにデータ分布を知る手段が必要となる。
【0019】
【発明が解決しようとする課題】
前記従来技術において、多次元データベースのデータを複数の格納領域に分散格納させる場合にデータが多次元空間中に均一に分布していると仮定してデータ分割を行っている為、事前集約処理等の際に入出力処理が局所的に多く発生するという問題が生じることがある。
【0020】
また前記従来技術において、多次元データベースのデータを複数の格納領域に分散格納させて事前集約を行う場合に事前集約前後でのデータ分布の変化を考慮していない為、事前集約結果を格納する際に入出力処理が局所的に多く発生するという問題が生じることがある。
【0021】
また前記従来技術において多次元データベースを構成するデータを論理的なセルで表現した場合には爆発的な大きさのビット数が必要となる為、ビットマップ等を用いてデータ分布を知るのが難しいという問題がある。
【0022】
本発明の目的は上記問題を解決し、事前集約処理時の入出力処理負荷が各格納領域でできるだけ均等となる様な分散格納を支援することが可能な技術を提供することにある。
【0023】
【課題を解決するための手段】
本発明は、事前集約処理の行われる多次元データベースのデータの分散格納を支援する多次元データベース管理装置において、事前集約処理の行われる多次元データベースのデータ分布を提示するものである。
【0024】
本発明の多次元データベース管理装置において、多次元データベースを構成する入力データを読み込むと、前記読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計し、次元メンバ数量テーブルへ格納する。
【0025】
次に、事前集約先の次元を示す集約先情報と、前記集計した次元メンバから事前集約先の次元メンバまでの階層構造を示す階層情報とを参照して、前記集計した次元メンバを事前集約先の次元メンバにマッピングし、前記次元メンバ数量テーブルに格納した次元メンバ数量を事前集約先の次元メンバ毎に集計して事前集約先の次元メンバ数量テーブルへ格納する。そして、前記事前集約先の次元メンバ数量テーブルへ格納した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求め、これをデータベース管理者に提示する。
【0026】
従来の事前集約処理では、ある次元の事前集約処理の際に処理されるデータがどの様に分布しているかは明らかではなかった為、データ分布とは無関係に事前集約処理を実行して事前集約後のデータの分散格納を行うこととなり、一部の格納領域への入出力処理が集中する場合があった。
【0027】
本発明では、事前集約処理の際に処理されるデータのデータ分布を提示するので、そのデータベース管理者が行おうとしている事前集約処理におけるデータのデータ分布に合わせ、複数の格納領域への入出力処理が均等に行われる様にデータの分散格納を行うことができる。
【0028】
以上の様に本発明の多次元データベース管理装置によれば、事前集約処理の行われる多次元データベースのデータ分布を提示するので、事前集約処理時の入出力処理負荷が各格納領域でできるだけ均等となる様な分散格納を支援することが可能である。
【0029】
【発明の実施の形態】
以下に事前集約処理の行われる多次元データベースのデータの分散格納を支援する一実施形態の多次元データベース管理装置について説明する。
【0030】
図1は本実施形態の多次元データベース管理装置の概略構成を示す図である。図1に示す様に本実施形態の多次元データベース管理装置は、入力データ読み込み処理部201と、次元切り出し/集計処理部202と、マッピング処理部203と、データ分布解析処理部204とを有している。
【0031】
入力データ読み込み処理部201は、多次元データベースの入力データを読み込む処理部である。次元切り出し/集計処理部202は、前記読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計する処理部である。
【0032】
マッピング処理部203は、前記メンバを事前集約先の次元メンバにマッピングし、前記集計した次元メンバ数量を事前集約先の次元メンバ毎に集計する処理部である。データ分布解析処理部204は、前記集計した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求める処理部である。
【0033】
多次元データベース管理装置を入力データ読み込み処理部201、次元切り出し/集計処理部202、マッピング処理部203及びデータ分布解析処理部204として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【0034】
本実施形態の多次元データベース管理装置は、内部的にデータ読み込み処理、次元集計/切り出し処理、マッピング処理、データ分布解析処理の4つの処理フェーズを持ち、事前集約処理で処理されるデータのデータ分布を提示する処理を行う。
【0035】
図2は本実施形態のデータ解析処理の処理手順を示すフローチャートである。図2に示す様に本実施形態の多次元データベース管理装置は、多次元データベースの入力データを読み込み、その読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計した後、前記メンバを事前集約先の次元メンバにマッピングすることにより、前記集計した次元メンバ数量を事前集約先の次元メンバ毎に集計し、その集計した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求める処理を行う。
【0036】
図1の入力データ読み込み処理部201は、入力データを読み込む処理を担当する処理部であり、図2ではステップ401にあたる処理を行う。データの読み込みは入力データの終端まで行い、読み込んだデータの中から、多次元データベースの各次元のメンバに相当する部分を切り出す(CSV: Comma Separated Value形式のファイルであれば、カラム番号等を元にして入力データから取り出すことができる)。入力データのどこに各次元に相当するデータがあるかを示す情報はデータベース管理者が与えるものとし、図1及び図2では入力データ位置情報がこれに該当するものとする。入力データ位置情報の例として図3を挙げる。
【0037】
図3は本実施形態の入力データ位置情報の一例を示す図である。図3に示す様に入力データ位置情報では、各次元のメンバに相当する情報がCSVファイルの何カラム目にあたるかを示すものとなっている。
【0038】
次にステップ402で次元切り出し/集計処理部202は、前述の処理で取り出したメンバを次元メンバ数量テーブルへ格納し、そのカウント値に「1」を登録する。また前記取り出したメンバが既に次元メンバ数量テーブルへ登録されている場合には、そのカウント値を「1」増加させる。このとき、入力データ中に複数の分析項目がある場合には、その項目数だけカウント値を増加させる。分析項目が実際のデータベースのデータの数になる為、その分多くメンバ数も数えなければならない。
【0039】
図4は本実施形態の次元メンバ数量テーブルの一例を示す図である。前記の登録処理の結果、各次元毎に得られる次元メンバ数量テーブルは、図4の様にメンバとメンバの出現回数を表すデータとなる。
【0040】
前述の処理で生成された次元メンバ数量テーブルは、入力データを元に作成したものであり、現段階では事前集約は加味されていない。このデータ分布の分析がどの事前集約先に対するものであるかはデータベース管理者によって指定されものとし、このデータベース管理者による指定は図1と図2では集約先情報に該当している。
【0041】
図5は本実施形態の集約先情報の一例を示す図である。図5では集約先情報の中身の例を表しており、この例では集約先が各次元のどの階層であるかを示している(商品次元は下から1段上のレベルであり、他の次元は最下位のレベルである)。ここで集約先の構造を知る為に階層情報を参照する。
【0042】
図6は本実施形態の格納対象のデータベースの階層情報の一例を示す図である。図6に示す階層情報自体は、データベースを定義したり、多次元データベースシステム自体が事前集約処理等の為に持っているものであり、図1や図2ではファイルイメージで表されている。
【0043】
ステップ403でマッピング処理部203は、図6の階層情報のメンバ名称と図4の次元メンバ数量情報のメンバ名称とをつき合わせた後、事前集約先のメンバ毎のデータ件数を算出して事前集約先の次元メンバ数量テーブルに格納する。
【0044】
図7は本実施形態の事前集約先の次元メンバ数量テーブルの一例を示す図である。図5の集約先情報では商品次元は下から1段上のレベルに事前集約されることが示されているので、この集約先情報での事前集約では、図6の階層情報で最下位レベルのメンバとなっている弁当Aや弁当Bは、全て1段上のレベルの食品に分類される。このとき、図4の弁当Aや弁当Bの数量は全て足し上げられ、図7の様に商品次元の事前集約先のデータ件数が、事前集約先の次元メンバ数量テーブルとして作成される。書籍や文房具についても同様に事前集約先の数量が算出される。新たに作成された次元メンバ数量テーブルは、事前集約結果に対応するものである。
【0045】
マッピング処理部203は、この図7の次元メンバ数量テーブルを処理結果の一つとして出力し、図1の様に集約対象の次元の次元メンバ数量テーブルの一つとしてファイルに出力する。この図7の次元メンバ数量テーブルでは、データの並び順は階層情報のメンバの並び順に一致しており、すなわち、そのテーブルの内容は、当該次元の当該レベルにおけるデータ分布を示すデータとなる。また、レベルの指定を最下位に設定すれば、これは元のデータベースのデータ分布を階層情報のメンバの並び順に表現した形となる。
【0046】
次にステップ404でデータ分布解析処理部204は、事前集約先の次元メンバ数量テーブルを元に分析結果テーブルを作成する。
【0047】
図8は本実施形態の分析結果テーブルの一例を示す図である。図8に示す様に分析結果テーブルには各メンバの出現割合が記録される。データの総数は次元メンバ数量テーブルの数値を合計すれば取得できる。データの総数で各メンバにおけるデータの数を割るのである。これにより、各次元ではどのメンバにデータが集中しているのかが分かる様になり、図8の様なメンバ毎のデータの割合が得られる。
【0048】
図9は本実施形態のデータ分析結果のデータ件数でのソート結果の一例を示す図である。ステップ404では、各次元について図8をデータ件数でソートし、図9の様にデータの件数が多い順に並べ直す。
【0049】
ステップ405では、この結果を元に各次元について上位からユーザ指定のメンバ(この例では上位10%に該当するメンバ)のデータ量の割合を計算する。これは図9のデータから容易に計算できる。この結果、図10の様なテーブルが得られる。
【0050】
図10は本実施形態の次元毎のデータ分析テーブルの一例を示す図である。図10では、各次元の上位メンバに存在するデータの割合を表しており、この次元毎のデータ分布テーブルから各次元のデータの偏りの度合いが分る。すなわち、この数字の大きいもの程データの分布が局所化しており、本システムはこの数値の少ない次元から順に次元名を出力する。つまり、図10の次元毎のデータ分布テーブルの例では「販売時期、販売店、..」といった順番でデータ分布のなだらかな順にデータベース管理者に提示する。
【0051】
次に、本実施形態において、前述のコンビニエンスストアの多次元データベースについてデータ分布をデータベース管理者に提示し、図14のデータベースで、データベース管理者が商品次元と販売時期次元に関して事前集約を行う場合について説明する。
【0052】
図11は本実施形態のコンビニエンスストアの多次元データベースの各次元に関する分析結果のグラフ例を示す図である。図11では、前述のコンビニエンスストアの多次元データベースにおいて、商品次元と販売時期次元に関して事前集約を行う場合の各次元に関する分析結果をグラフで提示しており、商品次元のデータ分布は図11の「商品次元の集約先」の様になり、販売時期次元の集約先におけるデータ分布は図11の「販売時期次元の集約先」の様になっており、集約しない店舗次元のデータ分布は図11の「店舗次元」の様になっている。
【0053】
図11の様に、このとき商品次元は極端にデータが偏っているが、店舗次元はほぼ中央でデータが2分されることが分る。また、販売時期次元に関してはデータが全体に均一に近く分布していることが分る。この為、データベース管理者は、販売時期次元を細かく分割し、店舗次元を大きく2つに分割、商品次元は分割しない方が良い等、前記データ分布を参考にした判断を行うことが可能であり、このときデータベース管理者が行うデータ分割の一つは例えば図12の様なものとなりえる。
【0054】
図12は本実施形態のデータ分割の一例を示す図である。図12の分割の結果、データベースは図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)パターン1」や図14の「コンビニエンスストアの売上高データベース(販売時期×店舗のデータ分布)パターン2」と同じ数(16個)に分割されている。
【0055】
この場合、図からも分る様にデータは各格納領域に均等に分けられる。また、販売時期、店舗のどちらから横断的に検索を行っても、全ての格納領域に均等に負荷が分散される(データの偏りが大きい商品次元で、多くの割合を占める食品のデータが販売時期に対して均等に分布している場合には、販売時期に対する均等なデータ分割により商品次元のデータも均等に分割されると考えられる為、商品次元に関して横断的な検索を行っても、図12の分割によって全ての格納領域にI/Oが分散される。この為、商品次元についても十分な効果が得られる)。
【0056】
従来の事前集約処理では、ある次元の事前集約処理の際に処理されるデータがどの様に分布しているかは明らかではなかった為、データ分布とは無関係に事前集約処理を実行して事前集約後のデータの分散格納を行うこととなり、一部の格納領域への入出力処理が集中する場合があった。
【0057】
本実施形態では、事前集約処理の際に処理されるデータのデータ分布を提示するので、そのデータベース管理者が行おうとしている事前集約処理におけるデータのデータ分布に合わせ、複数の格納領域への入出力処理が均等に行われる様にデータの分散格納を行うことができる。
【0058】
すなわち、本実施形態において、データベース管理者は、多次元データのデータ分布を一目で分る形で取得することが可能であり、この様子の例は図11に見ることができる。図11の「商品次元の集約元」は最下位レベルでのデータ分布を、図11の「商品次元の集約先」は事前集約先のデータ分布をそれぞれ示しており、この様なグラフの作成は、表計算を行うソフトウェア等を利用して行うこともできる。
【0059】
図11の「商品次元の集約元」から、最下位レベルにおいては商品次元は比較的分割しやすい次元の様に見えるが、集約後の図11の「商品次元の集約先」では商品次元上のデータ分布は極端に偏っており、データの分割が難しいことが分る。この様に、本実施形態におけるデータ分布の提示は、データベース管理者がデータを分割する際の有効な判断材料となる。事前集約処理でデータが均等に分割されていると、多次元データベースにおける事前集約処理そのものが速くなる。また、格納領域毎のデータの偏りも抑止できる為、事前集約後のデータの検索処理も速くなる。
【0060】
多次元データベースにおいて実際に事前集約を行った場合、データの一部は計算の結果と同じデータに集約され、事前集約結果は集約元のデータに比べて件数は少なくなる為、本実施形態の様な単純な件数の足し上げでは、実際の事前集約後のデータ数とは異なる結果が出る場合がある。そこで本実施形態では、事前集約前のデータ数と比較して事前集約後のデータ数があまり小さくならないケースを想定するものとし、単純な足し上げでも大きな誤差とはならない場合についてデータ分布の提示を行うものとする。なお、事前集約前のデータ数と比較して事前集約後のデータ数が小さくなるのであれば、事前集約結果の格納に要する処理時間もそれだけ短くなる為、そのデータ分布の提示を行わないこととしても問題とはならないと考えられる。
【0061】
また、従来技術において多次元データベースを構成するデータを論理的なセルで表現した場合には爆発的な大きさのビット数が必要となる為、ビットマップ等を用いてデータ分布を知るのは困難であったが、本実施形態で実現される機能は、ビットマップ等を用いる場合と比較して処理負荷の低いものとなっており、実際の計算機上において、論理的な多次元空間全体をメモリ上に展開する等の処理を行っていないので、少ないリソースでの処理が可能である。
【0062】
以上説明した様に本実施形態の多次元データベース管理装置によれば、事前集約処理の行われる多次元データベースのデータ分布を提示するので、事前集約処理時の入出力処理負荷が各格納領域でできるだけ均等となる様な分散格納を支援することが可能である。
【0063】
【発明の効果】
本発明によれば事前集約処理の行われる多次元データベースのデータ分布を提示するので、事前集約処理時の入出力処理負荷が各格納領域でできるだけ均等となる様な分散格納を支援することが可能である。
【図面の簡単な説明】
【図1】本実施形態の多次元データベース管理装置の概略構成を示す図である。
【図2】本実施形態のデータ解析処理の処理手順を示すフローチャートである。
【図3】本実施形態の入力データ位置情報の一例を示す図である。
【図4】本実施形態の次元メンバ数量テーブルの一例を示す図である。
【図5】本実施形態の集約先情報の一例を示す図である。
【図6】本実施形態の格納対象のデータベースの階層情報の一例を示す図である。
【図7】本実施形態の事前集約先の次元メンバ数量テーブルの一例を示す図である。
【図8】本実施形態の分析結果テーブルの一例を示す図である。
【図9】本実施形態のデータ分析結果のデータ件数でのソート結果の一例を示す図である。
【図10】本実施形態の次元毎のデータ分析テーブルの一例を示す図である。
【図11】本実施形態のコンビニエンスストアの多次元データベースの各次元に関する分析結果のグラフ例を示す図である。
【図12】本実施形態のデータ分割の一例を示す図である。
【図13】従来の複数の格納領域を持つデータベースシステムの一例を示す図である。
【図14】従来のコンビニエンスストアの売上高データベースのデータ分布並びにデータ分割の例を示す図である。
【図15】従来のコンビニエンスストアの多次元データの商品次元の階層構造の一例を示す図である。
【符号の説明】
201…入力データ読み込み処理部、202…次元切り出し/集計処理部、203…マッピング処理部、204…データ分布解析処理部。
Claims (5)
- 事前集約処理の行われる多次元データベースのデータの分散格納を支援する多次元データベース管理方法において、
多次元データベースの入力データを読み込むステップと、前記読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計するステップと、前記メンバを事前集約先の次元メンバにマッピングし、前記集計した次元メンバ数量を事前集約先の次元メンバ毎に集計するステップと、前記集計した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求めるステップとを有することを特徴とする多次元データベース管理方法。 - 前記集計した次元メンバ総数に対する事前集約先の各次元メンバ数量の割合を算出することにより前記データ分布を求めることを特徴とする請求項1に記載された多次元データベース管理方法。
- 前記データ分布の変化が少ない次元名称から順に提示することを特徴とする請求項1または請求項2のいずれかに記載された多次元データベース管理方法。
- 事前集約処理の行われる多次元データベースのデータの分散格納を支援する多次元データベース管理装置において、
多次元データベースの入力データを読み込む入力データ読み込み処理部と、前記読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計する次元切り出し/集計処理部と、前記メンバを事前集約先の次元メンバにマッピングし、前記集計した次元メンバ数量を事前集約先の次元メンバ毎に集計するマッピング処理部と、前記集計した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求めるデータ分布解析処理部とを備えることを特徴とする多次元データベース管理装置。 - 事前集約処理の行われる多次元データベースのデータの分散格納を支援する多次元データベース管理装置としてコンピュータを機能させる為のプログラムにおいて、
多次元データベースの入力データを読み込む入力データ読み込み処理部と、前記読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計する次元切り出し/集計処理部と、前記メンバを事前集約先の次元メンバにマッピングし、前記集計した次元メンバ数量を事前集約先の次元メンバ毎に集計するマッピング処理部と、前記集計した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求めるデータ分布解析処理部としてコンピュータを機能させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002175960A JP2004021628A (ja) | 2002-06-17 | 2002-06-17 | 多次元データベース管理方法及びその実施装置並びにその処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002175960A JP2004021628A (ja) | 2002-06-17 | 2002-06-17 | 多次元データベース管理方法及びその実施装置並びにその処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004021628A true JP2004021628A (ja) | 2004-01-22 |
Family
ID=31174464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002175960A Pending JP2004021628A (ja) | 2002-06-17 | 2002-06-17 | 多次元データベース管理方法及びその実施装置並びにその処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004021628A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008547131A (ja) * | 2005-06-27 | 2008-12-25 | エービー イニティオ ソフトウェア コーポレーション | 複合演算によるデータ集約 |
CN111626649A (zh) * | 2019-02-28 | 2020-09-04 | 北京京东尚科信息技术有限公司 | 大数据处理方法和装置 |
-
2002
- 2002-06-17 JP JP2002175960A patent/JP2004021628A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008547131A (ja) * | 2005-06-27 | 2008-12-25 | エービー イニティオ ソフトウェア コーポレーション | 複合演算によるデータ集約 |
CN111626649A (zh) * | 2019-02-28 | 2020-09-04 | 北京京东尚科信息技术有限公司 | 大数据处理方法和装置 |
CN111626649B (zh) * | 2019-02-28 | 2024-02-06 | 北京京东尚科信息技术有限公司 | 大数据处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230084389A1 (en) | System and method for providing bottom-up aggregation in a multidimensional database environment | |
US6182060B1 (en) | Method and apparatus for storing, retrieving, and processing multi-dimensional customer-oriented data sets | |
US6505205B1 (en) | Relational database system for storing nodes of a hierarchical index of multi-dimensional data in a first module and metadata regarding the index in a second module | |
Lightstone et al. | Physical Database Design: the database professional's guide to exploiting indexes, views, storage, and more | |
CN107016001B (zh) | 一种数据查询方法及装置 | |
JP4609995B2 (ja) | オンライン分析処理(olap)のための方法およびシステム | |
US20170116313A1 (en) | System and method for supporting large queries in a multidimensional database environment | |
US7051025B2 (en) | Method and system for displaying multidimensional aggregate patterns in a database system | |
Chevalier et al. | Implementation of multidimensional databases in column-oriented NoSQL systems | |
US6493728B1 (en) | Data compression for records of multidimensional database | |
US6430565B1 (en) | Path compression for records of multidimensional database | |
JP2006503357A5 (ja) | ||
US20100328312A1 (en) | Personal music recommendation mapping | |
TW201926081A (zh) | 資料轉移系統及方法 | |
US11010113B2 (en) | Method and apparatus for printing relational graph | |
US9684704B2 (en) | Data extraction and sparseness discovery from multidimensional databases | |
US11914740B2 (en) | Data generalization apparatus, data generalization method, and program | |
JP2004021628A (ja) | 多次元データベース管理方法及びその実施装置並びにその処理プログラム | |
US20170316003A1 (en) | Bulk Sets for Executing Database Queries | |
US8473496B2 (en) | Utilizing density metadata to process multi-dimensional data | |
US20060085464A1 (en) | Method and system for providing referential integrity constraints | |
JP2001216307A (ja) | リレーショナルデータベース管理システム及びそれを記憶した記憶媒体 | |
Šalgová et al. | Reducing Data Access Time using Table Partitioning Techniques | |
Pedersen | Multidimensional modeling | |
US20180068005A1 (en) | Distributed computation of percentile statistics for multidimensional data sets |