(57)【要約】【課題】事前集約処理時の入出力処理負荷が各格納領域でできるだけ均等となる様な分散格納を支援することが可能な技術を提供する。【解決手段】事前集約処理の行われる多次元データベースのデータの分散格納を支援する多次元データベース管理方法において、多次元データベースの入力データを読み込むステップと、前記読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計するステップと、前記メンバを事前集約先の次元メンバにマッピングし、前記集計した次元メンバ数量を事前集約先の次元メンバ毎に集計するステップと、前記集計した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求めるステップとを有するものである。【選択図】　　　　図１
2004021628.tif 000002
【特許請求の範囲】
【請求項１】
事前集約処理の行われる多次元データベースのデータの分散格納を支援する多次元データベース管理方法において、
多次元データベースの入力データを読み込むステップと、前記読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計するステップと、前記メンバを事前集約先の次元メンバにマッピングし、前記集計した次元メンバ数量を事前集約先の次元メンバ毎に集計するステップと、前記集計した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求めるステップとを有することを特徴とする多次元データベース管理方法。
【請求項２】
前記集計した次元メンバ総数に対する事前集約先の各次元メンバ数量の割合を算出することにより前記データ分布を求めることを特徴とする請求項１に記載された多次元データベース管理方法。
【請求項３】
前記データ分布の変化が少ない次元名称から順に提示することを特徴とする請求項１または請求項２のいずれかに記載された多次元データベース管理方法。
【請求項４】
事前集約処理の行われる多次元データベースのデータの分散格納を支援する多次元データベース管理装置において、
多次元データベースの入力データを読み込む入力データ読み込み処理部と、前記読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計する次元切り出し／集計処理部と、前記メンバを事前集約先の次元メンバにマッピングし、前記集計した次元メンバ数量を事前集約先の次元メンバ毎に集計するマッピング処理部と、前記集計した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求めるデータ分布解析処理部とを備えることを特徴とする多次元データベース管理装置。
【請求項５】
事前集約処理の行われる多次元データベースのデータの分散格納を支援する多次元データベース管理装置としてコンピュータを機能させる為のプログラムにおいて、
多次元データベースの入力データを読み込む入力データ読み込み処理部と、前記読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計する次元切り出し／集計処理部と、前記メンバを事前集約先の次元メンバにマッピングし、前記集計した次元メンバ数量を事前集約先の次元メンバ毎に集計するマッピング処理部と、前記集計した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求めるデータ分布解析処理部としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は多次元データベースを管理する多次元データベース管理装置に関し、特に多次元データを高速に事前集約処理するのに好適なデータの分割を行う多次元データベース管理装置に適用して有効な技術に関するものである。
【０００２】
【従来の技術】
従来のデータベースシステムにおいて、１個のデータベースやテーブル等を複数の格納領域に分散格納させることは、特に並列処理を行う際に処理能力の面から見て有効な手段である。
【０００３】
リレーショナルデータベース管理システムでは、並列処理の適用においてデータの複数の格納領域への割り振りにの為にレンジ分割等が用いられている（ＤｅＷｉｔｔ，Ｄ．，ｅｔ　ａｌ．，　’Ｔｈｅ　Ｇａｍｍａ　Ｄａｔａｂａｓｅ　Ｍａｃｈｉｎｅ　Ｐｒｏｊｅｃｔ’，　ＩＥＥＥ　Ｔｒａｎｓａｃｔｉｏｎｓ　ｏｎ　Ｋｎｏｗｌｅｄｇｅ　ａｎｄ　Ｄａｔａ　Ｅｎｇｉｎｅｅｒｉｎｇ，　ｖｏｌ．２，ｎｏ．１，ｐｐ．４４−６３，１９９０）。ここでレンジ分割とは、１個以上の次元に関し、境界値を元にデータを分割するものであるが、この境界値はユーザの推量や経験によって決められるものである。この為、実際にデータを格納すると、うまく均等に分割できなかったり、事前集約処理に大きな時間がかかったりすることがある。これは、データが多次元空間中に均一に分布していることが前記境界値の決定の際に暗黙に仮定されていたり、データの偏りを無視したデータの分割を行った為に入出力処理が局所的に多く発生する為に起こる。
【０００４】
複数の格納領域にデータを分けて管理するデータベースシステムにおいて、１個のスキーマに含まれるデータをどの様に分けるのかはデータの格納処理や検索処理の処理時間、使用するリソースの量を大きく左右する要素である。
【０００５】
図１３は従来の複数の格納領域を持つデータベースシステムの一例を示す図である。図１３では、前記の様なデータ分割の行われる格納領域を複数持つデータベースシステムの例を表しており、図中のシステムは４箇所の格納領域を持っている。ここでデータベースの例としてコンビニエンスストアの売上高を格納したデータベースを考える。
【０００６】
図１４は従来のコンビニエンスストアの売上高データベースのデータ分布並びにデータ分割の例を示す図である。図１４の「コンビニエンスストアの売上高データベース（多次元空間のイメージ）」のデータベースは、４個の次元（商品、販売時期、店舗、売上高）を持つものとし、図１４の「コンビニエンスストアの売上高データベース（多次元空間のイメージ）」では、立方体のそれぞれの辺が商品、販売時期、店舗にあたり、立方体の中に売上高が表されるものとする。
【０００７】
ここで、店舗と販売時期に着目し、そのデータの分布が図１４の「コンビニエンスストアの売上高データベース（販売時期×店舗のデータ分布）」の様になっているものとすると、図１４の「コンビニエンスストアの売上高データベース（販売時期×店舗のデータ分布）」から分かる様に、店舗間の売上の差が大きく、販売時期に関しては比較的偏りが少ない。
【０００８】
ここで、図１３のデータベースシステムでは格納領域が４個あることから、データベースの管理者がこのデータベースを４個に分ける場合を考える。
【０００９】
データベース管理者は、データの分布を図１４の「コンビニエンスストアの売上高データベース（販売時期×店舗のデータ分布）」の様に把握しているとは限らないので、データベース管理者が、図１４の「コンビニエンスストアの売上高データベース（販売時期×店舗のデータ分布）パターン１」の様にデータを分割した場合を考える。ここで、図１４の「コンビニエンスストアの売上高データベース（販売時期×店舗のデータ分布）パターン１」中の吹き出しは、図１３のデータベースの格納領域を示すものとする。
【００１０】
このとき図から見てはっきり分かるのは、格納領域ＡとＤにはデータが集中し、格納領域ＢとＣにはデータが比較的少ないことである。この様なデータ分割を行うと、例えばデータを格納する場合には格納領域ＡやＤにはＩ／Ｏが集中し、システム全体の処理時間を遅くする危険性が高い。
【００１１】
或いは、データベース管理者が、図１４の「コンビニエンスストアの売上高データベース（販売時期×店舗のデータ分布）パターン２」の様にデータを各格納領域に割り振ったとすると、データ件数自体は格納領域Ａ〜Ｄにはほぼ均等にデータが行き渡る様に見えるが、事前集約処理において図１４の「コンビニエンスストアの売上高データベース（販売時期×店舗のデータ分布）パターン３」の様な範囲のデータに集約をかける場合（店舗次元上で集約を行った場合）、格納領域ＡとＢにはごく少ないデータしかない為、格納領域ＡとＢではＩ／Ｏは多く発生しないが、格納領域ＣとＤにはデータが多量にある為、格納領域ＣとＤでＩ／Ｏが多く発生する。この為、せっかく格納領域を４個に分けても格納領域毎にデータの偏りが大きいままであり、十分な負荷分散は行われず、処理時間は必要以上に長くなる。
【００１２】
実際、既存のデータベースシステムでは事前集約処理に多くの時間が必要となる。特に多次元データベースは複数の次元を持ち、この為、ユーザはしばしば多くの箇所を事前集約する必要がある。個々の集約箇所に関して事前集約に長い時間がかかり、集約箇所が複数あるのだから事前集約が完了するのに長い時間、例えば丸一昼夜かかる様なこともある。
【００１３】
個々の集約箇所について事前集約で長い時間がかかる理由の一つはデータの分布を十分に加味せずにレンジ分割等を行うことが挙げられる。多くの場合、ユーザは経験や推量に基づく分割位置の設定や均一なデータ分布を仮定したデータの分割を行っている。この為、実際には格納先毎にデータ量に差が出たり、幾つかの次元ではデータの偏りが大きい為に格納先のごく一部で入出力処理が多発し、必然的に処理時間そのものが長くなる。すなわち、多次元データベースをうまく格納する為にはデータの分布を知ることが必要である。
【００１４】
多次元データベースにおいてはもう１点考慮すべき事項がある。事前集約処理では集約した結果のデータ分布は集約元と異なる可能性が高い。この為、事前集約結果の格納の際にＩ／Ｏをできるだけ均等にしようとする場合には、事前集約結果のデータ分布を予測し、最適なデータの分割を行うことが必要となる。事前集約はいくつかの次元に関して集約計算を行うものである。実際の集約計算の結果、データの分布が集約前と異なることは容易に起こりえる。この例を図１５で示す。
【００１５】
図１５は従来のコンビニエンスストアの多次元データの商品次元の階層構造の一例を示す図である。図１５ではコンビニエンスストアの商品次元の構造を表しており、食品や書籍は多くあるが、他の商品は比較的少ない。下の段は事前集約する前であり、上の段は事前集約した後である。
【００１６】
お弁当や雑誌等は商品の点数が多い為、事前集約の前にはデータは比較的広い範囲に分散される。しかし、お弁当や飲み物が全て食品に集約されている。この為、集約後には多くのデータが狭いところに集まることが分かる。この結果、事前集約後にはデータの偏り具合が大きく変わる。事前集約結果の格納の際にＩ／Ｏをできるだけ均等にしようとする場合には、この様な集約計算によるデータ分布の変化を加味したデータ分布の解析を可能とすることが求められる。
【００１７】
更に、多次元空間上のデータの分布を知る上でネックとなるのが多次元空間そのものが膨大な大きさになる点である。例えば先程のコンビニエンスストアの例で、商品が３００アイテム、店舗が１０００店、販売時期が２年（最下位のレベルを分とすれば、１０５１２００分）である場合、これらの積が多次元空間の論理的な大きさである。この様な大きなデータをそのまま計算機上で論理的に再現することは困難である。
【００１８】
仮に論理的な１セルを１ビットで表すとして、先の商品、店舗、時間の３次元だけでも作り出される論理的なセルを全て表現するには３１５３６０００００００ビット必要となる。更に顧客の年代、性別、天気、気温、湿度等を次元として加えた場合、多次元空間は爆発的な大きさになる。実際、実用的なレベルでは多次元データベースの次元数は１０次元を超えることも至極普通に起こる。すなわち、多次元空間をそのまま計算机上で取り扱うのは現実的な解決方法ではない。この為、ビットマップ等を使わずにデータ分布を知る手段が必要となる。
【００１９】
【発明が解決しようとする課題】
前記従来技術において、多次元データベースのデータを複数の格納領域に分散格納させる場合にデータが多次元空間中に均一に分布していると仮定してデータ分割を行っている為、事前集約処理等の際に入出力処理が局所的に多く発生するという問題が生じることがある。
【００２０】
また前記従来技術において、多次元データベースのデータを複数の格納領域に分散格納させて事前集約を行う場合に事前集約前後でのデータ分布の変化を考慮していない為、事前集約結果を格納する際に入出力処理が局所的に多く発生するという問題が生じることがある。
【００２１】
また前記従来技術において多次元データベースを構成するデータを論理的なセルで表現した場合には爆発的な大きさのビット数が必要となる為、ビットマップ等を用いてデータ分布を知るのが難しいという問題がある。
【００２２】
本発明の目的は上記問題を解決し、事前集約処理時の入出力処理負荷が各格納領域でできるだけ均等となる様な分散格納を支援することが可能な技術を提供することにある。
【００２３】
【課題を解決するための手段】
本発明は、事前集約処理の行われる多次元データベースのデータの分散格納を支援する多次元データベース管理装置において、事前集約処理の行われる多次元データベースのデータ分布を提示するものである。
【００２４】
本発明の多次元データベース管理装置において、多次元データベースを構成する入力データを読み込むと、前記読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計し、次元メンバ数量テーブルへ格納する。
【００２５】
次に、事前集約先の次元を示す集約先情報と、前記集計した次元メンバから事前集約先の次元メンバまでの階層構造を示す階層情報とを参照して、前記集計した次元メンバを事前集約先の次元メンバにマッピングし、前記次元メンバ数量テーブルに格納した次元メンバ数量を事前集約先の次元メンバ毎に集計して事前集約先の次元メンバ数量テーブルへ格納する。そして、前記事前集約先の次元メンバ数量テーブルへ格納した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求め、これをデータベース管理者に提示する。
【００２６】
従来の事前集約処理では、ある次元の事前集約処理の際に処理されるデータがどの様に分布しているかは明らかではなかった為、データ分布とは無関係に事前集約処理を実行して事前集約後のデータの分散格納を行うこととなり、一部の格納領域への入出力処理が集中する場合があった。
【００２７】
本発明では、事前集約処理の際に処理されるデータのデータ分布を提示するので、そのデータベース管理者が行おうとしている事前集約処理におけるデータのデータ分布に合わせ、複数の格納領域への入出力処理が均等に行われる様にデータの分散格納を行うことができる。
【００２８】
以上の様に本発明の多次元データベース管理装置によれば、事前集約処理の行われる多次元データベースのデータ分布を提示するので、事前集約処理時の入出力処理負荷が各格納領域でできるだけ均等となる様な分散格納を支援することが可能である。
【００２９】
【発明の実施の形態】
以下に事前集約処理の行われる多次元データベースのデータの分散格納を支援する一実施形態の多次元データベース管理装置について説明する。
【００３０】
図１は本実施形態の多次元データベース管理装置の概略構成を示す図である。図１に示す様に本実施形態の多次元データベース管理装置は、入力データ読み込み処理部２０１と、次元切り出し／集計処理部２０２と、マッピング処理部２０３と、データ分布解析処理部２０４とを有している。
【００３１】
入力データ読み込み処理部２０１は、多次元データベースの入力データを読み込む処理部である。次元切り出し／集計処理部２０２は、前記読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計する処理部である。
【００３２】
マッピング処理部２０３は、前記メンバを事前集約先の次元メンバにマッピングし、前記集計した次元メンバ数量を事前集約先の次元メンバ毎に集計する処理部である。データ分布解析処理部２０４は、前記集計した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求める処理部である。
【００３３】
多次元データベース管理装置を入力データ読み込み処理部２０１、次元切り出し／集計処理部２０２、マッピング処理部２０３及びデータ分布解析処理部２０４として機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【００３４】
本実施形態の多次元データベース管理装置は、内部的にデータ読み込み処理、次元集計／切り出し処理、マッピング処理、データ分布解析処理の４つの処理フェーズを持ち、事前集約処理で処理されるデータのデータ分布を提示する処理を行う。
【００３５】
図２は本実施形態のデータ解析処理の処理手順を示すフローチャートである。図２に示す様に本実施形態の多次元データベース管理装置は、多次元データベースの入力データを読み込み、その読み込んだデータの中から多次元データベースの各次元のメンバに相当する部分を切り出してその数量を集計した後、前記メンバを事前集約先の次元メンバにマッピングすることにより、前記集計した次元メンバ数量を事前集約先の次元メンバ毎に集計し、その集計した事前集約先の次元メンバ数量から事前集約先の次元におけるデータ分布を求める処理を行う。
【００３６】
図１の入力データ読み込み処理部２０１は、入力データを読み込む処理を担当する処理部であり、図２ではステップ４０１にあたる処理を行う。データの読み込みは入力データの終端まで行い、読み込んだデータの中から、多次元データベースの各次元のメンバに相当する部分を切り出す（ＣＳＶ：　Ｃｏｍｍａ　Ｓｅｐａｒａｔｅｄ　Ｖａｌｕｅ形式のファイルであれば、カラム番号等を元にして入力データから取り出すことができる）。入力データのどこに各次元に相当するデータがあるかを示す情報はデータベース管理者が与えるものとし、図１及び図２では入力データ位置情報がこれに該当するものとする。入力データ位置情報の例として図３を挙げる。
【００３７】
図３は本実施形態の入力データ位置情報の一例を示す図である。図３に示す様に入力データ位置情報では、各次元のメンバに相当する情報がＣＳＶファイルの何カラム目にあたるかを示すものとなっている。
【００３８】
次にステップ４０２で次元切り出し／集計処理部２０２は、前述の処理で取り出したメンバを次元メンバ数量テーブルへ格納し、そのカウント値に「１」を登録する。また前記取り出したメンバが既に次元メンバ数量テーブルへ登録されている場合には、そのカウント値を「１」増加させる。このとき、入力データ中に複数の分析項目がある場合には、その項目数だけカウント値を増加させる。分析項目が実際のデータベースのデータの数になる為、その分多くメンバ数も数えなければならない。
【００３９】
図４は本実施形態の次元メンバ数量テーブルの一例を示す図である。前記の登録処理の結果、各次元毎に得られる次元メンバ数量テーブルは、図４の様にメンバとメンバの出現回数を表すデータとなる。
【００４０】
前述の処理で生成された次元メンバ数量テーブルは、入力データを元に作成したものであり、現段階では事前集約は加味されていない。このデータ分布の分析がどの事前集約先に対するものであるかはデータベース管理者によって指定されものとし、このデータベース管理者による指定は図１と図２では集約先情報に該当している。
【００４１】
図５は本実施形態の集約先情報の一例を示す図である。図５では集約先情報の中身の例を表しており、この例では集約先が各次元のどの階層であるかを示している（商品次元は下から１段上のレベルであり、他の次元は最下位のレベルである）。ここで集約先の構造を知る為に階層情報を参照する。
【００４２】
図６は本実施形態の格納対象のデータベースの階層情報の一例を示す図である。図６に示す階層情報自体は、データベースを定義したり、多次元データベースシステム自体が事前集約処理等の為に持っているものであり、図１や図２ではファイルイメージで表されている。
【００４３】
ステップ４０３でマッピング処理部２０３は、図６の階層情報のメンバ名称と図４の次元メンバ数量情報のメンバ名称とをつき合わせた後、事前集約先のメンバ毎のデータ件数を算出して事前集約先の次元メンバ数量テーブルに格納する。
【００４４】
図７は本実施形態の事前集約先の次元メンバ数量テーブルの一例を示す図である。図５の集約先情報では商品次元は下から１段上のレベルに事前集約されることが示されているので、この集約先情報での事前集約では、図６の階層情報で最下位レベルのメンバとなっている弁当Ａや弁当Ｂは、全て１段上のレベルの食品に分類される。このとき、図４の弁当Ａや弁当Ｂの数量は全て足し上げられ、図７の様に商品次元の事前集約先のデータ件数が、事前集約先の次元メンバ数量テーブルとして作成される。書籍や文房具についても同様に事前集約先の数量が算出される。新たに作成された次元メンバ数量テーブルは、事前集約結果に対応するものである。
【００４５】
マッピング処理部２０３は、この図７の次元メンバ数量テーブルを処理結果の一つとして出力し、図１の様に集約対象の次元の次元メンバ数量テーブルの一つとしてファイルに出力する。この図７の次元メンバ数量テーブルでは、データの並び順は階層情報のメンバの並び順に一致しており、すなわち、そのテーブルの内容は、当該次元の当該レベルにおけるデータ分布を示すデータとなる。また、レベルの指定を最下位に設定すれば、これは元のデータベースのデータ分布を階層情報のメンバの並び順に表現した形となる。
【００４６】
次にステップ４０４でデータ分布解析処理部２０４は、事前集約先の次元メンバ数量テーブルを元に分析結果テーブルを作成する。
【００４７】
図８は本実施形態の分析結果テーブルの一例を示す図である。図８に示す様に分析結果テーブルには各メンバの出現割合が記録される。データの総数は次元メンバ数量テーブルの数値を合計すれば取得できる。データの総数で各メンバにおけるデータの数を割るのである。これにより、各次元ではどのメンバにデータが集中しているのかが分かる様になり、図８の様なメンバ毎のデータの割合が得られる。
【００４８】
図９は本実施形態のデータ分析結果のデータ件数でのソート結果の一例を示す図である。ステップ４０４では、各次元について図８をデータ件数でソートし、図９の様にデータの件数が多い順に並べ直す。
【００４９】
ステップ４０５では、この結果を元に各次元について上位からユーザ指定のメンバ（この例では上位１０％に該当するメンバ）のデータ量の割合を計算する。これは図９のデータから容易に計算できる。この結果、図１０の様なテーブルが得られる。
【００５０】
図１０は本実施形態の次元毎のデータ分析テーブルの一例を示す図である。図１０では、各次元の上位メンバに存在するデータの割合を表しており、この次元毎のデータ分布テーブルから各次元のデータの偏りの度合いが分る。すなわち、この数字の大きいもの程データの分布が局所化しており、本システムはこの数値の少ない次元から順に次元名を出力する。つまり、図１０の次元毎のデータ分布テーブルの例では「販売時期、販売店、．．」といった順番でデータ分布のなだらかな順にデータベース管理者に提示する。
【００５１】
次に、本実施形態において、前述のコンビニエンスストアの多次元データベースについてデータ分布をデータベース管理者に提示し、図１４のデータベースで、データベース管理者が商品次元と販売時期次元に関して事前集約を行う場合について説明する。
【００５２】
図１１は本実施形態のコンビニエンスストアの多次元データベースの各次元に関する分析結果のグラフ例を示す図である。図１１では、前述のコンビニエンスストアの多次元データベースにおいて、商品次元と販売時期次元に関して事前集約を行う場合の各次元に関する分析結果をグラフで提示しており、商品次元のデータ分布は図１１の「商品次元の集約先」の様になり、販売時期次元の集約先におけるデータ分布は図１１の「販売時期次元の集約先」の様になっており、集約しない店舗次元のデータ分布は図１１の「店舗次元」の様になっている。
【００５３】
図１１の様に、このとき商品次元は極端にデータが偏っているが、店舗次元はほぼ中央でデータが２分されることが分る。また、販売時期次元に関してはデータが全体に均一に近く分布していることが分る。この為、データベース管理者は、販売時期次元を細かく分割し、店舗次元を大きく２つに分割、商品次元は分割しない方が良い等、前記データ分布を参考にした判断を行うことが可能であり、このときデータベース管理者が行うデータ分割の一つは例えば図１２の様なものとなりえる。
【００５４】
図１２は本実施形態のデータ分割の一例を示す図である。図１２の分割の結果、データベースは図１４の「コンビニエンスストアの売上高データベース（販売時期×店舗のデータ分布）パターン１」や図１４の「コンビニエンスストアの売上高データベース（販売時期×店舗のデータ分布）パターン２」と同じ数（１６個）に分割されている。
【００５５】
この場合、図からも分る様にデータは各格納領域に均等に分けられる。また、販売時期、店舗のどちらから横断的に検索を行っても、全ての格納領域に均等に負荷が分散される（データの偏りが大きい商品次元で、多くの割合を占める食品のデータが販売時期に対して均等に分布している場合には、販売時期に対する均等なデータ分割により商品次元のデータも均等に分割されると考えられる為、商品次元に関して横断的な検索を行っても、図１２の分割によって全ての格納領域にＩ／Ｏが分散される。この為、商品次元についても十分な効果が得られる）。
【００５６】
従来の事前集約処理では、ある次元の事前集約処理の際に処理されるデータがどの様に分布しているかは明らかではなかった為、データ分布とは無関係に事前集約処理を実行して事前集約後のデータの分散格納を行うこととなり、一部の格納領域への入出力処理が集中する場合があった。
【００５７】
本実施形態では、事前集約処理の際に処理されるデータのデータ分布を提示するので、そのデータベース管理者が行おうとしている事前集約処理におけるデータのデータ分布に合わせ、複数の格納領域への入出力処理が均等に行われる様にデータの分散格納を行うことができる。
【００５８】
すなわち、本実施形態において、データベース管理者は、多次元データのデータ分布を一目で分る形で取得することが可能であり、この様子の例は図１１に見ることができる。図１１の「商品次元の集約元」は最下位レベルでのデータ分布を、図１１の「商品次元の集約先」は事前集約先のデータ分布をそれぞれ示しており、この様なグラフの作成は、表計算を行うソフトウェア等を利用して行うこともできる。
【００５９】
図１１の「商品次元の集約元」から、最下位レベルにおいては商品次元は比較的分割しやすい次元の様に見えるが、集約後の図１１の「商品次元の集約先」では商品次元上のデータ分布は極端に偏っており、データの分割が難しいことが分る。この様に、本実施形態におけるデータ分布の提示は、データベース管理者がデータを分割する際の有効な判断材料となる。事前集約処理でデータが均等に分割されていると、多次元データベースにおける事前集約処理そのものが速くなる。また、格納領域毎のデータの偏りも抑止できる為、事前集約後のデータの検索処理も速くなる。
【００６０】
多次元データベースにおいて実際に事前集約を行った場合、データの一部は計算の結果と同じデータに集約され、事前集約結果は集約元のデータに比べて件数は少なくなる為、本実施形態の様な単純な件数の足し上げでは、実際の事前集約後のデータ数とは異なる結果が出る場合がある。そこで本実施形態では、事前集約前のデータ数と比較して事前集約後のデータ数があまり小さくならないケースを想定するものとし、単純な足し上げでも大きな誤差とはならない場合についてデータ分布の提示を行うものとする。なお、事前集約前のデータ数と比較して事前集約後のデータ数が小さくなるのであれば、事前集約結果の格納に要する処理時間もそれだけ短くなる為、そのデータ分布の提示を行わないこととしても問題とはならないと考えられる。
【００６１】
また、従来技術において多次元データベースを構成するデータを論理的なセルで表現した場合には爆発的な大きさのビット数が必要となる為、ビットマップ等を用いてデータ分布を知るのは困難であったが、本実施形態で実現される機能は、ビットマップ等を用いる場合と比較して処理負荷の低いものとなっており、実際の計算機上において、論理的な多次元空間全体をメモリ上に展開する等の処理を行っていないので、少ないリソースでの処理が可能である。
【００６２】
以上説明した様に本実施形態の多次元データベース管理装置によれば、事前集約処理の行われる多次元データベースのデータ分布を提示するので、事前集約処理時の入出力処理負荷が各格納領域でできるだけ均等となる様な分散格納を支援することが可能である。
【００６３】
【発明の効果】
本発明によれば事前集約処理の行われる多次元データベースのデータ分布を提示するので、事前集約処理時の入出力処理負荷が各格納領域でできるだけ均等となる様な分散格納を支援することが可能である。
【図面の簡単な説明】
【図１】本実施形態の多次元データベース管理装置の概略構成を示す図である。
【図２】本実施形態のデータ解析処理の処理手順を示すフローチャートである。
【図３】本実施形態の入力データ位置情報の一例を示す図である。
【図４】本実施形態の次元メンバ数量テーブルの一例を示す図である。
【図５】本実施形態の集約先情報の一例を示す図である。
【図６】本実施形態の格納対象のデータベースの階層情報の一例を示す図である。
【図７】本実施形態の事前集約先の次元メンバ数量テーブルの一例を示す図である。
【図８】本実施形態の分析結果テーブルの一例を示す図である。
【図９】本実施形態のデータ分析結果のデータ件数でのソート結果の一例を示す図である。
【図１０】本実施形態の次元毎のデータ分析テーブルの一例を示す図である。
【図１１】本実施形態のコンビニエンスストアの多次元データベースの各次元に関する分析結果のグラフ例を示す図である。
【図１２】本実施形態のデータ分割の一例を示す図である。
【図１３】従来の複数の格納領域を持つデータベースシステムの一例を示す図である。
【図１４】従来のコンビニエンスストアの売上高データベースのデータ分布並びにデータ分割の例を示す図である。
【図１５】従来のコンビニエンスストアの多次元データの商品次元の階層構造の一例を示す図である。
【符号の説明】
２０１…入力データ読み込み処理部、２０２…次元切り出し／集計処理部、２０３…マッピング処理部、２０４…データ分布解析処理部。
【図１】
2004021628.tif 000003
【図２】
2004021628.tif 000004
【図３】
2004021628.tif 000005
【図４】
2004021628.tif 000006
【図５】
2004021628.tif 000007
【図６】
2004021628.tif 000008
【図７】
2004021628.tif 000009
【図８】
2004021628.tif 000010
【図９】
2004021628.tif 000011
【図１０】
2004021628.tif 000012
【図１１】
2004021628.tif 000013
【図１２】
2004021628.tif 000014
【図１３】
2004021628.tif 000015
【図１４】
2004021628.tif 000016
【図１５】
2004021628.tif 000017