JP2005025589A - 多次元データ集計処理装置及び多次元データ集計処理プログラム - Google Patents
多次元データ集計処理装置及び多次元データ集計処理プログラム Download PDFInfo
- Publication number
- JP2005025589A JP2005025589A JP2003191765A JP2003191765A JP2005025589A JP 2005025589 A JP2005025589 A JP 2005025589A JP 2003191765 A JP2003191765 A JP 2003191765A JP 2003191765 A JP2003191765 A JP 2003191765A JP 2005025589 A JP2005025589 A JP 2005025589A
- Authority
- JP
- Japan
- Prior art keywords
- aggregation
- value
- dimension
- data
- dimension key
- 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.)
- Granted
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【解決手段】明細データ51から1次集計値52を算出し、さらに1次集計値52から2次集計値53を算出する処理において、1次集計値52を算出すると同時に、明細データ51から中間集計値54を算出し、さらに中間集計値54から2次集計値53を算出するようにして、1次集計値52の算出完了を待機せずに2次集計値53の算出を開始できるようにした。
【選択図】 図4
Description
【発明の属する技術分野】
この発明は、異なる基準に基づいて多元的にデータを集計する多次元データ集計装置に係るものであり、特に並列処理を用いて多次元データ集計を効率的に行う技術に関する。
【0002】
【従来の技術】
データベースシステムでは、大量のデータを効率的かつ高速に取り扱うことが要求されるので、複数のCPU(Central Processing Unit:中央演算装置)を用いて、並列に集計処理を行うための方法に、従来から関心が集まっている。特に、データマイニングシステムやOLAP(OnLine Analytical Processing)システムで要求されるデータベース集計では、単一のカテゴリについて集計を行うだけではなく、複数のカテゴリについて多角的に集計を行う機能が要求されている。このため、並列演算を用いて多次元データ集計処理を効率的に行う方法についても開発されている。例えばソートされたレコードを有するデータベースの集計にあたって、複数のCPUが集計処理を担当するレコードの分配を工夫することで、処理効率を向上させるものがある(例えば、特許文献1)。
【0003】
【特許文献1】
特開平11−184843 「データ集計装置」
【0004】
【発明が解決しようとする課題】
多次元データ集計処理では、一定の基準に基づいて集計値(1次集計値)を求めた後、さらにこの集計値を別の基準に基づいて集計を行う(このようにして得られた集計値を2次集計値という)。このような場合、1次集計値が集計されていなければ、2次集計値を集計することができない。したがって、2次集計値の集計処理は、1次集計値の集計処理完了まで待機する必要がある。従来の並列演算アルゴリズムによれば、1次集計値の集計処理、2次集計値の集計処理をそれぞれ個別に高速化することは可能である。しかし、上述のように、2次集計処理の1次集計処理に対する依存性を排除することができない。同様にM次の集計値が算出できなければ、M+1次の集計値の算出処理を開始できないので、Mが大きい多次元データ集計処理では、次元の切り換えのためのオーバーヘッドが大きくなり、思うように高速化が進まない。
【0005】
この発明はかかる課題を解決することを目的とするものであって、1次集計値算出以外に2次集計値を算出する経路を設けることで、2次集計処理の1次集計処理に対する依存性を排除する。これによって、1次集計処理と2次集計処理とを並列に実行して、多次元データ集計処理を高速化するものである。
【0006】
【課題を解決するための手段】
この発明に係る多次元データ集計装置は、レコードの明細データを複数の次元キーについて重畳的に集計する多次元データ集計装置であって、
前記1次集計値を、前記第1のカテゴリとは異なるレコードの分類である第2のカテゴリについて集計し、その結果を2次集計値として出力する2次集計手段とを備えた多次元データ集計装置であって、
前記明細データを前記第1の次元キーについて集計し、その結果を1次集計値として出力する1次集計手段と、
前記1次集計値の出力を待たずに、前記明細データを前記第2の次元キーについて集計し、その結果を中間集計値として出力する中間集計手段と、
前記中間集計値を前記第1の次元キーについて集計し、その結果を前記2次集計値として出力する2次集計手段とを備えたものである。
【0007】
また、この発明に係る多次元データ集計装置は、レコードの明細データを複数の次元キーについて重畳的に集計する多次元データ集計装置であって、
前記M個(Mは2以上の自然数)の次元キーからなる順列を算出する次元キー順列算出手段と、
N個(Nは2以上の自然数)の集計手段と、
前記次元キー順列算出手段が算出した前記順列の次元キーに従って、前記レコードの明細データを重畳的に集計する順列別多次元集計処理を前記N個の集計手段に分配して並列に処理させて、そのうち最初に終了した前記順列別多次元集計処理の結果を取得する制御手段と、
前記制御手段が取得した順列別多次元集計処理を出力する集計結果出力手段とを備えるものである。
【0008】
【発明の実施の形態】
次に、この発明の一の実施の形態について説明する。
実施の形態.
図1は、この発明の実施の形態に係る多次元データ集計装置とこの多次元データ集計装置が用いられるシステム全体の構成を示したブロック図である。図において、基幹系業務システム1は、例えば企業の日常業務(入金処理や在庫管理など)を行うための情報処理システムであって、企業の各部署に配置された入出力端末を介して入力されたデータを受け付け、必要に応じて伝票などのデータ出力を行うものであり、一台又は複数台からなる比較的処理性能の高いコンピュータ(サーバコンピュータ又はホストコンピュータ)と、それらを制御するコンピュータソフトウェアから構成されている。なお、基幹系業務システム1が複数台のコンピュータから構成される場合はネットワークで相互のコンピュータが接続されているものとする。
【0009】
RDB2は、基幹系業務システム1からのトランザクション処理要求に応じて、データの入出力及びその管理を行うリレーショナルデータベースシステムである。RDB2は、複数の入出力端末からランダムに入力されるデータ間の整合性を維持し、かつ十分なレスポンス性能を得るために、データを複数の表に分割して管理しており、必要に応じて、複数の表のデータを結合して単一のデータセットを生成する機能を有している。これらの表はデータ項目間の論理関係に基づいて予め構成されているものである。
【0010】
ETLツール3は、RDB2が複数の表に分割して保持しているデータを抽出して、単一の表に変換するためのデータ変換システムである。ここで、ETLとは、Extraction、Transformation and Loadingの略語である。ETLツールは、RDB2を構成するリレーショナルデータベースシステム自身が機能を提供していることもあるし、RDB2とは別体で構成されたコンピュータソフトウェアとして実現される場合もある。
【0011】
単純表DB4は、磁気ディスク装置に記憶されるファイルであって、ETLツール3によって生成されるものである。ETLツール3は、RDB2において複数の表に分けて保持されているデータのレコードを結合して新たなデータセットを生成し、単純表DB4中のレコードとして出力する。
【0012】
多次元データ集計装置5は、単純表DB4に記憶されているデータを多次元集計するための装置であって、主として分析業務に用いられるものである。分析業務では、日常業務の傾向や状況を把握するために、日常業務で発生し、蓄積されているデータを多角的に集計することが要求される。基幹系業務システム1とRDB2との組み合わせにおいては、データの更新の方法や検索の方法などが日常業務の内容に基づいて決まっているため、所定のコンピュータプログラムを用いて自動化することが容易である。したがって、そこで発生する集計処理も定型的な処理が多い。一方、多次元データ集計装置は分析業務用途に用いられるので、さまざまな条件で動的にこれらのデータの集計を行う必要があり、また集計を行う条件を事前に限定することができないことが多い。
【0013】
このため、基幹系業務システム1とRDB2の組み合わせではテーブルを複数に分割して、特定の追加処理や更新処理における応答性能の向上とデータ間の整合性維持に重点を置いている。これに対して、多次元データ集計装置5と単純表DB4との組み合わせでは、単一の表において同一構造のレコードによってデータを保持することで、データの取り扱いを容易にし、さまざまな条件による集計演算の処理性能をほぼ一様に向上させるような工夫が図られている点で、基幹系業務システム1とRDB2の組み合わせとは異なっている。
【0014】
ここで、「集計」とは明細データを入力値として何らか計算を行い、一の値を求めることをいい、単に明細データの総和を求める演算のみを指すものではないものとする。
【0015】
次に、多次元データ集計装置5の詳細な構成について説明する。図2は、多次元データ集計装置5の詳細な構成を示したブロック図である。図において集計条件入力部11は、利用者が入力する分析条件を取得する部位であって、キーボードなどの入力デバイスと、入力デバイスからの入力信号を解析するコンピュータプログラムから構成されている。ここで分析条件とは、多次元データ集計装置5が単純表DB4のデータを集計するための条件であり、より具体的には、どのようなデータの単位(集計単位)でどの明細データを集計するかを指定するものであり、さらに集計演算の種類(例.明細データの総和を算出する、平均値を算出する等)についても、ここで指定することになる。
【0016】
制御部12は、集計条件入力部11が受け取った分析条件を集計部14−1〜14−Nに送り出すとともに、集計部14−1〜14−Nの動作スケジュールを制御し、さらに集計部14−i(iは1〜Nのいずれかの値)の出力結果を集計部14−i以外の集計部に転送したり、集計部14−1〜14−Nによる集計結果を集計結果出力部13に出力したりする部位である。
【0017】
集計結果出力部13は、制御部12によって集積された集計部14−1〜14−Nによる集計結果を利用者が所望する形式に編集して表示する部位である。ここでは例えば、集計単位ごとに集計値をグラフ化して表示してもよいし、プリンタが利用できる場合には、プリンタを用いて集計結果を帳票出力してもよい。
【0018】
集計部14−1〜14−Nは、それぞれが単純表DB4に記憶されているデータを取得して、集計処理を行う部位である。集計部14−1〜14−Nは対称であること(各集計部が同じ機能を有しており、相互に置換可能であること)が望ましいが、必須ではない。集計部14−1〜14−Nが非対称である場合には、制御部12は集計部14−1〜14−Nの非対称性を考慮した動作制御を行うようにする。
【0019】
なお、集計部14−1〜14−Nのうち、いずれか一の集計部が1次集計手段に対応するものであり、この集計部を除く集計部のうち、いずれか一の集計部が2次集計手段に対応する。さらに1次集計手段と2次集計手段に対応する集計部を除く集計部のうち、いずれか一の集計部が中間集計手段に対応する。また制御部12は制御手段に対応するものである。
【0020】
次に多次元データ集計装置5の動作について図を用いて説明する。初めに(1)多次元データ集計装置5の目的である多次元データ集計の概略について説明し、次に(2)多次元データ集計装置5の動作原理について説明する。そして最後に(3)多次元データ集計装置5の動作の詳細を説明することとする。
【0021】
(1)多次元データ集計の概略
図3は、ETLツール3によってRDB2から抽出され、単純表DB4によって記憶されている明細データの内容の例である。図に示すように、明細データは属性(行要素又はレコード項目)として、「売上年月日」、「製品」、「支部」、「売上」からなる単一構造のレコードの集合として構成されている。ここで、「売上」が集計対象となる明細データの項目であるとすると、集計の方法としては、属性「売上年月日」を基準に集計する方法、属性「製品」を基準に集計する方法、属性「支部」を基準に集計する方法が考えられる。
【0022】
さらに、「売上年月日」は日ごとの集計だけではなく、例えば一週間ごと、月ごと、四半期ごと、半期ごと、などの単位(集計単位)を基準とした集計方法が考えられる。このような集計単位はカテゴリの一例である。このようなカテゴリは、属性値(レコードの属性の値)の性質上「売上年月日」のような連続的な値をとる属性だけでなく、離散的な値をとる属性においても観念される。例えば、属性「製品」であれば、「テレビ」、「ビデオ」を「AV機器」というカテゴリに分類することができるし、「洗濯機」、「冷蔵庫」を「家電」というカテゴリに分類することができる。また属性「支部」であれば、「片瀬」、「鵠沼」を「藤沢」というカテゴリに分類することもできるし、「大船」、「町屋」を「鎌倉」というカテゴリに分類することもできる。
【0023】
多次元データ集計装置5が目的とする多次元集計とは、例えば、図3に示した「売上」明細データを、一旦「AV機器」、「家電」の別に集計し(1次集計)、次に、1次集計された結果をさらに「藤沢」、「鎌倉」で集計する(2次集計)。ついで、2次集計の結果を1月、2月、…、12月などの月別に集計する(3次集計)というように、複数の基準に基づいて、重畳的あるいは多段的に集計していく処理をいう。複数の段階による集計処理からなる多次元集計処理の各段階の集計処理において、集計の基準として用いられる条件を「次元キー」という。
【0024】
図4は、このような多段的な集計処理の様子を模式的に示した概念図である。図において、破線による矩形51で囲まれた値はETLツール3によって抽出された明細データである(以下、「明細データ51」という)。ここで、明細データ51は、すべての次元キーからなる1つのキーで集計して得られる集計値であってもよい。また矩形52で囲まれた値は明細データから1次集計された集計値である(以下、「1次集計値52」という)。また破線による矩形53で囲まれた値は2次集計された集計値である(以下、「2次集計値53」という)。そうすると、1次集計値52は次元キー「製品」について集計した集計値であって、2次集計値53は、次元キー「支部」について集計した集計値である。
【0025】
次に「カテゴリの階層」という概念を導入する。各属性の値に基づいてレコードを分類する方法は一通りには限られない。例えば「売上年月日」であれば、前述の通り週、月、四半期、半期、年、のような複数通りの分類方法が可能である。また「製品」であれば、「AV機器」、「家電」のような分類だけではない。例えば、電器製品以外の商品も扱う店舗の売り上げ管理をする場合には、衣料品、食品などのカテゴリも観念できる。そして「AV機器」、「家電」は「電器製品」というカテゴリで括られるので、「AV機器」、「家電」という下位のカテゴリに対して、「電器製品」というカテゴリは上位のカテゴリに位置すると考えることができる。また「衣料品」や「食品」というカテゴリと「電器製品」というカテゴリは並列(同一の階層レベルにある)の関係にあると考えることができる。さらに「衣料品」や「食品」、「電器製品」は「量販品」という同一のカテゴリに属するもの、と考えることができる。週、月、四半期、半期、年も同様で、「週」というカテゴリは、「月」というカテゴリの下位カテゴリと考えることができるし、「月」というカテゴリは、「四半期」というカテゴリの下位カテゴリであると考えられる。図5に、製品や売上年月日に対するカテゴリの関係を示す樹形図を示す。
【0026】
データを集計するという観点から、これら上位・下位の関係にあるカテゴリの性質を検討すると、次のようになる。すなわち、より下位のカテゴリに基づいて行った集計値からは詳細な分析結果が得られるが、近視眼的な分析になりやすい、という傾向がある。一方、上位のカテゴリに基づいて集計を行えば、大きな傾向を把握できることになるが、細かな動向や要因を見逃しやすくなる。したがって、データを分析する上では、集計値を求めるカテゴリの粒度(上位のカテゴリであれば粒度が大きく、下位のカテゴリであれば粒度が小さい)を柔軟に選択できることが望ましい。データ集計処理の実現方式から見ると、上位のカテゴリの集計は、下位のカテゴリの集計値を基礎に行われる。したがって、下位のカテゴリの集計値を基礎にして行う上位カテゴリの集計演算は、図4に示した「製品」、「支部」、「月」といった異なる属性に基づく多元的集計演算と同じように多元的であるといえる。そこで、多次元データ集計装置5では、このように同一の属性において異なる粒度で集計演算を繰り返す集計処理(同一の属性の異なる階層レベルのカテゴリにおいて集計値を算出すること)をも、多次元集計処理として扱うこととする。
【0027】
カテゴリやカテゴリの階層は集計処理を実行する以前に利用者、あるいは基幹系業務システム1及びRDB2の設計・開発と合わせて定義されているものとし、その後、例えば図示せぬ磁気ディスク装置上に記憶されたファイルとして、多次元データ集計装置5から参照可能なように構成されているものとする。以降の説明において、このファイルを「カテゴリ定義ファイル」と呼ぶことととする。このカテゴリ定義ファイルでは、図5に示したカテゴリ間の階層関係の他に、各カテゴリと属性値との対応関係についても定義がなされる。
【0028】
なお、カテゴリに分類することは必須ではない。例えば、ある属性全体が単一のカテゴリを構成すると考えれば、カテゴリ分類をする必要がなくなる。この場合には、その属性全体で一つの集計値を求めることになる。以上が、多次元データ集計装置5における多次元データ集計の概略についての説明である。
【0029】
(2)多次元データ集計装置5の動作原理
次に、再び図4を用いて、多次元データ集計装置5の動作原理について説明する。従来の技術においては、2次集計値53は、1次集計値52をさらに属性「支部」に基づいて集計するものであるから、1次集計値52の算出が完了していないと、2次集計値53の算出を開始することができなかった。
【0030】
ところで、図4の2次集計値53は、破線による矩形54で囲まれたデータからも算出できる。この矩形54で囲まれたデータとは、明細データ51を属性「支部」によって集計したデータである。以後の説明において、このようなデータを中間集計値と呼ぶこととし、図4の矩形54で囲まれたデータを中間集計値54とする。
【0031】
中間集計値54は、明細データ51から直接算出することができる。したがって、1次集計値52には依存しないデータである。したがって、1次集計値52が算出されていなくても、中間集計値54を算出することができる。中間集計値54が算出できるのであれば、2次集計値53は1次集計値52が算出されていなくても、算出できることになる。
【0032】
このような中間集計値54を算出することによって、2次集計値53の1次集計値52に対する依存性を排除し、その結果1次集計値52と中間集計値54、及び2次集計値53のそれぞれを並列演算せしめることで、多次元データ集計処理の高速化を図ることができる。
【0033】
上記の原理は、1次集計値52の算出完了前に、2次集計値53の算出処理を実質的に開始することで、各次元における集計処理の待機時間を少なくし、高速化を図るというものである。そのため、1次集計値の算出に時間を要する場合、例えば1次集計値の集計を行っている集計部の処理が割り込み処理などによって遅延しても、そのような影響を排除して高速に2次集計値を算出することができる。
【0034】
また、さらに1次集計値52と中間集計値54を並列に集計処理し、いずれか先に算出が完了した方を用いて2次集計値53を算出するようにしてもよい。このようにすることで、中間集計値54の算出処理が遅延した場合であっても、1次集計値52の結果を用いて2次集計値53を算出することができる。
【0035】
以上のような動作原理は、2次元集計処理のみならず、M次元集計処理(M回の集計演算を繰り返す処理、ただしMは2以上の自然数)にも適用できる。例えば次元キーAと次元キーB、次元キーCによって集計される3次元集計処理を考えてみる。このとき明細データを次元キーAについて集計した集計値を「明細データ→A」のように表し、「明細データ→A」を次元キーBについて集計した集計値を「明細データ→A→B」のように表すと、「明細データ→A→B」と「明細データ→B→A」は、図4の1次集計値52、2次集計値53、中間集計値54の関係から明らかなように、同じ集計値である。
【0036】
そうすると、3次元集計処理による集計値「明細データ→A→B→C」は「明細データ→B→A→C」や「明細データ→A→C→B」、「明細データ→C→A→B」などと同じ集計値である。そこで、集計値「明細データ→A」が算出されていなくても、「明細データ→B」や「明細データ→C」を求めることができ、また集計値「明細データ→A→B」が算出されていなくても、「明細データ→B→A」や「明細データ→C→B」その他の集計値を算出して、最終的に「明細データ→A→B→C」と同じ集計値を算出することができる。以上が、多次元データ集計装置5の動作原理である。
【0037】
(3)多次元データ集計装置5の動作
次に、多次元データ集計装置5の動作の詳細について説明する。図6は、多次元データ集計装置5の動作を示したフローチャートである。まず集計条件入力部11、は分析条件を取得する(ステップS101)。分析条件は、例えばプログラムの起動パラメータなどの形式で、利用者から指定される。分析条件中には、M次元の集計処理におけるMの指定(次元数の指定)、各次元における次元キーの指定などが含まれる。次元キーとしては(2)多次元データ集計装置5の動作原理の項で説明したように、カテゴリや属性を指定する。
【0038】
次に制御部12は、集計条件入力部11によって入力された分析条件から、次元キーを分離する(ステップS102)。そして、次元キーがカテゴリの場合には、予め定義されたカテゴリ定義ファイルを参照して、カテゴリの階層関係、及び属性値とカテゴリとの対応関係が解決される。
【0039】
続いて制御部12は、現在の集計処理の次数を検定する(ステップS103)。この処理は、多次元データ集計装置5が複数の次元キーによって逐次集計処理を繰り返していくので、その繰り返し回数を制御するために設けられている。ここでは、集計処理が所定の次元数に到達した場合には、ステップS106に進む(ステップS103:YES)。その次元数に到達するまではステップS104に進む(ステップS103:NO)。以後の説明において、ステップS106に進む場合について後述することとし、所望の次元数に到達していない場合、すなわちステップS104に進む場合について、次に説明する。
【0040】
ステップS104において、制御部12は集計部14−1〜14−Nに対して、集計処理を分配する。ここでは例として、4次元集計処理の次元キーとして、次元キー1、次元キー2、次元キー3、次元キー4がステップS101で取得されたものとする。そうすると、「(2)多次元データ集計装置5の動作原理」の項で述べたように、この集計処理で得られる集計値を得るには、複数の集計処理経路が考えられる。たとえば、当初(0次元目)は次元キー1、次元キー2、次元キー3、次元キー4のどれで集計してもよい。したがって、明細データを次元キー1、次元キー2、次元キー3、次元キー4について集計する処理を、集計部14−1〜14−Nのうちの4つの集計部に分配する。そして集計部14−1〜14−Nのうち、集計処理を分配された4つの集計部は並列処理によって、それぞれの集計処理を行う(ステップS105−1〜N)。
【0041】
1次元目以降の場合は、次のようになる。いま、明細データを次元キー1で集計した集計値を集計値(次元キー1)、次元キー1→次元キー2の順番で集計した集計値を「集計値(次元キー1,次元キー2)」のように表すことにする。そうすると、1次元目の場合は、集計値(次元キー1)、集計値(次元キー2)、集計値(次元キー3)、集計値(次元キー4)が得られている。これらについて、0次元目で用いた次元キーを除く残り3つの次元キーから一つ選択して、4種類の集計値をその次元キーについて再び集計する。この場合、例えば集計値(次元キー1)について、次元キー2、次元キー3、次元キー4による集計処理が依存関係のない集計処理となるから、この3つの集計処理を集計部14−1〜14−Nに対して分配する(ステップS104)。そして集計部14−1〜14−Nのうち、集計処理を分配された3つの集計部は並列処理によって、それぞれの集計処理を行う(ステップS105−1〜N)。その結果、集計値(次元キー1,次元キー2)、集計値(次元キー1,次元キー3)、集計値(次元キー1,次元キー4)の3種類が得られる。
【0042】
同様にして、集計値(次元キー2)、集計値(次元キー3)、集計値(次元キー4)のそれぞれの集計値について、次の次元キーによる3個ずつの集計処理を集計部14−1〜14−Nに分配する(ステップS104)。ただし、集計値(次元キー1,次元キー2)と集計値(次元キー2,次元キー1)は同じ集計値であるから、メモリの使用効率を高めるために他の経路で集計されている集計処理を分配しないようにしてもよい。このように、他の経路で集計されている集計処理を排除するように集計処理を分配するのであれば、M次元集計処理(最終的な集計処理の次元数がM)におけるi次元目での集計処理の個数はMCiで与えられる。しかしこのことは必須ではない。例えば、集計部14−1〜14−Nの個数に余裕がある場合は、集計値(次元キー1,次元キー2)と集計値(次元キー2,次元キー1)とを同時に集計させ、いずれか先に集計値が算出された方を、次の次元の集計処理に用いるようにすることで、より高速な集計処理を行うことができる。このような冗長性を有する分配方法を採用する場合には、M次元集計処理(最終的な集計処理の次元数がM)におけるi次元目での集計処理の個数はMPiで与えられる。
【0043】
なお、上記においてN≧4(M=4)となる場合は、次元キー1、次元キー2、次元キー3、次元キー4による集計処理をすべて分配しきることができる。よって集計処理のスケジューリングを特に工夫する必要がない。
【0044】
ところが、N<4の場合は、次元キー1、次元キー2、次元キー3、次元キー4による集計処理を同時に分配することができない。したがって、このような場合には、集計処理のスケジューリングを行う必要がある。このような場合には、M個のタスクをN個のCPUに分配する公知のスケジューリング方法を用いて、タスクスケジューリングを行う。例えば、個々の集計処理を待ち行列として管理し、各集計部の処理が完了するたびに、順に待ち行列から集計処理を取得して分配していくようにしてもよい。こうすることで、N個の集計部の計算機資源を効率的に活用することができる。
【0045】
なお、集計値(次元キー1,次元キー2)の集計は、集計値(次元キー1)か集計値(次元キー2)のいずれかが集計されていることが前提となる。一方、待ち行列はFIFO(First In First Out)という性質を有している。そこで、集計値(次元キー1)や集計値(次元キー2)を集計する処理を、集計値(次元キー1,次元キー2)を集計する処理より先に待ち行列に入れておけば、あとは単純に待ち行列の先頭から集計処理を取り出すだけで、集計処理間の順序制御が実現されるので、集計値算出の順序の制御が容易になる。
【0046】
また、多次元データ集計装置5における集計処理には冗長性がある点に着目してこの問題を解決してもよい。つまり、多次元データ集計装置5における集計処理では、他の集計演算経路によっても、同じ集計結果が得られるという性質がある。したがって、一部の集計演算経路の演算を中止しても、最終的な結果には変わりがない。そこで、使用可能な集計部の個数にあわせて、一部の次元キーによる集計処理を中止するのである。こうすることで、分配する集計処理の個数が削減されるので、各集計部の負荷が減少する。その結果、処理性能の維持を図ることができる。もともと多次元データ集計装置5は、多次元データ集計処理を並列演算によって高速化するものであった。しかし、必要以上に多重度を大きくしてしまうと、集計部の負荷が超過することとなって、性能劣化を招く。使用可能な集計部の個数に合わせて、集計処理を間引くようにすることで、このような問題を回避し、最適なスケジューリングを行うことができる。
【0047】
加えて、使用可能な集計部の個数は、各集計処理の進行状況に応じて刻々と変化していく。そこで、各時刻における使用可能な集計部の個数に応じて、動的に集計処理の間引きを行うようにしてもよい。
【0048】
なお、説明の都合上、上記においては、各次元における集計処理を逐次実行するように説明した。つまり、図6のフローチャート上は、i次元目の集計処理がすべて完了するまでは、(i+1)の集計処理が始まらないようになっているが、実際には、集計処理の経路に沿って、非同期に集計処理を実施することも可能である。例えば
集計値(次元キー1,次元キー2,次元キー3,次元キー4)
集計値(次元キー1,次元キー2,次元キー4,次元キー3)
集計値(次元キー1,次元キー3,次元キー4,次元キー2)
集計値(次元キー1,次元キー3,次元キー2,次元キー4)
集計値(次元キー1,次元キー4,次元キー3,次元キー2)
集計値(次元キー1,次元キー4,次元キー2,次元キー3)
…
集計値(次元キー2,次元キー3,次元キー4,次元キー1)
…
集計値(次元キー3,次元キー4,次元キー1,次元キー2)
…
集計値(次元キー4,次元キー3,次元キー1,次元キー2)
…
のように、最初に次元キーの順列を生成することによってすべての経路を算出しておき、それぞれの集計演算を各集計部に分配して処理をスケジューリングし、逐次、それぞれの集計経路間について非同期で実行していくようにしてもよい。各集計経路の集計演算を非同期化することで、さらに計算機資源を有効に使用し、オーバーヘッドの少ない集計処理を行うことができる。
【0049】
なお、この次元キーの順列を生成する処理は制御部12が行うようにしてもよいし、次元キーの順列を生成するための専用の部位を新たに設けるようにしてもよい。この次元キーの順列を生成するための機能を有する部位は次元キー順列算出手段に相当するものである。
【0050】
また、次元キー順列の算出に代えて、次元キーの組み合わせを算出するようにしてもよいことはいうまでもない。また次元キーの順列、あるいは組み合わせを算出した後、各集計経路の集計処理を、各順列あるいは組み合わせの中の個々の集計処理(部分集計処理)に分割して、前述した集計処理の分配のスケジューリングと同様の手法により、部分集計処理を分配するようにしてもよい。
【0051】
次にこれらの集計処理を各次元キーに対して繰り返し、集計処理が所望の次数に到達した場合に、ステップS106に進む(ステップS103:YES)。ステップS106において、集計結果出力部13は集計結果を所望の形式に編集して、図示せぬディスプレイ装置またはプリンタ装置などに出力する。また再度の集計処理要求に備えて、集計結果を磁気ディスク装置などに記憶させる。
【0052】
以上から明らかなように、多次元データ集計装置5によれば、次元キーに関する依存性を排除して、複数の次元キーについての集計処理を並列処理するようにしたので、高速に多次元集計処理を行うことができるのである。
【0053】
なお、上述の集計条件入力部11、制御部12、集計結果出力部13、集計部14−1〜14−N、あるいは次元キー順列算出手段に相当する機能をコンピュータに実行させるコンピュータプログラムを実現することができることはいうまでもない。この場合において、集計部14−1〜14−Nは1次集計手順と2次集計手順、中間集計手順に相当し、制御部12は制御手順、次元キー順列算出手段は次元基準列算出手順に相当する。
【0054】
【発明の効果】
この発明の多次元多次元データ集計装置によれば、複数の次元キーによって多段的に明細データを集計する処理において、次元キーごとに集計処理を細分化し、さらに各集計処理の相互依存性を排して並列処理するようにしたので、ある次元キーについての集計処理が完了する前に他の次元キーによる集計処理を開始できる。これによって計算機資源を有効活用して高速な多次元データ集計処理を実現することができるという効果を奏するものである。
【図面の簡単な説明】
【図1】この発明の実施の形態に係る多次元データ集計装置とこの多次元データ集計装置が用いられるシステム全体の構成を示したブロック図である。
【図2】この発明の実施の形態に係る多次元データ集計装置の詳細な構成を示したブロック図である。
【図3】この発明の実施の形態に係る明細データの例を示す図である。
【図4】この発明の実施の形態による多次元集計処理の概念図である。
【図5】この発明の実施の形態に係る多次元データ集計装置におけるカテゴリ間の関係を示す樹形図である。
【図6】この発明の実施の形態に係る多次元データ集計装置の動作を示すフローチャートである。
【符号の説明】
1 基幹系業務システム
2 RDB
3 ETLツール
4 単純表DB
5 多次元データ集計装置
11 集計条件入力部
12 制御部
13 集計結果出力部
14−1〜14−N 集計部。
Claims (10)
- レコードの明細データを複数の次元キーに従って重畳的に集計する多次元データ集計装置において、
前記明細データを前記第1の次元キーに従って集計し、その結果を1次集計値として出力する1次集計手段と、
前記1次集計値の出力を待たずに、前記明細データを第2の次元キーについて集計し、その結果を中間集計値として出力する中間集計手段と、
前記中間集計値を前記第1の次元キーについて集計し、その結果を前記2次集計値として出力する2次集計手段とを備えたことを特徴とする多次元データ集計装置。 - 前記1次集計手段は、所定の条件によって前記レコードを分類する第1のカテゴリを前記第1の次元キーとして、前記1次集計値を集計し、
前記中間集計手段は、前記所定の条件とは異なる条件によって前記レコードを分類する第2のカテゴリを前記第2の次元キーとして、前記中間集計値を集計することを特徴とする請求項1に記載の多次元データ集計装置。 - 前記中間集計手段は、前記第1のカテゴリの上位概念である前記第2のカテゴリについて、前記中間集計値を集計することを特徴とする請求項2に記載の多次元データ集計装置。
- 前記1次集計手段は、前記レコードの第1の属性を前記第1の次元キーとして、前記1次集計値を集計し、
前記中間集計手段は、前記第1の属性とは異なる第2の属性を前記第2の次元キーとして、前記2次集計値を集計することを特徴とする請求項1に記載の多次元データ集計装置。 - 前記2次集計手段は、前記1次集計値と前記中間集計値とのいずれか先に出力された方から前記2次集計値を算出することを特徴とする請求項1乃至4のいずれか一に記載の多次元データ集計装置。
- 前記第1及び第2の次元キーの一方又は双方が複数存在する場合に、前記1次集計手段及び前記2次集計手段、並びに前記中間集計手段をスケジューリングして前記第1及び第2の次元キーのそれぞれについての前記1次集計値又は前記2次集計値並びに前記中間集計値を算出させる制御手段をさらに備えたことを特徴とする請求項1乃至5のいずれか一に記載の多次元データ集計装置。
- レコードの明細データをM個(Mは2以上の自然数)の次元キーについて重畳的に集計する多次元データ集計装置において、
前記M個の次元キーからなる順列を算出する次元キー順列算出手段と、
N個(Nは2以上の自然数)の集計手段と、
前記次元キー順列算出手段が算出した前記順列の次元キーに従って、前記レコードの明細データを重畳的に集計する順列別多次元集計処理を前記N個の集計手段に分配して並列に処理させて、そのうち最初に終了した前記順列別多次元集計処理の結果を取得する制御手段と、
前記制御手段が取得した順列別多次元集計処理を出力する集計結果出力手段とを備えることを特徴とする多次元データ集計装置。 - 前記次元キー順列算出手段は、前記M個の次元キーからなる組み合わせを算出し、
前記制御手段は、前記M個の次元キーからなる組み合わせの次元キーに従って、前記レコードの明細データを重畳的に集計する順列別多次元集計処理を前記N個の集計手段に分配することを特徴とする請求項7に記載の多次元データ集計装置。 - 前記制御手段は、前記順列別多次元集計処理を前記順列又は組み合わせの次元キー単位に部分集計処理に分割するとともに、前記部分集計処理を前記N個の集計手段に分配することを特徴とする請求項7又は8のいずれかに記載の多次元データ集計装置。
- レコードの明細データを複数の次元キーについて重畳的に集計する多次元データ集計プログラムにおいて、
前記明細データを前記第1の次元キーについて集計し、その結果を1次集計値として出力する1次集計手順と、
前記1次集計値の出力を待たずに、前記明細データを前記第2の次元キーについて集計し、その結果を中間集計値として出力する中間集計手順と、
前記中間集計値を前記第1の次元キーについて集計し、その結果を前記2次集計値として出力する2次集計手順とをコンピュータに逐次実行させることを特徴とする多次元データ集計プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003191765A JP3922221B2 (ja) | 2003-07-04 | 2003-07-04 | 多次元データ集計処理装置及び多次元データ集計処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003191765A JP3922221B2 (ja) | 2003-07-04 | 2003-07-04 | 多次元データ集計処理装置及び多次元データ集計処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005025589A true JP2005025589A (ja) | 2005-01-27 |
JP3922221B2 JP3922221B2 (ja) | 2007-05-30 |
Family
ID=34189232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003191765A Expired - Lifetime JP3922221B2 (ja) | 2003-07-04 | 2003-07-04 | 多次元データ集計処理装置及び多次元データ集計処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3922221B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008078385A1 (ja) * | 2006-12-26 | 2008-07-03 | Fujitsu Limited | 明細データ蓄積装置、明細データ蓄積プログラムおよび明細データ蓄積方法 |
JP2012083536A (ja) * | 2010-10-12 | 2012-04-26 | Fujitsu Ltd | 情報処理装置及び方法 |
JP2013026996A (ja) * | 2011-07-26 | 2013-02-04 | Fujitsu Ltd | 情報処理方法及び装置、並びにコンピュータシステム |
JP2013026995A (ja) * | 2011-07-26 | 2013-02-04 | Fujitsu Ltd | 情報処理方法及び装置、並びにコンピュータシステム |
-
2003
- 2003-07-04 JP JP2003191765A patent/JP3922221B2/ja not_active Expired - Lifetime
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008078385A1 (ja) * | 2006-12-26 | 2008-07-03 | Fujitsu Limited | 明細データ蓄積装置、明細データ蓄積プログラムおよび明細データ蓄積方法 |
JPWO2008078385A1 (ja) * | 2006-12-26 | 2010-04-15 | 富士通株式会社 | 明細データ蓄積装置、明細データ蓄積プログラムおよび明細データ蓄積方法 |
US8775370B2 (en) | 2006-12-26 | 2014-07-08 | Fujitsu Limited | Data storage apparatus and method |
JP2012083536A (ja) * | 2010-10-12 | 2012-04-26 | Fujitsu Ltd | 情報処理装置及び方法 |
JP2013026996A (ja) * | 2011-07-26 | 2013-02-04 | Fujitsu Ltd | 情報処理方法及び装置、並びにコンピュータシステム |
JP2013026995A (ja) * | 2011-07-26 | 2013-02-04 | Fujitsu Ltd | 情報処理方法及び装置、並びにコンピュータシステム |
Also Published As
Publication number | Publication date |
---|---|
JP3922221B2 (ja) | 2007-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gan et al. | Fast utility mining on sequence data | |
Isaacs et al. | Combing the communication hairball: Visualizing parallel execution traces using logical time | |
CN104424339B (zh) | 数据分析的方法、装置及系统 | |
JP5784239B2 (ja) | データ分析方法、データ分析装置及びその処理プログラムを格納した記憶媒体 | |
US9953069B2 (en) | Business intelligence document | |
Brah et al. | Heuristics for scheduling in a flow shop with multiple processors | |
US20080222634A1 (en) | Parallel processing for etl processes | |
JP2008547131A (ja) | 複合演算によるデータ集約 | |
CN105593818A (zh) | 用于调度分布式工作流程任务的装置和方法 | |
US20160004757A1 (en) | Data management method, data management device and storage medium | |
Turk et al. | Temporal workload-aware replicated partitioning for social networks | |
WO2011090519A1 (en) | Accessing large collection object tables in a database | |
Guedes et al. | Anteater: A service-oriented architecture for high-performance data mining | |
Munguía et al. | Parallel PIPS-SBB: multi-level parallelism for stochastic mixed-integer programs | |
CN114386879B (zh) | 一种基于多产品多维度性能指标的评分与排行方法及系统 | |
Dulá | Computations in DEA | |
Wilson et al. | Scheduling non-similar groups on a flow line: multiple group setups | |
JP3922221B2 (ja) | 多次元データ集計処理装置及び多次元データ集計処理プログラム | |
Kia et al. | New scheduling rules for a dynamic flexible flow line problem with sequence-dependent setup times | |
Sun et al. | General process of big data analysis and visualisation | |
JP6398632B2 (ja) | 制御装置、分散データベースシステム、方法およびプログラム | |
CN116257594A (zh) | 一种数据重构方法及系统 | |
JP2007241642A (ja) | 解析方法、解析装置及びコンピュータプログラム | |
Karim et al. | A Data Mining Approach for Prediction Modeling Using Association rule | |
CN112764935A (zh) | 大数据处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060628 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060905 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061101 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061128 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070110 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070212 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 3922221 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100302 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110302 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110302 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120302 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130302 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130302 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140302 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |