(57)【要約】【課題】多次元データ集計処理において、各次元の集計処理間の依存性を排除して、並列処理を実現する。【解決手段】明細データ５１から１次集計値５２を算出し、さらに１次集計値５２から２次集計値５３を算出する処理において、１次集計値５２を算出すると同時に、明細データ５１から中間集計値５４を算出し、さらに中間集計値５４から２次集計値５３を算出するようにして、１次集計値５２の算出完了を待機せずに２次集計値５３の算出を開始できるようにした。【選択図】              図４
2005025589.tif 000002
【特許請求の範囲】
【請求項１】
レコードの明細データを複数の次元キーに従って重畳的に集計する多次元データ集計装置において、
前記明細データを前記第１の次元キーに従って集計し、その結果を１次集計値として出力する１次集計手段と、
前記１次集計値の出力を待たずに、前記明細データを第２の次元キーについて集計し、その結果を中間集計値として出力する中間集計手段と、
前記中間集計値を前記第１の次元キーについて集計し、その結果を前記２次集計値として出力する２次集計手段とを備えたことを特徴とする多次元データ集計装置。
【請求項２】
前記１次集計手段は、所定の条件によって前記レコードを分類する第１のカテゴリを前記第１の次元キーとして、前記１次集計値を集計し、
前記中間集計手段は、前記所定の条件とは異なる条件によって前記レコードを分類する第２のカテゴリを前記第２の次元キーとして、前記中間集計値を集計することを特徴とする請求項１に記載の多次元データ集計装置。
【請求項３】
前記中間集計手段は、前記第１のカテゴリの上位概念である前記第２のカテゴリについて、前記中間集計値を集計することを特徴とする請求項２に記載の多次元データ集計装置。
【請求項４】
前記１次集計手段は、前記レコードの第１の属性を前記第１の次元キーとして、前記１次集計値を集計し、
前記中間集計手段は、前記第１の属性とは異なる第２の属性を前記第２の次元キーとして、前記２次集計値を集計することを特徴とする請求項１に記載の多次元データ集計装置。
【請求項５】
前記２次集計手段は、前記１次集計値と前記中間集計値とのいずれか先に出力された方から前記２次集計値を算出することを特徴とする請求項１乃至４のいずれか一に記載の多次元データ集計装置。
【請求項６】
前記第１及び第２の次元キーの一方又は双方が複数存在する場合に、前記１次集計手段及び前記２次集計手段、並びに前記中間集計手段をスケジューリングして前記第１及び第２の次元キーのそれぞれについての前記１次集計値又は前記２次集計値並びに前記中間集計値を算出させる制御手段をさらに備えたことを特徴とする請求項１乃至５のいずれか一に記載の多次元データ集計装置。
【請求項７】
レコードの明細データをＭ個（Ｍは２以上の自然数）の次元キーについて重畳的に集計する多次元データ集計装置において、
前記Ｍ個の次元キーからなる順列を算出する次元キー順列算出手段と、
Ｎ個（Ｎは２以上の自然数）の集計手段と、
前記次元キー順列算出手段が算出した前記順列の次元キーに従って、前記レコードの明細データを重畳的に集計する順列別多次元集計処理を前記Ｎ個の集計手段に分配して並列に処理させて、そのうち最初に終了した前記順列別多次元集計処理の結果を取得する制御手段と、
前記制御手段が取得した順列別多次元集計処理を出力する集計結果出力手段とを備えることを特徴とする多次元データ集計装置。
【請求項８】
前記次元キー順列算出手段は、前記Ｍ個の次元キーからなる組み合わせを算出し、
前記制御手段は、前記Ｍ個の次元キーからなる組み合わせの次元キーに従って、前記レコードの明細データを重畳的に集計する順列別多次元集計処理を前記Ｎ個の集計手段に分配することを特徴とする請求項７に記載の多次元データ集計装置。
【請求項９】
前記制御手段は、前記順列別多次元集計処理を前記順列又は組み合わせの次元キー単位に部分集計処理に分割するとともに、前記部分集計処理を前記Ｎ個の集計手段に分配することを特徴とする請求項７又は８のいずれかに記載の多次元データ集計装置。
【請求項１０】
レコードの明細データを複数の次元キーについて重畳的に集計する多次元データ集計プログラムにおいて、
前記明細データを前記第１の次元キーについて集計し、その結果を１次集計値として出力する１次集計手順と、
前記１次集計値の出力を待たずに、前記明細データを前記第２の次元キーについて集計し、その結果を中間集計値として出力する中間集計手順と、
前記中間集計値を前記第１の次元キーについて集計し、その結果を前記２次集計値として出力する２次集計手順とをコンピュータに逐次実行させることを特徴とする多次元データ集計プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、異なる基準に基づいて多元的にデータを集計する多次元データ集計装置に係るものであり、特に並列処理を用いて多次元データ集計を効率的に行う技術に関する。
【０００２】
【従来の技術】
データベースシステムでは、大量のデータを効率的かつ高速に取り扱うことが要求されるので、複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央演算装置）を用いて、並列に集計処理を行うための方法に、従来から関心が集まっている。特に、データマイニングシステムやＯＬＡＰ（ＯｎＬｉｎｅ  Ａｎａｌｙｔｉｃａｌ  Ｐｒｏｃｅｓｓｉｎｇ）システムで要求されるデータベース集計では、単一のカテゴリについて集計を行うだけではなく、複数のカテゴリについて多角的に集計を行う機能が要求されている。このため、並列演算を用いて多次元データ集計処理を効率的に行う方法についても開発されている。例えばソートされたレコードを有するデータベースの集計にあたって、複数のＣＰＵが集計処理を担当するレコードの分配を工夫することで、処理効率を向上させるものがある（例えば、特許文献１）。
【０００３】
【特許文献１】
特開平１１−１８４８４３  「データ集計装置」
【０００４】
【発明が解決しようとする課題】
多次元データ集計処理では、一定の基準に基づいて集計値（１次集計値）を求めた後、さらにこの集計値を別の基準に基づいて集計を行う（このようにして得られた集計値を２次集計値という）。このような場合、１次集計値が集計されていなければ、２次集計値を集計することができない。したがって、２次集計値の集計処理は、１次集計値の集計処理完了まで待機する必要がある。従来の並列演算アルゴリズムによれば、１次集計値の集計処理、２次集計値の集計処理をそれぞれ個別に高速化することは可能である。しかし、上述のように、２次集計処理の１次集計処理に対する依存性を排除することができない。同様にＭ次の集計値が算出できなければ、Ｍ＋１次の集計値の算出処理を開始できないので、Ｍが大きい多次元データ集計処理では、次元の切り換えのためのオーバーヘッドが大きくなり、思うように高速化が進まない。
【０００５】
この発明はかかる課題を解決することを目的とするものであって、１次集計値算出以外に２次集計値を算出する経路を設けることで、２次集計処理の１次集計処理に対する依存性を排除する。これによって、１次集計処理と２次集計処理とを並列に実行して、多次元データ集計処理を高速化するものである。
【０００６】
【課題を解決するための手段】
この発明に係る多次元データ集計装置は、レコードの明細データを複数の次元キーについて重畳的に集計する多次元データ集計装置であって、
前記１次集計値を、前記第１のカテゴリとは異なるレコードの分類である第２のカテゴリについて集計し、その結果を２次集計値として出力する２次集計手段とを備えた多次元データ集計装置であって、
前記明細データを前記第１の次元キーについて集計し、その結果を１次集計値として出力する１次集計手段と、
前記１次集計値の出力を待たずに、前記明細データを前記第２の次元キーについて集計し、その結果を中間集計値として出力する中間集計手段と、
前記中間集計値を前記第１の次元キーについて集計し、その結果を前記２次集計値として出力する２次集計手段とを備えたものである。
【０００７】
また、この発明に係る多次元データ集計装置は、レコードの明細データを複数の次元キーについて重畳的に集計する多次元データ集計装置であって、
前記Ｍ個（Ｍは２以上の自然数）の次元キーからなる順列を算出する次元キー順列算出手段と、
Ｎ個（Ｎは２以上の自然数）の集計手段と、
前記次元キー順列算出手段が算出した前記順列の次元キーに従って、前記レコードの明細データを重畳的に集計する順列別多次元集計処理を前記Ｎ個の集計手段に分配して並列に処理させて、そのうち最初に終了した前記順列別多次元集計処理の結果を取得する制御手段と、
前記制御手段が取得した順列別多次元集計処理を出力する集計結果出力手段とを備えるものである。
【０００８】
【発明の実施の形態】
次に、この発明の一の実施の形態について説明する。
実施の形態．
図１は、この発明の実施の形態に係る多次元データ集計装置とこの多次元データ集計装置が用いられるシステム全体の構成を示したブロック図である。図において、基幹系業務システム１は、例えば企業の日常業務（入金処理や在庫管理など）を行うための情報処理システムであって、企業の各部署に配置された入出力端末を介して入力されたデータを受け付け、必要に応じて伝票などのデータ出力を行うものであり、一台又は複数台からなる比較的処理性能の高いコンピュータ（サーバコンピュータ又はホストコンピュータ）と、それらを制御するコンピュータソフトウェアから構成されている。なお、基幹系業務システム１が複数台のコンピュータから構成される場合はネットワークで相互のコンピュータが接続されているものとする。
【０００９】
ＲＤＢ２は、基幹系業務システム１からのトランザクション処理要求に応じて、データの入出力及びその管理を行うリレーショナルデータベースシステムである。ＲＤＢ２は、複数の入出力端末からランダムに入力されるデータ間の整合性を維持し、かつ十分なレスポンス性能を得るために、データを複数の表に分割して管理しており、必要に応じて、複数の表のデータを結合して単一のデータセットを生成する機能を有している。これらの表はデータ項目間の論理関係に基づいて予め構成されているものである。
【００１０】
ＥＴＬツール３は、ＲＤＢ２が複数の表に分割して保持しているデータを抽出して、単一の表に変換するためのデータ変換システムである。ここで、ＥＴＬとは、Ｅｘｔｒａｃｔｉｏｎ、Ｔｒａｎｓｆｏｒｍａｔｉｏｎ  ａｎｄ  Ｌｏａｄｉｎｇの略語である。ＥＴＬツールは、ＲＤＢ２を構成するリレーショナルデータベースシステム自身が機能を提供していることもあるし、ＲＤＢ２とは別体で構成されたコンピュータソフトウェアとして実現される場合もある。
【００１１】
単純表ＤＢ４は、磁気ディスク装置に記憶されるファイルであって、ＥＴＬツール３によって生成されるものである。ＥＴＬツール３は、ＲＤＢ２において複数の表に分けて保持されているデータのレコードを結合して新たなデータセットを生成し、単純表ＤＢ４中のレコードとして出力する。
【００１２】
多次元データ集計装置５は、単純表ＤＢ４に記憶されているデータを多次元集計するための装置であって、主として分析業務に用いられるものである。分析業務では、日常業務の傾向や状況を把握するために、日常業務で発生し、蓄積されているデータを多角的に集計することが要求される。基幹系業務システム１とＲＤＢ２との組み合わせにおいては、データの更新の方法や検索の方法などが日常業務の内容に基づいて決まっているため、所定のコンピュータプログラムを用いて自動化することが容易である。したがって、そこで発生する集計処理も定型的な処理が多い。一方、多次元データ集計装置は分析業務用途に用いられるので、さまざまな条件で動的にこれらのデータの集計を行う必要があり、また集計を行う条件を事前に限定することができないことが多い。
【００１３】
このため、基幹系業務システム１とＲＤＢ２の組み合わせではテーブルを複数に分割して、特定の追加処理や更新処理における応答性能の向上とデータ間の整合性維持に重点を置いている。これに対して、多次元データ集計装置５と単純表ＤＢ４との組み合わせでは、単一の表において同一構造のレコードによってデータを保持することで、データの取り扱いを容易にし、さまざまな条件による集計演算の処理性能をほぼ一様に向上させるような工夫が図られている点で、基幹系業務システム１とＲＤＢ２の組み合わせとは異なっている。
【００１４】
ここで、「集計」とは明細データを入力値として何らか計算を行い、一の値を求めることをいい、単に明細データの総和を求める演算のみを指すものではないものとする。
【００１５】
次に、多次元データ集計装置５の詳細な構成について説明する。図２は、多次元データ集計装置５の詳細な構成を示したブロック図である。図において集計条件入力部１１は、利用者が入力する分析条件を取得する部位であって、キーボードなどの入力デバイスと、入力デバイスからの入力信号を解析するコンピュータプログラムから構成されている。ここで分析条件とは、多次元データ集計装置５が単純表ＤＢ４のデータを集計するための条件であり、より具体的には、どのようなデータの単位（集計単位）でどの明細データを集計するかを指定するものであり、さらに集計演算の種類（例．明細データの総和を算出する、平均値を算出する等）についても、ここで指定することになる。
【００１６】
制御部１２は、集計条件入力部１１が受け取った分析条件を集計部１４−１〜１４−Ｎに送り出すとともに、集計部１４−１〜１４−Ｎの動作スケジュールを制御し、さらに集計部１４−ｉ（ｉは１〜Ｎのいずれかの値）の出力結果を集計部１４−ｉ以外の集計部に転送したり、集計部１４−１〜１４−Ｎによる集計結果を集計結果出力部１３に出力したりする部位である。
【００１７】
集計結果出力部１３は、制御部１２によって集積された集計部１４−１〜１４−Ｎによる集計結果を利用者が所望する形式に編集して表示する部位である。ここでは例えば、集計単位ごとに集計値をグラフ化して表示してもよいし、プリンタが利用できる場合には、プリンタを用いて集計結果を帳票出力してもよい。
【００１８】
集計部１４−１〜１４−Ｎは、それぞれが単純表ＤＢ４に記憶されているデータを取得して、集計処理を行う部位である。集計部１４−１〜１４−Ｎは対称であること（各集計部が同じ機能を有しており、相互に置換可能であること）が望ましいが、必須ではない。集計部１４−１〜１４−Ｎが非対称である場合には、制御部１２は集計部１４−１〜１４−Ｎの非対称性を考慮した動作制御を行うようにする。
【００１９】
なお、集計部１４−１〜１４−Ｎのうち、いずれか一の集計部が１次集計手段に対応するものであり、この集計部を除く集計部のうち、いずれか一の集計部が２次集計手段に対応する。さらに１次集計手段と２次集計手段に対応する集計部を除く集計部のうち、いずれか一の集計部が中間集計手段に対応する。また制御部１２は制御手段に対応するものである。
【００２０】
次に多次元データ集計装置５の動作について図を用いて説明する。初めに（１）多次元データ集計装置５の目的である多次元データ集計の概略について説明し、次に（２）多次元データ集計装置５の動作原理について説明する。そして最後に（３）多次元データ集計装置５の動作の詳細を説明することとする。
【００２１】
（１）多次元データ集計の概略
図３は、ＥＴＬツール３によってＲＤＢ２から抽出され、単純表ＤＢ４によって記憶されている明細データの内容の例である。図に示すように、明細データは属性（行要素又はレコード項目）として、「売上年月日」、「製品」、「支部」、「売上」からなる単一構造のレコードの集合として構成されている。ここで、「売上」が集計対象となる明細データの項目であるとすると、集計の方法としては、属性「売上年月日」を基準に集計する方法、属性「製品」を基準に集計する方法、属性「支部」を基準に集計する方法が考えられる。
【００２２】
さらに、「売上年月日」は日ごとの集計だけではなく、例えば一週間ごと、月ごと、四半期ごと、半期ごと、などの単位（集計単位）を基準とした集計方法が考えられる。このような集計単位はカテゴリの一例である。このようなカテゴリは、属性値（レコードの属性の値）の性質上「売上年月日」のような連続的な値をとる属性だけでなく、離散的な値をとる属性においても観念される。例えば、属性「製品」であれば、「テレビ」、「ビデオ」を「ＡＶ機器」というカテゴリに分類することができるし、「洗濯機」、「冷蔵庫」を「家電」というカテゴリに分類することができる。また属性「支部」であれば、「片瀬」、「鵠沼」を「藤沢」というカテゴリに分類することもできるし、「大船」、「町屋」を「鎌倉」というカテゴリに分類することもできる。
【００２３】
多次元データ集計装置５が目的とする多次元集計とは、例えば、図３に示した「売上」明細データを、一旦「ＡＶ機器」、「家電」の別に集計し（１次集計）、次に、１次集計された結果をさらに「藤沢」、「鎌倉」で集計する（２次集計）。ついで、２次集計の結果を１月、２月、…、１２月などの月別に集計する（３次集計）というように、複数の基準に基づいて、重畳的あるいは多段的に集計していく処理をいう。複数の段階による集計処理からなる多次元集計処理の各段階の集計処理において、集計の基準として用いられる条件を「次元キー」という。
【００２４】
図４は、このような多段的な集計処理の様子を模式的に示した概念図である。図において、破線による矩形５１で囲まれた値はＥＴＬツール３によって抽出された明細データである（以下、「明細データ５１」という）。ここで、明細データ５１は、すべての次元キーからなる１つのキーで集計して得られる集計値であってもよい。また矩形５２で囲まれた値は明細データから１次集計された集計値である（以下、「１次集計値５２」という）。また破線による矩形５３で囲まれた値は２次集計された集計値である（以下、「２次集計値５３」という）。そうすると、１次集計値５２は次元キー「製品」について集計した集計値であって、２次集計値５３は、次元キー「支部」について集計した集計値である。
【００２５】
次に「カテゴリの階層」という概念を導入する。各属性の値に基づいてレコードを分類する方法は一通りには限られない。例えば「売上年月日」であれば、前述の通り週、月、四半期、半期、年、のような複数通りの分類方法が可能である。また「製品」であれば、「ＡＶ機器」、「家電」のような分類だけではない。例えば、電器製品以外の商品も扱う店舗の売り上げ管理をする場合には、衣料品、食品などのカテゴリも観念できる。そして「ＡＶ機器」、「家電」は「電器製品」というカテゴリで括られるので、「ＡＶ機器」、「家電」という下位のカテゴリに対して、「電器製品」というカテゴリは上位のカテゴリに位置すると考えることができる。また「衣料品」や「食品」というカテゴリと「電器製品」というカテゴリは並列（同一の階層レベルにある）の関係にあると考えることができる。さらに「衣料品」や「食品」、「電器製品」は「量販品」という同一のカテゴリに属するもの、と考えることができる。週、月、四半期、半期、年も同様で、「週」というカテゴリは、「月」というカテゴリの下位カテゴリと考えることができるし、「月」というカテゴリは、「四半期」というカテゴリの下位カテゴリであると考えられる。図５に、製品や売上年月日に対するカテゴリの関係を示す樹形図を示す。
【００２６】
データを集計するという観点から、これら上位・下位の関係にあるカテゴリの性質を検討すると、次のようになる。すなわち、より下位のカテゴリに基づいて行った集計値からは詳細な分析結果が得られるが、近視眼的な分析になりやすい、という傾向がある。一方、上位のカテゴリに基づいて集計を行えば、大きな傾向を把握できることになるが、細かな動向や要因を見逃しやすくなる。したがって、データを分析する上では、集計値を求めるカテゴリの粒度（上位のカテゴリであれば粒度が大きく、下位のカテゴリであれば粒度が小さい）を柔軟に選択できることが望ましい。データ集計処理の実現方式から見ると、上位のカテゴリの集計は、下位のカテゴリの集計値を基礎に行われる。したがって、下位のカテゴリの集計値を基礎にして行う上位カテゴリの集計演算は、図４に示した「製品」、「支部」、「月」といった異なる属性に基づく多元的集計演算と同じように多元的であるといえる。そこで、多次元データ集計装置５では、このように同一の属性において異なる粒度で集計演算を繰り返す集計処理（同一の属性の異なる階層レベルのカテゴリにおいて集計値を算出すること）をも、多次元集計処理として扱うこととする。
【００２７】
カテゴリやカテゴリの階層は集計処理を実行する以前に利用者、あるいは基幹系業務システム１及びＲＤＢ２の設計・開発と合わせて定義されているものとし、その後、例えば図示せぬ磁気ディスク装置上に記憶されたファイルとして、多次元データ集計装置５から参照可能なように構成されているものとする。以降の説明において、このファイルを「カテゴリ定義ファイル」と呼ぶことととする。このカテゴリ定義ファイルでは、図５に示したカテゴリ間の階層関係の他に、各カテゴリと属性値との対応関係についても定義がなされる。
【００２８】
なお、カテゴリに分類することは必須ではない。例えば、ある属性全体が単一のカテゴリを構成すると考えれば、カテゴリ分類をする必要がなくなる。この場合には、その属性全体で一つの集計値を求めることになる。以上が、多次元データ集計装置５における多次元データ集計の概略についての説明である。
【００２９】
（２）多次元データ集計装置５の動作原理
次に、再び図４を用いて、多次元データ集計装置５の動作原理について説明する。従来の技術においては、２次集計値５３は、１次集計値５２をさらに属性「支部」に基づいて集計するものであるから、１次集計値５２の算出が完了していないと、２次集計値５３の算出を開始することができなかった。
【００３０】
ところで、図４の２次集計値５３は、破線による矩形５４で囲まれたデータからも算出できる。この矩形５４で囲まれたデータとは、明細データ５１を属性「支部」によって集計したデータである。以後の説明において、このようなデータを中間集計値と呼ぶこととし、図４の矩形５４で囲まれたデータを中間集計値５４とする。
【００３１】
中間集計値５４は、明細データ５１から直接算出することができる。したがって、１次集計値５２には依存しないデータである。したがって、１次集計値５２が算出されていなくても、中間集計値５４を算出することができる。中間集計値５４が算出できるのであれば、２次集計値５３は１次集計値５２が算出されていなくても、算出できることになる。
【００３２】
このような中間集計値５４を算出することによって、２次集計値５３の１次集計値５２に対する依存性を排除し、その結果１次集計値５２と中間集計値５４、及び２次集計値５３のそれぞれを並列演算せしめることで、多次元データ集計処理の高速化を図ることができる。
【００３３】
上記の原理は、１次集計値５２の算出完了前に、２次集計値５３の算出処理を実質的に開始することで、各次元における集計処理の待機時間を少なくし、高速化を図るというものである。そのため、１次集計値の算出に時間を要する場合、例えば１次集計値の集計を行っている集計部の処理が割り込み処理などによって遅延しても、そのような影響を排除して高速に２次集計値を算出することができる。
【００３４】
また、さらに１次集計値５２と中間集計値５４を並列に集計処理し、いずれか先に算出が完了した方を用いて２次集計値５３を算出するようにしてもよい。このようにすることで、中間集計値５４の算出処理が遅延した場合であっても、１次集計値５２の結果を用いて２次集計値５３を算出することができる。
【００３５】
以上のような動作原理は、２次元集計処理のみならず、Ｍ次元集計処理（Ｍ回の集計演算を繰り返す処理、ただしＭは２以上の自然数）にも適用できる。例えば次元キーＡと次元キーＢ、次元キーＣによって集計される３次元集計処理を考えてみる。このとき明細データを次元キーＡについて集計した集計値を「明細データ→Ａ」のように表し、「明細データ→Ａ」を次元キーＢについて集計した集計値を「明細データ→Ａ→Ｂ」のように表すと、「明細データ→Ａ→Ｂ」と「明細データ→Ｂ→Ａ」は、図４の１次集計値５２、２次集計値５３、中間集計値５４の関係から明らかなように、同じ集計値である。
【００３６】
そうすると、３次元集計処理による集計値「明細データ→Ａ→Ｂ→Ｃ」は「明細データ→Ｂ→Ａ→Ｃ」や「明細データ→Ａ→Ｃ→Ｂ」、「明細データ→Ｃ→Ａ→Ｂ」などと同じ集計値である。そこで、集計値「明細データ→Ａ」が算出されていなくても、「明細データ→Ｂ」や「明細データ→Ｃ」を求めることができ、また集計値「明細データ→Ａ→Ｂ」が算出されていなくても、「明細データ→Ｂ→Ａ」や「明細データ→Ｃ→Ｂ」その他の集計値を算出して、最終的に「明細データ→Ａ→Ｂ→Ｃ」と同じ集計値を算出することができる。以上が、多次元データ集計装置５の動作原理である。
【００３７】
（３）多次元データ集計装置５の動作
次に、多次元データ集計装置５の動作の詳細について説明する。図６は、多次元データ集計装置５の動作を示したフローチャートである。まず集計条件入力部１１、は分析条件を取得する（ステップＳ１０１）。分析条件は、例えばプログラムの起動パラメータなどの形式で、利用者から指定される。分析条件中には、Ｍ次元の集計処理におけるＭの指定（次元数の指定）、各次元における次元キーの指定などが含まれる。次元キーとしては（２）多次元データ集計装置５の動作原理の項で説明したように、カテゴリや属性を指定する。
【００３８】
次に制御部１２は、集計条件入力部１１によって入力された分析条件から、次元キーを分離する（ステップＳ１０２）。そして、次元キーがカテゴリの場合には、予め定義されたカテゴリ定義ファイルを参照して、カテゴリの階層関係、及び属性値とカテゴリとの対応関係が解決される。
【００３９】
続いて制御部１２は、現在の集計処理の次数を検定する（ステップＳ１０３）。この処理は、多次元データ集計装置５が複数の次元キーによって逐次集計処理を繰り返していくので、その繰り返し回数を制御するために設けられている。ここでは、集計処理が所定の次元数に到達した場合には、ステップＳ１０６に進む（ステップＳ１０３：ＹＥＳ）。その次元数に到達するまではステップＳ１０４に進む（ステップＳ１０３：ＮＯ）。以後の説明において、ステップＳ１０６に進む場合について後述することとし、所望の次元数に到達していない場合、すなわちステップＳ１０４に進む場合について、次に説明する。
【００４０】
ステップＳ１０４において、制御部１２は集計部１４−１〜１４−Ｎに対して、集計処理を分配する。ここでは例として、４次元集計処理の次元キーとして、次元キー１、次元キー２、次元キー３、次元キー４がステップＳ１０１で取得されたものとする。そうすると、「（２）多次元データ集計装置５の動作原理」の項で述べたように、この集計処理で得られる集計値を得るには、複数の集計処理経路が考えられる。たとえば、当初（０次元目）は次元キー１、次元キー２、次元キー３、次元キー４のどれで集計してもよい。したがって、明細データを次元キー１、次元キー２、次元キー３、次元キー４について集計する処理を、集計部１４−１〜１４−Ｎのうちの４つの集計部に分配する。そして集計部１４−１〜１４−Ｎのうち、集計処理を分配された４つの集計部は並列処理によって、それぞれの集計処理を行う（ステップＳ１０５−１〜Ｎ）。
【００４１】
１次元目以降の場合は、次のようになる。いま、明細データを次元キー１で集計した集計値を集計値（次元キー１）、次元キー１→次元キー２の順番で集計した集計値を「集計値（次元キー１，次元キー２）」のように表すことにする。そうすると、１次元目の場合は、集計値（次元キー１）、集計値（次元キー２）、集計値（次元キー３）、集計値（次元キー４）が得られている。これらについて、０次元目で用いた次元キーを除く残り３つの次元キーから一つ選択して、４種類の集計値をその次元キーについて再び集計する。この場合、例えば集計値（次元キー１）について、次元キー２、次元キー３、次元キー４による集計処理が依存関係のない集計処理となるから、この３つの集計処理を集計部１４−１〜１４−Ｎに対して分配する（ステップＳ１０４）。そして集計部１４−１〜１４−Ｎのうち、集計処理を分配された３つの集計部は並列処理によって、それぞれの集計処理を行う（ステップＳ１０５−１〜Ｎ）。その結果、集計値（次元キー１，次元キー２）、集計値（次元キー１，次元キー３）、集計値（次元キー１，次元キー４）の３種類が得られる。
【００４２】
同様にして、集計値（次元キー２）、集計値（次元キー３）、集計値（次元キー４）のそれぞれの集計値について、次の次元キーによる３個ずつの集計処理を集計部１４−１〜１４−Ｎに分配する（ステップＳ１０４）。ただし、集計値（次元キー１，次元キー２）と集計値（次元キー２，次元キー１）は同じ集計値であるから、メモリの使用効率を高めるために他の経路で集計されている集計処理を分配しないようにしてもよい。このように、他の経路で集計されている集計処理を排除するように集計処理を分配するのであれば、Ｍ次元集計処理（最終的な集計処理の次元数がＭ）におけるｉ次元目での集計処理の個数はＭＣｉで与えられる。しかしこのことは必須ではない。例えば、集計部１４−１〜１４−Ｎの個数に余裕がある場合は、集計値（次元キー１，次元キー２）と集計値（次元キー２，次元キー１）とを同時に集計させ、いずれか先に集計値が算出された方を、次の次元の集計処理に用いるようにすることで、より高速な集計処理を行うことができる。このような冗長性を有する分配方法を採用する場合には、Ｍ次元集計処理（最終的な集計処理の次元数がＭ）におけるｉ次元目での集計処理の個数はＭＰｉで与えられる。
【００４３】
なお、上記においてＮ≧４（Ｍ＝４）となる場合は、次元キー１、次元キー２、次元キー３、次元キー４による集計処理をすべて分配しきることができる。よって集計処理のスケジューリングを特に工夫する必要がない。
【００４４】
ところが、Ｎ＜４の場合は、次元キー１、次元キー２、次元キー３、次元キー４による集計処理を同時に分配することができない。したがって、このような場合には、集計処理のスケジューリングを行う必要がある。このような場合には、Ｍ個のタスクをＮ個のＣＰＵに分配する公知のスケジューリング方法を用いて、タスクスケジューリングを行う。例えば、個々の集計処理を待ち行列として管理し、各集計部の処理が完了するたびに、順に待ち行列から集計処理を取得して分配していくようにしてもよい。こうすることで、Ｎ個の集計部の計算機資源を効率的に活用することができる。
【００４５】
なお、集計値（次元キー１，次元キー２）の集計は、集計値（次元キー１）か集計値（次元キー２）のいずれかが集計されていることが前提となる。一方、待ち行列はＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）という性質を有している。そこで、集計値（次元キー１）や集計値（次元キー２）を集計する処理を、集計値（次元キー１，次元キー２）を集計する処理より先に待ち行列に入れておけば、あとは単純に待ち行列の先頭から集計処理を取り出すだけで、集計処理間の順序制御が実現されるので、集計値算出の順序の制御が容易になる。
【００４６】
また、多次元データ集計装置５における集計処理には冗長性がある点に着目してこの問題を解決してもよい。つまり、多次元データ集計装置５における集計処理では、他の集計演算経路によっても、同じ集計結果が得られるという性質がある。したがって、一部の集計演算経路の演算を中止しても、最終的な結果には変わりがない。そこで、使用可能な集計部の個数にあわせて、一部の次元キーによる集計処理を中止するのである。こうすることで、分配する集計処理の個数が削減されるので、各集計部の負荷が減少する。その結果、処理性能の維持を図ることができる。もともと多次元データ集計装置５は、多次元データ集計処理を並列演算によって高速化するものであった。しかし、必要以上に多重度を大きくしてしまうと、集計部の負荷が超過することとなって、性能劣化を招く。使用可能な集計部の個数に合わせて、集計処理を間引くようにすることで、このような問題を回避し、最適なスケジューリングを行うことができる。
【００４７】
加えて、使用可能な集計部の個数は、各集計処理の進行状況に応じて刻々と変化していく。そこで、各時刻における使用可能な集計部の個数に応じて、動的に集計処理の間引きを行うようにしてもよい。
【００４８】
なお、説明の都合上、上記においては、各次元における集計処理を逐次実行するように説明した。つまり、図６のフローチャート上は、ｉ次元目の集計処理がすべて完了するまでは、（ｉ＋１）の集計処理が始まらないようになっているが、実際には、集計処理の経路に沿って、非同期に集計処理を実施することも可能である。例えば
集計値（次元キー１，次元キー２，次元キー３，次元キー４）
集計値（次元キー１，次元キー２，次元キー４，次元キー３）
集計値（次元キー１，次元キー３，次元キー４，次元キー２）
集計値（次元キー１，次元キー３，次元キー２，次元キー４）
集計値（次元キー１，次元キー４，次元キー３，次元キー２）
集計値（次元キー１，次元キー４，次元キー２，次元キー３）
…
集計値（次元キー２，次元キー３，次元キー４，次元キー１）
…
集計値（次元キー３，次元キー４，次元キー１，次元キー２）
…
集計値（次元キー４，次元キー３，次元キー１，次元キー２）
…
のように、最初に次元キーの順列を生成することによってすべての経路を算出しておき、それぞれの集計演算を各集計部に分配して処理をスケジューリングし、逐次、それぞれの集計経路間について非同期で実行していくようにしてもよい。各集計経路の集計演算を非同期化することで、さらに計算機資源を有効に使用し、オーバーヘッドの少ない集計処理を行うことができる。
【００４９】
なお、この次元キーの順列を生成する処理は制御部１２が行うようにしてもよいし、次元キーの順列を生成するための専用の部位を新たに設けるようにしてもよい。この次元キーの順列を生成するための機能を有する部位は次元キー順列算出手段に相当するものである。
【００５０】
また、次元キー順列の算出に代えて、次元キーの組み合わせを算出するようにしてもよいことはいうまでもない。また次元キーの順列、あるいは組み合わせを算出した後、各集計経路の集計処理を、各順列あるいは組み合わせの中の個々の集計処理（部分集計処理）に分割して、前述した集計処理の分配のスケジューリングと同様の手法により、部分集計処理を分配するようにしてもよい。
【００５１】
次にこれらの集計処理を各次元キーに対して繰り返し、集計処理が所望の次数に到達した場合に、ステップＳ１０６に進む（ステップＳ１０３：ＹＥＳ）。ステップＳ１０６において、集計結果出力部１３は集計結果を所望の形式に編集して、図示せぬディスプレイ装置またはプリンタ装置などに出力する。また再度の集計処理要求に備えて、集計結果を磁気ディスク装置などに記憶させる。
【００５２】
以上から明らかなように、多次元データ集計装置５によれば、次元キーに関する依存性を排除して、複数の次元キーについての集計処理を並列処理するようにしたので、高速に多次元集計処理を行うことができるのである。
【００５３】
なお、上述の集計条件入力部１１、制御部１２、集計結果出力部１３、集計部１４−１〜１４−Ｎ、あるいは次元キー順列算出手段に相当する機能をコンピュータに実行させるコンピュータプログラムを実現することができることはいうまでもない。この場合において、集計部１４−１〜１４−Ｎは１次集計手順と２次集計手順、中間集計手順に相当し、制御部１２は制御手順、次元キー順列算出手段は次元基準列算出手順に相当する。
【００５４】
【発明の効果】
この発明の多次元多次元データ集計装置によれば、複数の次元キーによって多段的に明細データを集計する処理において、次元キーごとに集計処理を細分化し、さらに各集計処理の相互依存性を排して並列処理するようにしたので、ある次元キーについての集計処理が完了する前に他の次元キーによる集計処理を開始できる。これによって計算機資源を有効活用して高速な多次元データ集計処理を実現することができるという効果を奏するものである。
【図面の簡単な説明】
【図１】この発明の実施の形態に係る多次元データ集計装置とこの多次元データ集計装置が用いられるシステム全体の構成を示したブロック図である。
【図２】この発明の実施の形態に係る多次元データ集計装置の詳細な構成を示したブロック図である。
【図３】この発明の実施の形態に係る明細データの例を示す図である。
【図４】この発明の実施の形態による多次元集計処理の概念図である。
【図５】この発明の実施の形態に係る多次元データ集計装置におけるカテゴリ間の関係を示す樹形図である。
【図６】この発明の実施の形態に係る多次元データ集計装置の動作を示すフローチャートである。
【符号の説明】
１  基幹系業務システム
２  ＲＤＢ
３  ＥＴＬツール
４  単純表ＤＢ
５  多次元データ集計装置
１１  集計条件入力部
１２  制御部
１３  集計結果出力部
１４−１〜１４−Ｎ  集計部。
【図１】
2005025589.tif 000003
【図２】
2005025589.tif 000004
【図３】
2005025589.tif 000005
【図４】
2005025589.tif 000006
【図５】
2005025589.tif 000007
【図６】
2005025589.tif 000008