JP2001022766A - 多次元データベースの高速処理方法および装置 - Google Patents

多次元データベースの高速処理方法および装置

Info

Publication number
JP2001022766A
JP2001022766A JP11192411A JP19241199A JP2001022766A JP 2001022766 A JP2001022766 A JP 2001022766A JP 11192411 A JP11192411 A JP 11192411A JP 19241199 A JP19241199 A JP 19241199A JP 2001022766 A JP2001022766 A JP 2001022766A
Authority
JP
Japan
Prior art keywords
tree
item
bit
record
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.)
Pending
Application number
JP11192411A
Other languages
English (en)
Inventor
Koji Ito
宏二 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DEGITAL WORKS KK
Original Assignee
DEGITAL WORKS KK
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by DEGITAL WORKS KK filed Critical DEGITAL WORKS KK
Priority to JP11192411A priority Critical patent/JP2001022766A/ja
Publication of JP2001022766A publication Critical patent/JP2001022766A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 膨大なレコードを、任意の次元で自由に高速
クロス集計する。 【解決手段】 レコードはP木の階層構造で格納する。
圧縮に際してビット添字の評価順序をビットストリーム
のLSBからMSBへ向かって処理する。これによりオ
リジナルを圧縮参照用P木構造内に配置し、この圧縮参
照用P木に基づいて、レコードを検索するための圧縮結
果セットキャッシュを生成する。一方、任意次元のクロ
ス集計の条件が与えられたときは、圧縮セットキャッシ
ュ内の階層ノードに含まれる圧縮キーに基づいてクロス
集計用のP木を生成する。このP木内において圧縮キー
のビット添字の評価を行い、オリジナル項目の圧縮参照
用P木に配置されているオリジナル項目を抽出し、数値
を演算する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、多次元データベース、
とくに膨大なキー項目を備えるクロス集計データ管理シ
ステムにおけるデータの高速処理方法と装置に関する。
【0002】
【技術の背景】汎用コンピュータを用いたデータベース
作成とその運営は、近年とくにデータ件数の増大から、
従来公知の基本的な処理方式では対応が難しくなってお
り、より高速な演算処理を可能とする技術が望まれてい
る。
【0003】膨大なデータを取り扱う際の技術的な困難
性は、例えば、取り扱うデータの種類によって処理す
べきアルゴリズムが異なること、多次元処理をするか
否かによって処理方式の基本原理を異にすること、使
用すべきアルゴリズム(原理)はコンピュータの性能に
依存すること、等の点にある。
【0004】に関して云えば、取り扱うデータが文字
列を主とするか、数字を主とするかによって処理技術を
異にする。例えば人事データのように、部署名、氏名、
性別、趣味、家族構成、社内評価内容の詳細など、主と
して文字(ひらがな、漢字、カタカナ)をもってレコー
ド・データを作成し必要に応じて加工する場合と、チェ
ーン店の各店舗における品名ごとの売り上げ台数、売上
金額といった数字データを扱うケースでは、コンピュー
タ内部における処理アルゴリズムを異にすることは当然
である。これはデータベースの基本であり、例えば階層
型、関係型、網型などのデータの基本レコードの格納方
法からしても構築方法を異にする。
【0005】の点に関して云えば、膨大なデータファ
イルのレコードを、どのように取り扱うかの問題であ
る。例えば、データ作成時に数値の加減乗除といった演
算処理を行い、単純なレコード・ファイルとしてメモリ
に格納した後は、随時当該レコード・ファイルを呼び出
して確認する等の処理をするだけで良いならば、その場
合の課題はデータ作成時の処理の高速化に絞られる。一
方、どのような加工をするかを前提とせず、とりあえず
事実(ファクト;主として数字)データだけをレコード
し、この事実ファイルに基づいて後日の多様な加工(射
影/選択/結合等)を施すのであれば、データの処理の
ための原理は自ずから異なり、より高速なキー項目の検
索と数値集計を実現し、任意の項目次元において自由な
集計結果を高速で取得する点に絞られる。その場合に
は、基本となるレコード・ファイルの作成はより単純で
あることが望まれる。
【0006】の点は、従来提案された特許技術と、今
後期待されるデータベース処理との相関に於いて重要な
点である。データ種別がどのような種類であれ、データ
の加工処理速度は、高速の並列型CPUを多数搭載した
り、巨大なメモリを搭載した大型コンピュータを使用す
れば、ほぼ問題なく解決できる。しかしながら、いわゆ
るスーパーコンピュータはきわめて高額であり、一般の
実用レベルではそれを常時使用する環境は期待できな
い。むしろ現在の汎用コンピュータを利用しつつ、膨大
なレコード・ファイルを応答性の高いレベルで加工し、
オペレータの要求に合致する自在な多次元加工結果を得
ることが望まれる。
【0007】
【技術の背景】本発明は、例えば100万件を越える膨
大な事実レコード・ファイルを自在に加工して任意の次
元におけるクロス集計結果を短時間で得ることを目的と
している。この場合、処理データのファイルは、文字を
主とするキー項目(店舗名等)と、数字を主とするキー
項目(ファクト)を扱うことになる。
【0008】つまり、店舗名や商品名といった文字列か
ら構成されるキー項目と、売上台数、金額といった数字
から構成されるキー項目を、自由なスタイルでレコード
・ファイルとして蓄積し、蓄積した膨大なファイルを自
由な次元で加工して集計結果を即時に得る。
【0009】このような技術傾向をもったデータベース
の処理方式は、もちろん、従来においてもいくつかの提
案がある。第一に、クロス集計処理に目的を絞った処理
方式としては、重みコードを使用して処理の高速化を図
る技術がある(特開平8−77266号)。これは、あ
るテーブルのデータの意味を包含する他のテーブルに相
対的に低いレベルの重みコードを付与しておき、検索条
件が与えられたときに重みコードを利用して必要なファ
クトを抽出する。具体的には、集団の中で、誰が、い
つ、なにを食べ、その材料は何であったか、その値段は
いくらであったか、といったデータを集計するときに、
人名、日付、メニュー、その金額、材料、その金額、と
いった具合に、データの意味を階層化し、それらを事実
データとして格納しておき、必要に応じて適当な階層領
域のデータを重みコードを用いて抽出するものである。
【0010】しかし、この技術はデータの意味に上下の
関連づけを行うため、システム設計者の主観に起因する
勝手な上下関係が発生したり、もともと関連づけの出来
ない項目についての処理が出来なくなる等、汎用システ
ムとして利用しにくい面が残る。
【0011】第二に、クロス集計処理を直接の目的とす
るものではないが、膨大な文字データの中からキーワー
ドを高速検索する技術は、多数存在する。例えば、 特開平11−031096号 インデックスを作成することなくデータを検索する技術 特開平11−003354号 項目の従属関係を作り、従属関係から検索を行う技術 特開平10−143538号 インデックス・キー値をデータの識別子に関連づける方
式 特開平10−003414号 利用頻度の高いキー値を予め定義し格納しておく方式 特開平9−167111号 重複するインデックスのキー値をクラスタリング処理す
る技術 等である。しかしながら、これらの技術は、例えばイン
ターネット上に存在する膨大な文字データから検索キー
を用いて、効率の良い結果を得るには適しているが、階
層化されたデータファイルのすべてを検索するといった
深度検索の能力はないし、オペレータの主観操作による
データ格納がなされている場合は、非常に使い勝手の悪
いシステムとなる。
【0012】これらのデータ処理技術をふまえて、レコ
ード・ファイルを自在に加工しうる従来の公知技術を検
討すると、次のようなものを挙げることが出来る。 特開平5−257774号 これは、検索キー値と圧縮されたIRN(インデックス・
レコード番号)をメモリ上に保有し、検索条件(キー項
目の指定)に基づいて、検索キー値からIRNを抽出し、
圧縮されたIRNを復元するものである。
【0013】特開平9−257239号 これは、T木を用いてインデックスを作成し、T木の階
層構造を利用して検索速度を向上させるものである。
【0014】
【発明が解決しようとする課題】問題は、クロス集計処
理を行う場合の処理時間である。たしかに特開平5−2
57774号の技術によれば、数千件〜1万件程度の比
較的少ない件数のレコード・ファイルを扱う場合には、
圧縮したIRNを用いて任意のキー項目を比較的高速で検
索し、キー項目に対応する数字の加減乗除演算も比較的
高速で処理できる可能性がある。しかしながら、レコー
ド・ファイルが膨大な数になったとき、例えば各チェー
ン店からリアルタイムで刻々と報告される多数の商品の
売り上げデータを長期に渡って継続管理するようなケー
スを考える場合、単にIRNを圧縮するだけでは、処理能
力には限界が生ずる。IRNの圧縮は、主としてファクト
(数字)の圧縮であり、新商品の名称など、膨大に広が
る可能性のある文字データ(キー項目)の部分について
は圧縮処理を施さないからである。
【0015】もちろん、文字データの圧縮は容易である
し、特開平5−257774号の発明においても文字デ
ータを圧縮することも可能であるが、その場合の問題
は、圧縮した文字データを高速で検索し且つ復元する手
段が存在しない点にある。従って、この特開平5−25
7774号の発明では、数千件単位の少ないレコードを
管理するにとどまり、例えば100万件を越えるような
膨大な数のレコードを自由な視点で自由に高速処理する
パワーをもたない。
【0016】一方、T木を用いる特開平9−25723
9号の発明は、高い確率での文字列の高速検索には適す
るといえる。しかしクロス集計ではレコード・ファイル
に含まれる数字ファクトを高速で演算処理する必要があ
るところ、T木利用の場合、項目の検索に際してキー値
の比較検索を多数回繰り返す必要があるため、項目検索
と同時並列的に数値演算を並列処理できない以上、最終
結果を得るまでの時間が相乗的に増大し、実用に耐えな
いものとなる。項目検索における比較遅延が、数値演算
の処理時間を圧迫し、実用面で云えばスムースな次元処
理の呈示が困難になるわけである。
【0017】そこで本発明の目的は、多数のキー項目
(文字、ファクト(数値))から構成される膨大な数の
レコード・ファイルを、任意の次元でクロス集計するに
際し、キー項目の検索と数値集計の双方を、最短時間で
処理する技術を提供する点にある。これを実現するに
は、キー項目の検索に要するキー値の比較回数の低減
と、自由な加工条件下における数値演算の高速を両立さ
せる必要がある。
【0018】
【課題を解決するための手段】前記目的を達成するた
め、本発明に係る多次元データベースの高速処理方法
は、文字データおよび/または数値データから構成され
るレコードファイルを多数備え、当該レコードファイル
に基づき、任意のキー項目を指定してクロス集計処理を
行う多次元データベースの処理方法を技術的前提とし
て、前記レコードファイルは、P木(好ましくは平衡型
P木)の階層構造に基づいて格納処理するものであっ
て、オリジナルの項目キーをP木のビット添字評価手法
に基づいて各項目のノード毎に圧縮格納するとともに、
圧縮処理時におけるビット添字の評価順序をビットスト
リームのLSBからMSBへ向かって処理することによ
って任意データ長のオリジナル項目を、オリジナル項目
の圧縮参照用P木構造内に配置するとともに、このオリ
ジナル項目の圧縮参照用P木に基づいて、レコードファ
イルを検索するための圧縮結果セットキャッシュを生成
する一方、キー項目の指定による任意次元のクロス集計
の条件が与えられたときは、前記圧縮セットキャッシュ
内の階層ノードに含まれる圧縮キーに基づいてクロス集
計用のP木(好ましくは階層型P木)を生成するととも
に、このP木内において圧縮キーのビット添字の評価を
行うことにより、オリジナル項目から数値を演算処理す
る。
【0019】また前記目的を達成するため、本発明に係
る多次元データベースの高速処装置は、文字データおよ
び/または数値データから構成されるレコードファイル
を多数備えるレコードメモリと、当該レコードメモリに
格納された複数のレコードファイルに基づき、任意のキ
ー項目を指定してクロス集計処理を行う多次元データベ
ースの処理装置を技術的前提として、レコードファイル
をP木(好ましくは平衡型P木)のデータ構造として処
理する第一のP木処理手段と、クロス集計の実行時にP
木(好ましくは階層型P木)を生成する第二のP木処理
手段を備え、第一のP木処理手段は、レコードファイル
に含まれる項目データをP木のビット添字評価アルゴリ
ズムに基づいて圧縮処理するキー項目圧縮手段を備え、
このキー項目圧縮手段は、レコードファイルのビットス
トリームをLSBからMSBへ向かって処理する無限ビ
ット評価手段を備えてなり、当該第一のP木処理手段に
おいて生成された最終的なP木は、保存手段を介して所
定のメモリ領域に永続格納する一方、第二のP木処理手
段は、クロス集計用に新たにP木を生成するP木生成手
段と、当該P木に基づいて、オリジナル項目を復元する
オリジナル項目復元手段を備え、オリジナルファクトに
基づいて実行時演算を行う。
【0020】
【作用】本発明は、P木構造(パトリシア・ツリー)を
用いた項目検索の高速化と、いわゆるROLAP方式に
よる実行時演算方式を基本原理とするデータベース処理
システムである。各技術は論文等を介して公知である。
【0021】しかしながら、これらの手法を組み合わせ
たデータベースの処理方式は、従来、まったく知られて
いない。またP木に関するアルゴリズムは、分岐させた
ツリーのノード各層におけるキーの比較回数が従来の検
索アルゴリズム(例えばB木)に較べて圧倒的に少な
く、検索処理時間を短縮できるという有利性は知られて
いるものの、P木処理に用いられるビット添字の定義と
評価法は、膨大なデータ項目を高速で処理するクロス集
計データベースにはとうてい使用できない限界を内在さ
せている。
【0022】処理限界が生ずる原因のひとつは、わが国
の文字の特殊性である。文字の種類が、漢字、ひらが
な、カタカナを混在使用するため、アルファベット26
文字を用いて文字データを処理できる欧米のデータ処理
アルゴリズムとは異なる特殊な設計思想を要するからで
ある。
【0023】本発明が各種の任意レコードデータを格納
するための構造としてP木構造を使用するのも、文字デ
ータおよび数値を効率的に圧縮して格納−検索−再現処
理するためである。尚、データベースにおけるキー項目
の検索の効率は、例えばインターネット上のファイル文
字検索のように単に文字列を一定の信頼確率(60〜8
0%)でヒットさせれば良いというものではない。ほぼ
100%の高い信頼性をもって指定項目を抽出し、そこ
に含まれる数値データの演算を高速(例えば5秒以下、
好ましくは3秒以下)で確実に処理する必要がある。
【0024】このためには、レコードファイルの格納段
階からツリー構造を改善し、同時に、検索処理に優れる
よう項目の圧縮方式を改善し、検索しやすい階層処理
(インデックス処理)を施す一方で、指定項目の復元と
演算の高速を実現し、システム全体の応答性を高める必
要がある。
【0025】データベースは、項目の随時追加やソー
ト、項目キーの変更など、ユーザの要求に応じた自由な
使い勝手を保証する必要があり、その上で自由な組み合
わせの演算結果を呈示する必要がある。つまり、基本デ
ータの記録−修正/変更/追加−検索−表示、といった
格段の処理で、高応答性と自由性が要求される。
【0026】処理すべきレコードの数が少ない場合は、
データ記録時に数値演算を行い、その結果をメモリに記
録して、随時それを取り出して使用する等、単純なデー
タベース管理が出来る。従来の提案は、主として処理点
数の少ない、このようなケースのDBシステムであっ
た。しかし例えば多数の店舗で刻々の売り上げ状況を事
実レコードとして報告し、それをリアルタイムで統括管
理しようとなると、各店のレコードを記録格納する際の
数値演算(格納時演算)は意味を持たない。統括管理す
る側でどのような加工を施すかはわからないし、その自
由を制限することは出来ないからである。
【0027】以下、本発明の基本原理を説明する。本発
明の構成上の特徴は、 各レコードファイルを例えば平衡型のP木構造で納
める。これは原則として永続保存しておく。 ツリーを構成する各ノードに項目の圧縮キーとオリ
ジナルキーを配し、オリジナルのキー項目を、圧縮キー
値を添字として復元するポインタを配列する。 圧縮キーを作る際のビット添字の評価法は、LSB
からMSBに向かう。 数値の処理は、実行時演算方式をとる。 クロス集計時には高速演算を実現するため別途のP
木(例えば階層型P木)を生成する。 クロス集計時に生成するP木においても階層ノード
のビット添字評価を行 うが、無限ビット長の処
理を可能とするため、ビット添字の評価法は、
LSBからMSBに向かう。
【0028】これらの機能は、次の通りである。 各レコードファイルをP木構造で納める点 これは多数の項目キー(文字、数字いずれでも良い)
を、より少ないビット数に圧縮することを主目的とし、
より少ない比較回数で次元キーの検索を行う構造であ
る。かかるP木構造をとることによって、増大する基本
レコードの数に制限されず、クロス集計時に生成するP
木が任意次元の集計を高速で処理することが可能とな
る。尚、このキー項目の圧縮の目的で生成するP木は階
層構造をもたない平衡型P木が望ましい。一方、クロス
集計時に生成するP木は階層型が望ましい。またファイ
ル格納時点で生成させた平衡型P木は永続的に保存し、
検索時の参照に供する。もちろん必要に応じて消去する
自由は残される。
【0029】 ツリーを構成する各ノードに文字デー
タ(および/または数字)の圧縮キーとオリジナルキー
を配し、オリジナルキーを復元するポインタを配する点 平衡型P木構造をつくる際、検索時における各ノード・
レベルでの検索処理回数を省略するため、圧縮キーとオ
リジナルキーを配し、どの階層ノードからもオリジナル
のキー項目を復元できるようにするための構成である。
【0030】 圧縮キーの検索に関するビット添字の
評価法は、LSBからMSBに向かう点。 これは、任意長のデータ(文字、数字を問わない)を圧
縮処理するための技術である。公知のP木構造は、レコ
ードのビット長を一定長として定義し、ビット添字の決
定における評価順序も最大値(MSB)から最小値(L
SB)に向かうことによって検索の高速を図る。
しかし、かかる方式では、 わが国の文字データの
処理は事実上不可能である。また膨大な数字レコー
ドの処理にも時間がかかる。例えば、特殊な文字であ
る漢字は一文字のビ ット長が長くなる上に、それ
が連続して表記されると、最大値を定義され た一
定のビット構造では処理できない不具合が生ずるからで
ある。このため本発明は、項目のビットに制限を設け
ず、ビットの最大値(MSB)から最小値(LSB)に
向かって降順でビット添字を定義し評価する。かかる操
作によって、各項目のデータ長は制限を受けずに自由な
処理加工を受けることが可能となる。
【0031】 数値の処理は、実行時演算とする点。
クロス集計のデータベースにおいては、格納時演算と実
行時演算の二つの考え方がある。また、それぞれに演算
処理の方式が提案されている。本発明では、自由な加工
性を保証するため、実行時演算のROLAP方式をと
る。この方式を採用することは、従来、技術的に難があ
った。データベース処理は、文字検索と数値演算の高速
を要求される。従来のデータベースシステムでは、デー
タ量が増えると文字検索およびファクト(数値)の取得
に時間を要するため、格納時演算方式をとることが多
い。実行時演算方式をとると、最終結果の表示までに要
する時間が間延びして実用に耐える応答性を確保できな
いからである。
【0032】一方、本発明はP木構造による基本レコー
ドの確保と、実行時におけるクロス集計用P木の生成に
よるオリジナル項目の復元演算方式をとるため、項目検
索の比較回数が圧倒的に軽減され、文字検索に要する時
間はほぼ瞬時であり、そこで取得したオリジナルの数値
演算に仮令1〜2秒を要しても、全体のクロス集計結果
を得るまでには例えば最大でも5秒以下、通常3秒以下
の高速を実現できる。
【0033】 クロス集計の実行時にP木を生成する
のは、指定項目の自由性を確保するためである。演算実
行時に指定されるキーの数はせいぜい数十〜数百に限ら
れるため、ここで新たにP木を生成しても検索時間を圧
迫することはない。むしろ、加工の自由性を高めるため
に必要な処理である。当然であるが、この段階で生成す
るP木は、レコードファイルの格納時に生成するP木と
役割を異にするため、永続保存する必要はない。但し、
永続保存することにより次回以降のクロス集計をきわめ
て高速化することが出来る。
【0034】 レコードファイルの保存時におけるビ
ット評価方法と一致させるため、検索時のビット評価も
同じ手法をとる。これによって無限ビット長のデータ列
の保存/検索/復元が可能となる。従来公知のP木処理
では、このような操作は出来ない。ビット長を一定とす
るからである。
【0035】
【実施の態様】図1は、本発明に係る多次元データベー
スの高速処理方法の一例を示すものである。図におい
て、左側の部分は主として基礎データの格納処理を示
し、右側の部分は検索時の処理を示す。まず基礎となる
レコードファイルの処理を説明すると、各レコードファ
イルの項目データを処理するに際し(S1)、まず任意
の形式で一時結果セットキャッシュ(S2)を生成す
る。この一時セットキャッシュ(S2)は、本発明では
後に消去される一時的な基礎データであり、一定のデー
タ形式をもって装置内にキャッシュされる。
【0036】次に、この一時結果セットキャッシュ(S
2)に基づいて、キーを圧縮しながらオリジナル項目の
圧縮参照用P木(S3)を生成する。この時点で、各レ
コードファイルのノードにビット添字を付加するが、こ
の際のビット添字評価は無限ビット長の格納を実現する
ために、ビットの最小値から最大値に向かって昇順評価
する方式をとる。P木生成後、当該P木(S3)と一時
結果セットキャッシュ(S2)に基づき、各レコードフ
ァイルの各項目を圧縮した所定形式の圧縮セットキャッ
シュ(S4)を生成し、他方、一時結果セットキャッシ
ュ(S2)に基づいて、圧縮結果セットキャッシュ(S
4)に含まれる項目の自由な絞り込み操作を可能とする
ためのサブセット抽出レコード番号転置配列データ(S
5)をP木(S3)に生成する。このサブセット抽出レ
コード番号転置配列データ(S5)は、そのままでは簡
単に操作しにくい圧縮キーから構成される圧縮結果セッ
トキャッシュ(S4)の自由度を高めるもので、オリジ
ナルキーを保有する参照用P木(S3)内にこれを作る
ことによって、ユーザが指定する自由な検索条件で項目
を検索復元することを可能とする。
【0037】また、前記一時結果セットキャッシュ(S
2)は、圧縮結果セットキャッシュ(S4)の生成後、
より好ましくはサブセット抽出レコード番号転置配列デ
ータ(S5)の生成後に消去する(S6)。尚、サブセ
ット抽出レコード番号転置配列データ(S5)は本発明
の必須の構成要件ではない。
【0038】一方、クロス集計を実行するときは、与え
られた検索条件(S7)に基づき、圧縮キーの検索とオ
リジナルキーの復元(S8)を行う。この場合、検索装
置が参照するデータは、所定のメモリ領域に永続保存さ
れた圧縮結果セットキャッシュ(S4)と、同じく所定
のメモリ領域に永続保存されたオリジナル項目の圧縮参
照用P木(S3)である。
【0039】本発明では、永続保存されているデータ
(S3、S4、S5)から直接データを読み込むのでは
なく、新たにクロス集計用のP木を生成し、新たなP木
に基づく項目検索と数値演算を行う。
【0040】図2にその具体例を示す。検索条件(S
7)が与えられたとき、本発明に係る処理では、圧縮結
果セットキャッシュ(S4)内のノード毎の圧縮キー
(S11)に基づいて、記録用P木(S3)とは異なる
タイプのP木(階層型P木;S12)を生成する。
【0041】このP木(S12)は、P木階層を作るに
際して、圧縮結果セットキャッシュ(S4)の圧縮キー
をビット添字評価する。後にも述べるように、この場合
のビット添字評価は、レコードファイルの格納処理と同
様、ビットストリームの最小値から最大値に向かう無限
ビット長を許容する手法をとる。
【0042】検索実行時に新たに生成したP木(S1
2)は、オリジナル項目の圧縮参照用P木(S3)から
オリジナルのキー項目(文字(S15)、数値(S1
6))を読み出す。新たに生成されるP木(S12)内
には、圧縮結果セットキャッシュ(S4)に保存されて
いたノード毎のポインタ(S17)が存在するため、こ
れを介してオリジナル項目(S15,S16)を自由に
読み出すことが出来るからである。
【0043】こうしてオリジナル項目(S15,S1
6)を読み出した後は、通常の手法によって文字、数字
を条件に従って配列し、演算結果を呈示する。図1に戻
っていえば、本発明ではオリジナル項目の復元(S8)
と同時に数値演算を開始し、その際の集計方式は例えば
いわゆるROLAP方式(S20)として、オリジナル
キー(文字でも数値でも良い)の復元と同時にその都度
演算処理を施す。これにより自由な次元集計の結果表示
(S21)が可能となる。
【0044】図3は、前記方法を実現するための装置構
成を例示するものである。1はレコード入力部で、これ
は通信回線を介して入力する等適宜の方式をとる。2は
第一のP木処理部で、入力したレコードファイルを平衡
型P木を作りながら圧縮していく。このP木処理部2に
は、P木のアルゴリズムに従ってキー項目を圧縮するキ
ー項目圧縮部3と、ビット添字の評価に際してビットス
トリームの最小値から最大値に向かってビット評価を行
うための無限ビット評価部4を備える。
【0045】このP木処理部で生成された結果(オリジ
ナル項目圧縮参照用P木および圧縮結果セットキャッシ
ュ)は、保存部5を介して所定のメモリ領域6に永続格
納される。
【0046】一方、11は任意のクロス集計を作る際
に、項目を指定するキー項目入力装置である。この部分
はキーボードやマウスといった装置と、モニタ画面上で
指示操作内容を後段へ送出する信号処理部とからなる。
12は、検索/集計用の階層型P木を生成する第二のP
木処理部である。ここでは階層型P木生成部14が、メ
モリ6に格納されているP木構造のノード7を辿って、
指定された項目を拾い上げてゆく。メモリ6にはP木構
造として圧縮キー8とオリジナル・データ9が含まれて
おり、階層ノード7を介してレコードのビット評価を行
い、オリジナル・データ9を取得して、第二のP木処理
部12に結果を転送する。
【0047】階層型P木生成部14において作られたP
木にオリジナル・データが配置されると、オリジナル項
目復元部が、指定されたキー配列を最終結果表示部16
に送出するとともに、数値演算部17にオリジナルの数
値データを送り、指定された演算を実行させる。演算結
果は、最終結果表示部16に送られ、次元項目と数値お
よび演算結果が所定フォームで表示される。尚、本装置
におけるオリジナル項目復元部15は、階層型P木生成
部14において作られるP木そのものであり、何らかの
装置を別途必要とするわけではない。つまり生成される
階層型P木そのものがオリジナル項目の復元機能をも
ち、実行時演算を可能とする働きを営むわけである。
【0048】
【実施例】以下に述べる実施例の理解に資するよう図1
0に、本発明に係る装置のより具体的な装置構成を例示
した。以下、処理手順について述べる。
【0049】本発明の処理手順(図4参照) 処理手順を図4として示す。「DBから一時結果セット
キャッシュ(図5)を生成」から「一時結果セットキャ
ッシュを削除」までが前処理であり、この前処理によっ
て生成されたデータを使って「圧縮結果セットキャッシ
ュからサブセット抽出及び多次元クロス集計」が繰り返
して処理される。
【0050】一時結果セットキャッシュの生成(図5) 一時結果セットキャッシュは、RDB(リレーショナルデ
ータベース)、CSV形式テキストファイル、TAB区切りテ
キストファイル、固定長テキストファイル等からハード
ディスク直接読込みあるいは通信回線経由にて読込ま
れ、図5の下に示すデータ形式にて生成される。
【0051】結果セットとは、RDBにおいてはSQL言語に
よって選択され抽出されたレコードセットを意味するデ
ータベース世界の用語である。例えば、100万件のレコ
ードセットから任意の検索条件にて任意の項目の組合せ
によって選択抽出されたレコードセットは、結果セット
である。いわゆる「クエリー」や「問合せ」と呼ばれる
テーブル同士に対する結合等の操作や検索条件によるレ
コードセットの抽出等、データベース内のレコードセッ
トから抽出された任意のレコードセットをこう呼んでい
る。
【0052】ここでは、CSV形式テキストファイル、TAB
区切りテキストファイル、固定長テキストファイル等RD
B以外のテキストファイル形式のデータソースから抽出
されたレコードセットに対しても、RDBに準じて結果セ
ットと呼ぶことにする。
【0053】結果セットキャッシュとは、結果セットの
レコードセットを本発明に最適な形式で再構成し、ハー
ドディスク上に永続化したデータセットのことである。
【0054】結果セットキャッシュは、 (1)ヘッダ部 (2)メタ情報配列 (3)レコードヘッダ (4)データオフセット配列 (5)レコード から構成され、その連携の様子は図5に示すとおりであ
る。
【0055】ヘッダ部は、 (1)項目数 (2)レコード数 (3)先頭レコードヘッダへのポインタ (4)メタ情報配列へのポインタ から構成される。
【0056】項目数には、レコードを構成する項目の数
を格納する。レコード数には、全レコード数を格納す
る。先頭レコードヘッダへのポインタには、先頭レコー
ドのレコードヘッダが占有する領域の先頭アドレスを格
納する。メタ情報配列へのポインタには、メタ情報配列
が占有する領域の先頭アドレスを格納する。メタ情報配
列は、レコードを構成する項目数と等しいメタ情報の配
列から構成される。 メタ情報は、レコードを構成する
項目の一々について、そのデータ型や長さなどレコード
を定義するに必要十分な情報を格納したデータブロック
である。
【0057】レコードヘッダは、 (1)データオフセット配列へのポインタ (2)レコードへのポインタ (3)次のレコードヘッダへのポインタ から構成される。
【0058】データオフセット配列へのポインタは、デ
ータオフセット配列が占有する領域の先頭アドレスを格
納する。レコードへのポインタは、レコードが占有する
領域の先頭アドレスを格納する。次のレコードヘッダへ
のポインタは、次のレコードヘッダが占有する領域の先
頭アドレスを格納する。データオフセット配列は、レコ
ードを構成する項目数と等しいデータオフセット領域の
配列によって構成される。データオフセットには、レコ
ード領域の先頭からのオフセットアドレスが格納され
る。 レコードを構成する項目値は、文字列の場合は末
尾空白を除外した有効データのみによって構成される。
従って、通常は可変長バイトになる。数値データ項目
は、固定長になる。
【0059】このような有効データ値のみを格納する方
法によって固定長項目値に比べ相当程度に圧縮されるた
め、ハードディスクからの読出し時間の短縮に効果があ
る。また、ヘッダ、メタ情報配列、レコードヘッダ、デ
ータオフセット配列、レコードは、この順番に密にファ
イル上に格納されるが、通常、結果セットは全レコード
の取得が完了するまでレコード件数が不明の場合が多
い。可変長で項目値を管理し、なおかつファイルの順次
読出し速度を犠牲にしないファイル格納構造が必須であ
る。そこで、このようなリストによる連携構造を採用す
ることによって、レコード件数が予め不可知であっても
何ら問題無くファイル上に整列格納できる。
【0060】また、このようなリストによる連携構造を
採用することによって、ファイルの順次読出しの速度を
犠牲にすることなく任意の可変長項目を順次取り出すこ
とができるため、ファイルからの高速な項目値取得に好
都合である。
【0061】一時結果セットキャッシュは、これ以降の
データを生成するためのデータソースとなり、一連のデ
ータの生成が完了した段階で、ハードディスク上から消
去される。
【0062】オリジナル項目の参照用P木の生成 オリジナル項目の参照用P木は、一時結果セットキャッ
シュをデータソースとして生成される。一時結果セット
キャッシュを先頭から順次読出ししてレコード単位に項
目値を取得し、項目単位でオリジナル項目の参照用P木
をメモリ中に生成する。仮にレコードを構成する項目が
8項目あれば8個の独立したオリジナル項目の参照用P
木が生成される。処理は、ステップ1とステップ2の2
ステップで構成される。
【0063】ステップ1は、オリジナル項目の参照用P
木を生成する。オリジナル項目の参照用P木の生成手順
を述べる(図6参照)。 (1)一時結果セットキャッシュの先頭から一レコード
ずつ順にメモリ中に取り出す。 (2)メモリ中のレコードについて、先頭項目から順に
項目値を取り出す。 (3)取り出した項目値をP木処理部に入力する。 (4)検索インデックス処理部は、P木処理部にて項目
値をキーとしてP木内を検索する。 (5)もし検索が成功すれば何もしないで(2)に戻
る。 (6)もし検索が不成功に終われば、P木に新たなノー
ドを挿入し、項目値を新たなノードのキーとしてそのノ
ードに格納する。 (7)次に、ノードポインタ配列内にアドレス格納領域
を確保後、ここに新たなノード領域の先頭アドレスを格
納し、ノードポインタ配列を項目値の昇順にソートす
る。この時、一時結果セットキャッシュのメタ情報配列
から取得した項目のメタ情報によって、項目値の大小判
断方法を切替える。文字列ならば文字列の先頭から順に
文字の大小比較を行う。数値ならば、数値の大小比較を
行う。日付ならば日付形式の違いを吸収し統一的な数値
に還元後、日付の大小比較を行う。この逐次昇順ソート
操作によって、ノードポインタ配列は、常に項目値の昇
順に保たれる。 (8)以上の手順を一時結果セットキャッシュの末尾レ
コードに至るまで繰り返す。
【0064】ステップ2では、完成したオリジナル項目
の参照用P木とノードポインタ配列から、オリジナル項
目の参照用P木を構成する各ノードにキー値の昇順にノ
ード番号を付加する。オリジナル項目の参照用P木が完
成した時点でノードポインタ配列は、各ノードが保持し
ているキー値の昇順にソートされているので、この性質
を利用して各ノードにノード番号(0から1ずつ増加す
る昇順番号)を簡単に付加できる。この手順を述べる。 (1)ノードの総数(Nとする)を取得する。 (2)ノードポインタ配列の数を要素0から要素N-1ま
で順に参照し、ノードポインタを取得する。 (3)ノードポインタからノード領域内のノード番号領
域に配列要素番号を格納する。 (4)以上の手順を要素N-1まで繰り返す。 以上の処理によって、オリジナル項目と圧縮項目を相互
に変換できるオリジナル項目の参照用P木が項目単位に
完成する。 一旦、オリジナル項目の参照用P木が完成すると、オリ
ジナル項目値を検索条件に設定してオリジナル項目の参
照用P木を検索し、得られたノード番号を圧縮項目値と
することができる。圧縮項目値をオリジナル項目値に復
元するには、圧縮項目値をオリジナル項目の参照用P木
のノードポインタ配列の添字として利用し、ノードポイ
ンタ配列からノードへのポインタを取得し、ノード領域
内のキー値を取得すれば良い。
【0065】P木の検索およびノード挿入手順 P木の検索およびノード挿入手順を述べる。 P木は、一個のルートノードと0個以上のノードか
ら構成される。 各ノードは2個の次のノードへのポインタ(以下、ノー
ドポインタ)を持ち、ノードポインタは次のノード領域
の先頭アドレスを指している。ノードポインタには左ノ
ードポインタと右ノードポインタがある。また、ノード
は入力項目値のどの位置のビットを比較するかを指示す
るビット添字を持つ。 ビット位置の走査順序は、あらゆるデータ型のデー
タをバイト型可変長配列に格納されたビットストリーム
とみなして、バイト型配列の先頭要素(バイト型1バイ
トデータ)の最上位ビットをLSB(Least Significant B
it−最下位ビット)、バイト型配列の末尾要素(バイト
型1バイトデータ)の最下位ビットをMSB(Most Signi
ficant Bit−最上位ビット)と定める。即ち、ビットス
トリームの先頭ビットをLSB、末尾ビットをMSBと定め
る。LSBは常にビット位置0、MSBはビットストリームの
長さによって異なる1以上の数となる。これは、一般的
な用語の使用法とは逆転していることに注意する必要が
ある。 相異なるビット位置を探索する走査においては、走
査時間を最小化するため、まずバイト単位で走査し相異
なるバイト領域を発見したなら、そのバイト領域に対し
てビット走査を行い、計算によって相異なる最初の最右
ビット位置を取得する。
【0066】(1)初期状態は、ルートノード一個のみ
存在し、キー値はヌル、左右ノードポインタ共に自分自
身のノード領域の先頭のアドレスを指している。ルート
ノードのビット添字は0である。 (2)項目値Val1(=00000000b−bは二進数を意味す
る)がP木に入力されると、P木をルートノードからVal1
で探索する。まず、ビット添字の値に従い、Val1のビッ
ト位置0のビット値を取得する。0なので左ノードポイ
ンタを辿って次のノードへ移動するが、次のノードは親
ノード(一つ前のノードを意味する)なので、そこでノ
ードのビット添字値を取得すると、親ノードのビット添
字値以下となるため、終端ノードと判断する。 (3)次にルートノードのキー値を取得しようとする
が、ヌルのため検索失敗となる。検索失敗なので、無条
件にルートノードのキー値(ヌル)を入力された項目値
Val1で置換する。左右節点は、ルートノードを指したま
まとする。 (4)項目値Val2(=00000001b)がP木に入力される
と、P木をルートノードからVal2で探索する。まず、ビ
ット添字の値に従い、Val2のビット位置0のビット値を
取得する。 (5)ビット値が0なら左ノードポインタを、1なら右
ノードポインタを辿って次のノードへ移動する。今回
は、0なので左ノードポインタを辿って次のノードへ移
動するが、次のノードは親ノードなので、そこでノード
のビット添字値を取得すると、親ノードのビット添字値
以下となるため、終端ノードと判断する。 (6)終端ノードに達したならキー値比較を行う。今回
はVal2≠Val1なのでノード挿入動作に入る。 (7)Val2=0*1(*は0個以上のビットストリームを意
味する)、Val1=0*0なので、MSBが最初に異なるビット
位置である。このビット位置をビット添字とする。今回
は、7である。また、Val1のノードに対して左分岐を行
ったので、新たなノード挿入位置は左ノードポインタが
指す位置になる。そして、新たなノードにVal2を格納
し、左ノードポインタは親ノードを指すように調整す
る。[ルート0(0,Val1)]−(左)−>[ノード1(7,Val
2)]となる(ルート0、ノード1で示される数字は、ノ
ード生成順位、括弧内の最初の数字はビット添字値、次
はキー値を表す)。Val2の7ビット目は1なので、新た
なノードの右ノードポインタは自分自身のノードを指
す。 (8)次にVal3(=00000010b)がP木に入力されると、P
木をルートノードからVal3で検索する。まず、ビット添
字の値に従い、左右分岐を繰り返す。[ルート0(0,Val
1)]−(左)−>[ノード1(7,Val2)]の順に検索して行
く。Val3のビット7は0なので、左分岐を行うとルート
0を指しているのでビット添字値が親ノードのビット添
字値以下となるため終端ノードと判断する。 (9)規則によってキー値比較を行うが、Val3≠Val2な
ので新たなノード挿入操作に入る。 (10)Val3=0*10なので、Val2=0*01と比較して6ビッ
ト目が最初に異なるビット位置であるので、ルート0と
ノード1の間に新たなノード2を挿入し、新たなノード
のビット添字値を6、キー値をVal3に設定し、左ノード
ポインタがノード1を指すように調整し、右ノードポイ
ンタが新たなノードを指すようにする。[ルート0(0,V
al1)]−(左)−>[ノード2(6,Val3)]−(左)−>
[ノード1(7,Val2)]
【0067】以上示したように、各ノードにおいてビッ
ト添字値の指示に従いビット比較を繰り返し、終端ノー
ドに達したならキー値との比較を行い、異なった場合は
検索不成功と判断し、入力項目値のビットストリームと
終端ノードが指すキー値のビットストリームを比較し
て、最初に異なったビット位置に対応するノード位置に
新たなノードを挿入し、そのノードにビット添字値とキ
ー値を設定し、ノードポインタを調整することによって
P木を生成していくことができる。また、以上の説明で
明らかなように、P木ではキー値の比較回数は1回の検
索当たり終端ノードに至った時点の1回のみで良く、挿
入操作によるキー値の移動も発生しないため、非常に高
速に検索およびノード挿入を完了できる。
【0068】N-P木の考察 以上述べたように、2分木構成のP木であっても相当高
速な検索、挿入動作が期待できるが、更に、N分木化
(以下N-P木と呼ぶ)することによってノード探索回数
とビットストリーム比較回数の劇的な減少を図ることが
出来る。これについて簡単に説明する。
【0069】P木に比較してN-P木の異なる点は、 (1)P木では、ノードポインタは左右2個のみである
が、N-P木では、ノードポインタは2の累乗個となる。
4分木、8分木、16分木、32分木、64分木など。
ただし、実際の応用においては、現在普及しているコン
ピュータが通常バイト境界でメモリをアクセスする関係
から2の倍数ビットのビット塊によるビットストリーム
比較が望ましい。この理由から、4分木(ビット塊は2
ビット)、16分木(4ビット塊)、256分木(8ビ
ット塊)が重要である。 (2)P木では、ビット添字のビット位置について1ビ
ットのビット値を調べ、0なら左分岐、1なら右分岐す
るが、N-P木では、4分木では、ビット添字のビット位
置について1度に2ビット塊のビット値を調べ、00bなら
左左分岐、01bなら左中分岐、10bなら右中分岐、11bな
ら右右分岐する。このため、ビット値の比較回数が2分
の1になる。同様に、16分木では、1度に4ビット塊
を調べ、0000bなら最左分岐、・・・、1111bなら最右分岐
する。このため、ビット値の比較回数が4分の1にな
る。 (3)P木では、木の深さは、完全バランス木では、log
M/log2(対数の基数は10、Mはノード数)であるが、
4分木の完全バランス木では、logM/log4(対数の基数
は10、Mはノード数)となり、木の深さは半分にな
る。従ってノードの探索回数も半分になる。16分木の
完全バランスでは、logM/log16(対数の基数は10、
Mはノード数)となり、木の深さは1/8になる。従っ
てノードの探索回数も1/8になる。256分木では、
実に1/128になる。
【0070】アルゴリズムの概要 (1)ビット添字値は、2分木と全く同じ扱いをする。
ビット塊の先頭ビット位置をビット添字値とする。 (2)ビット比較は、2分木ではビット添字で指示され
たビット位置のビット値を調べ、0なら左分岐、1なら
右分岐するが、N-P木では、Nに応じた位置のノードポ
インタによって複数路に分岐する。ビット塊は、簡単に
0以上の整数に変換できるので、ノードポインタをN個
のポインタ配列で構成すれば、判断のオーバーヘッド無
しに自動的に複数路に分岐できるので好都合である。 (3)新たなノード挿入位置を決定するために行う2つ
のビットストリームに対する異なる最右ビット塊の探索
は、LSBからまずバイト単位で比較していき、異なるバ
イト領域を発見したなら、そのバイト領域に対してビッ
ト塊単位でブロック比較し、ビット塊のビット数だけMS
B方向に移動しながらブロック比較を繰り返し最初の異
なるビット塊位置を発見し、計算によってその位置を取
得する。 (4)N-P木の欠点として、ビットパタンの片寄り(一
般に文字列はビットパタンが偏っている)によってN-P
木のアンバランスに起因する空間効率の悪さが指摘でき
るが、本発明で述べた圧縮項目値をN-P木の入力データ
とすることによってこの欠点を克服できる。何故なら、
圧縮項目値はその定義から0以上の1ずつ増加する整数
値であるため、圧縮項目値をビットパタン展開すればほ
ぼ完全に分散したパタンが得られるからである。この性
質によってN-P木が完全バランス木に近くなるため、N-P
木の欠点を克服でき、かつN-P木が持っているほぼ最大
の検索、挿入速度が得られるため都合が良い。
【0071】圧縮結果セットキャッシュの生成(図7参
照) 圧縮結果セットキャッシュは、一時結果セットキャッシ
ュをデータソースとしてオリジナル項目の参照用P木を
利用して生成される。一時結果セットキャッシュを先頭
から順次読出ししてレコード単位に項目値を取得し、項
目毎に該項目用のオリジナル項目の参照用P木を項目値
で検索し、検索の結果得られたノード番号を圧縮項目値
とみなし、これをノード番号の最大値を表現するに足る
最小ビット数で順に該項目用のカラム単位のファイルに
書き出すことによってカラム単位のファイルが生成され
る。仮にレコードを構成する項目が8項目あれば8個の
独立したカラム単位のファイルが生成される。これらの
カラム単位のファイル群とヘッダとメタ情報配列を総称
して圧縮結果セットキャッシュと呼ぶ。
【0072】通常、多次元集計対象となるデータは、期
間による絞込みや分類による集約化の加工を行った後の
データであるため、項目のメンバー数(項目に含まれる
ユニークなデータ値の数)は、比較的少数である。例え
ば、項目が店舗名といった場合、メンバー数は店舗数に
なるため高々数百個である。比較的メンバー数が多い商
品名といった項目を、仮に集約化を行わないでそのまま
集計の対象とした場合であっても、実際に販売された商
品だけがレコードに登録されるため、メンバー数は高々
数万個から多くても数十万個である。
【0073】店舗名のメンバー数を256個、商品名の
メンバー数を65535個とした場合、について圧縮の
効果を述べる。店舗名のメンバー数256を表現するに
足る最小ビット数は8ビット、即ち1バイトである。商
品名のメンバー数65535を表現するに足る最小ビッ
ト数は16ビット、即ち2バイトである。従って、店舗
名の平均文字列バイト長を10バイトとすると、圧縮率
は1/10、20バイトとすると、圧縮率は1/20で
ある。これをファイルの読込み時間に当てはめると、フ
ァイルの読み込み時間は、それぞれ1/10、1/20
となる。商品名の平均文字列バイト長を10バイトとす
ると、圧縮率は1/5、20バイトとすると、圧縮率は
1/10である。これをファイルの読込み時間に当ては
めると、ファイルの読み込み時間は、それぞれ1/5、
1/10となる。
【0074】また、集計項目値は、通常倍精度浮動小数
点数(8バイト)で表現することが多い。集計項目が単
価のようなある程度メンバー数が限られるものでは圧縮
率が非常に高い。逆に、販売金額等の比較的メンバー数
が多いものでは圧縮率は低くなる。しかし、メンバー数
が多いものであっても高々数十万個と思われるので3バ
イトあれば表現できる。このような場合であっても、圧
縮率は0.375となり、約1/3に圧縮できる。この
ためファイルの読み込み時間も大幅に短縮できる。
【0075】本発明のような実行時集計方式では、集計
対象データソースの読み込み時間がトータルの応答時間
の大部分を占める。このため、圧縮項目値によるカラム
単位のファイル構成法は、実行時集計方式では、極めて
効果的である。
【0076】検索インデックスの付加 圧縮結果セットキャッシュは、階層型P木による実行時
集計時間の短縮に高い効果を発揮するが、項目値が圧縮
されているため、このままではオリジナル項目値を検索
条件に設定した検索が行えない。応用場面においては、
大規模な圧縮結果セットキャッシュを共有化し、利用者
が任意の検索条件にて圧縮結果セットの絞込みを行い、
絞り込まれた結果に対して集計を行うことができると便
利である。
【0077】このような利用方法に応えるために、オリ
ジナル項目の参照用P木内のキー値毎に圧縮結果セット
キャッシュの該当レコード番号の転置配列を格納する。
オリジナル項目の参照用P木内のキー値は、オリジナル
キー値なのでここでの目的に合致している。
【0078】検索情報の付加の手順を述べる(図8参
照)。 (1)一時結果セットキャッシュの先頭から一レコード
ずつ順にメモリ中に取り出す。 (2)メモリ中のレコードについて、先頭項目から順に
項目値を取り出す。 (3)取り出した項目値を検索キーとしてオリジナル項
目の参照用P木内を検索する。 (5)検索されたノード領域内にあるレコード番号配列
へのポインタによって指されているレコード番号転置配
列に、現在のレコード番号をレコード番号の昇順に格納
する。 (7)全ての項目について上記手順を繰り返す。 (8)上記手順を一時結果セットキャッシュの末尾レコ
ードまで繰り返す。
【0079】以上によって、全ての項目について項目毎
のオリジナル項目の参照用P木に検索インデックスが付
加される。検索インデックスが付加されたオリジナル項
目の参照用P木は、ファイルに永続化され、項目をキー
として圧縮結果セットキャッシュからカラム単位の任意
のサブセットを抽出する高速検索用のインデックスとし
ても利用される。
【0080】一時結果セットキャッシュの削除 上記1から4の処理によって、検索・多次元クロス集計
の前処理が完了するので、一時結果セットキャッシュを
削除する。
【0081】この結果、以下の2つのデータが以降の処
理のデータソースとなる。 (1)ファイルに永続化されたオリジナル項目の参照用
P木 (2)圧縮結果セットキャッシュ
【0082】サブセット抽出及び多次元クロス集計の処
理(図9参照) 検索・多次元クロス集計は、検索によるサブセットデー
タ抽出と例えば、階層型P木による多次元クロス集計か
ら構成される。階層型を利用せずに通常の平衡型あるい
は他の構成法によるP木を利用することもできる。ここ
では、階層型P木を使って説明する。
【0083】検索によるサブセットデータ抽出 検索によるサブセットデータ抽出の手順を述べる。 (1)検索条件入力装置から検索条件式を入力し、検索
インデックス処理部に出力する。 (2)検索インデックス処理部は、検索条件式から検索
条件と論理演算子(AND、OR、NOT)を逆ポーランド記法
に分解し検索条件式のスタックに積む。 (3)検索条件式のスタックから次のトークンを得る。 (4)トークンが検索条件なら、検索条件の項目に対応
したオリジナル項目の参照用P木をメモリ中に読込み該P
木を検索条件で検索し、レコード番号一覧を得て論理演
算部に出力する。論理演算部は、入力したレコード番号
一覧へのポインタをスタックに積む。(3)へ戻る。 (5)トークンが論理演算子なら、論理演算部に論理演
算子を出力する。論理演算部は、論理演算子が入力され
るとスタックに積んである2つのポインタを取り出し、
2つのポインタが指すレコード番号一覧と論理演算子を
論理演算処理部に出力する。論理演算処理部は、ANDな
ら2つのレコード番号一覧から両方に存在するユニーク
なレコード番号一覧を抽出する。ORなら2つのレコード
番号一覧を併合しユニークなレコード番号一覧を抽出す
る。NOTなら2つのレコード番号一覧からA AND NOT Bの
集合演算を施したユニークなレコード番号一覧を抽出す
る。抽出したレコード番号一覧へのポインタをスタック
へ積む。(3)に戻る。 (6)検索条件式のスタックが空なら、論理演算部から
レコード番号一覧を入力して最終結果集計部に出力す
る。
【0084】階層型P木による多次元クロス集計 階層型P木による多次元クロス集計の手順を述べる。 (1)最終結果集計部は、集計条件入力装置から多次元
集計条件を、検索インデックス処理部からレコード番号
一覧を入力する。 (2)最終結果集計部は、多次元集計条件で指示された
項目とレコード番号一覧に合致する項目単位のサブセッ
トデータを圧縮結果セットキャッシュのカラム単位ファ
イルから取得し、階層型P木処理部に出力する。 (3)階層型P木処理部は、多次元集計条件で指示され
た項目とレコード番号一覧に合致する項目単位のサブセ
ットデータを入力し、階層型P木をメモリ中に生成す
る。この時、階層型P木処理部は集計項目に関しては圧
縮項目値を添字としてオリジナル項目の参照用P木のノ
ードポインタ配列を参照し、そのアドレスにあるノード
領域内のオリジナル項目値を取得しながら加算処理す
る。 (4)完成した階層型P木の次元キーは、そのままでは
圧縮項目値のままなので、最終結果集計部は、圧縮項目
値を添字としてオリジナル項目の参照用P木のノードポ
インタ配列を参照し、そのアドレスにあるノード領域内
のオリジナル項目値を取得して置換し、最終的な多次元
クロス集計表の内部配列表現を組み立てる。 (5)最終結果集計部は、最終的な多次元クロス集計表
の内部配列表現を多次元クロス集計表表示装置に出力す
る。 (6)永続化記憶復元部は、完成した階層型P木を入力
して階層型P木にユニークなキーを付け、階層型P木を復
元するための検索インデックスに登録すると共に階層型
P木をファイルに永続化する。 (7)上記(2)において、もし、同じ集計結果の階層
型P木が階層型P木復元用検索インデックスに登録されて
いるなら、こちらを優先してファイルからメモリ中に復
元し、階層型P木の新規生成を行わない。 (8)多次元クロス集計表表示装置は、多次元クロス集
計表を表示する。
【0085】
【発明の効果】以上説明したように本発明によれば、膨
大な件数のレコードファイルを基礎として、任意の次元
項目をもってクロス集計を高速に行うことが可能とな
る。
【図面の簡単な説明】
【図1】本発明に係る多次元データベースの処理方法を
例示する図である。
【図2】本発明に係るクロス集計時の処理を例示する図
である。
【図3】本発明に係る装置の一例を示すブロック図であ
る。
【図4】本発明の全体の処理手順を例示する流れ図であ
る。
【図5】一時結果セットキャッシュの生成を例示する図
である。
【図6】オリジナル項目の参照用P木の生成手順を例示
する図である。
【図7】圧縮結果セットキャッシュの生成を例示する図
である。
【図8】検索情報の付加の手順を例示する図である。
【図9】多次元クロス集計の処理を例示する図である。
【図10】本発明の実施例に係る装置の全体構成を示す
図である。
【符号の説明】
1 レコード入力部 2 第一のP木処理部 3 キー項目圧縮部 4 無限ビット評価部 5 保存部 6 メモリ領域 7 ノード 8 圧縮キー 9 オリジナル.データ 11 キー項目入力装置 12 第二のP木処理部 14 階層型P木生成部 15 オリジナル項目復元部 16 最終結果表示部 17 数値演算部

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】文字データおよび/または数値データから
    構成されるレコードファイルを多数備え、当該レコード
    ファイルに基づき、任意のキー項目を指定してクロス集
    計処理を行う多次元データベースの処理方法において、 前記レコードファイルは、P木の階層構造に基づいて格
    納処理するものであって、オリジナルの項目キーをP木
    のビット添字評価手法に基づいて各項目のノード毎に圧
    縮格納するとともに、圧縮処理時におけるビット添字の
    評価順序をビットストリームのLSBからMSBへ向か
    って処理することによって任意データ長のオリジナル項
    目を、オリジナル項目の圧縮参照用P木構造内に配置す
    るとともに、このオリジナル項目の圧縮参照用P木に基
    づいて、レコードファイルを検索するための圧縮結果セ
    ットキャッシュを生成する一方、 キー項目の指定による任意次元のクロス集計の条件が与
    えられたときは、前記圧縮セットキャッシュ内の階層ノ
    ードに含まれる圧縮キーに基づいてクロス集計用のP木
    を生成するとともに、このP木内において圧縮キーのビ
    ット添字の評価を行うことにより、前記オリジナル項目
    の圧縮参照用P木に配置されているオリジナル項目に基
    づいて数値データを演算処理することを特徴とする多次
    元データベースの高速処理方法。
  2. 【請求項2】文字データおよび/または数値データから
    構成されるレコードファイルを多数備えるレコードメモ
    リと、当該レコードメモリに格納された複数のレコード
    ファイルに基づき、任意のキー項目を指定してクロス集
    計処理を行う多次元データベースの処理装置において、 レコードファイルをP木データ構造として処理する第一
    のP木処理手段と、クロス集計の実行時にP木を生成す
    る第二のP木処理手段を備え、 第一のP木処理手段は、 レコードファイルに含まれる項目データをP木のビット
    添字評価アルゴリズムに基づいて圧縮処理するキー項目
    圧縮手段を備え、このキー項目圧縮手段は、レコードフ
    ァイルのビットストリームをLSBからMSBへ向かっ
    て処理する無限ビット評価手段を備えてなり、当該第一
    のP木処理手段において生成されたP木は、保存手段を
    介して所定のメモリ領域に永続格納する一方、 第二のP木処理手段は、 指定されたキー項目を、永続保存されている前記P木に
    基づいてクロス集計を行うP木を生成するP木生成手段
    と、 クロス集計時に生成したP木に基づき、オリジナル項目
    を復元するオリジナル項目復元手段を備え、生成した当
    該P木に基づいて実行時演算を行うことを特徴とする多
    次元データベースの高速処理装置。
JP11192411A 1999-07-06 1999-07-06 多次元データベースの高速処理方法および装置 Pending JP2001022766A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11192411A JP2001022766A (ja) 1999-07-06 1999-07-06 多次元データベースの高速処理方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11192411A JP2001022766A (ja) 1999-07-06 1999-07-06 多次元データベースの高速処理方法および装置

Publications (1)

Publication Number Publication Date
JP2001022766A true JP2001022766A (ja) 2001-01-26

Family

ID=16290881

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11192411A Pending JP2001022766A (ja) 1999-07-06 1999-07-06 多次元データベースの高速処理方法および装置

Country Status (1)

Country Link
JP (1) JP2001022766A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003099304A (ja) * 2001-09-20 2003-04-04 Fujitsu Ltd 複数の場所に登録された情報を管理するシステムおよび方法
US7149649B2 (en) 2001-06-08 2006-12-12 Panoratio Database Images Gmbh Statistical models for improving the performance of database operations
KR100996771B1 (ko) 2003-03-28 2010-11-25 마이크로소프트 코포레이션 정보 캐싱 시스템 및 이를 사용하는 장치, 데이터 캐싱 방법, 및 능동적 캐싱 방법
WO2012060152A1 (ja) * 2010-11-02 2012-05-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 数値集約計算における文字列集約方法
US8209297B2 (en) 2009-06-30 2012-06-26 Hitachi, Ltd. Data processing device and method
US8959122B2 (en) 2010-03-08 2015-02-17 Hitachi, Ltd. Data processing device
JP2015075896A (ja) * 2013-10-08 2015-04-20 日本電信電話株式会社 フロー集約装置及び方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149649B2 (en) 2001-06-08 2006-12-12 Panoratio Database Images Gmbh Statistical models for improving the performance of database operations
JP2003099304A (ja) * 2001-09-20 2003-04-04 Fujitsu Ltd 複数の場所に登録された情報を管理するシステムおよび方法
KR100996771B1 (ko) 2003-03-28 2010-11-25 마이크로소프트 코포레이션 정보 캐싱 시스템 및 이를 사용하는 장치, 데이터 캐싱 방법, 및 능동적 캐싱 방법
US8209297B2 (en) 2009-06-30 2012-06-26 Hitachi, Ltd. Data processing device and method
US8959122B2 (en) 2010-03-08 2015-02-17 Hitachi, Ltd. Data processing device
WO2012060152A1 (ja) * 2010-11-02 2012-05-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 数値集約計算における文字列集約方法
JP5490253B2 (ja) * 2010-11-02 2014-05-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 数値集約計算における文字列集約方法
JP2015075896A (ja) * 2013-10-08 2015-04-20 日本電信電話株式会社 フロー集約装置及び方法

Similar Documents

Publication Publication Date Title
US8533203B2 (en) Identifying synonyms of entities using a document collection
CN102142038B (zh) 用于记号空间资料库的多级查询处理系统与方法
US8171029B2 (en) Automatic generation of ontologies using word affinities
US20040133581A1 (en) Database management system, data structure generating method for database management system, and storage medium therefor
CN109166615B (zh) 一种随机森林哈希的医学ct图像存储与检索方法
US20150186471A1 (en) System and method for approximate searching very large data
JPH11212980A (ja) インデクス作成方法および検索方法
US8316041B1 (en) Generation and processing of numerical identifiers
US20090024616A1 (en) Content retrieving device and retrieving method
JP5220483B2 (ja) 木構造のデータに対する集約計算を行うコンピュータ・システム、並びにその方法及びコンピュータ・プログラム
US20120124060A1 (en) Method and system of identifying adjacency data, method and system of generating a dataset for mapping adjacency data, and an adjacency data set
CN105404677A (zh) 一种基于树形结构的检索方法
US20220222233A1 (en) Clustering of structured and semi-structured data
CN108027816B (zh) 数据管理系统、数据管理方法及记录介质
JP2001022766A (ja) 多次元データベースの高速処理方法および装置
JP4136594B2 (ja) データ処理方法およびデータ処理プログラム
TWI234720B (en) Related document linking managing system, method and recording medium
Yadav et al. Wavelet tree based hybrid geo-textual indexing technique for geographical search
CN105426490A (zh) 一种基于树形结构的索引方法
JP3514874B2 (ja) フリーテキスト検索システム
US11106703B1 (en) Clustering of structured and semi-structured data
JPH04326164A (ja) データベース検索システム
JP4081236B2 (ja) データベースの処理方法
JP5954742B2 (ja) 文書を検索する装置及び方法
KR102062139B1 (ko) 지능형 자료구조 기반의 데이터 처리 방법 및 그를 위한 장치

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040715

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20040720

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20040720

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040720

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070528

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071009