JPH10161991A - データ処理装置及びデータ処理方法 - Google Patents

データ処理装置及びデータ処理方法

Info

Publication number
JPH10161991A
JPH10161991A JP31503196A JP31503196A JPH10161991A JP H10161991 A JPH10161991 A JP H10161991A JP 31503196 A JP31503196 A JP 31503196A JP 31503196 A JP31503196 A JP 31503196A JP H10161991 A JPH10161991 A JP H10161991A
Authority
JP
Japan
Prior art keywords
data
sort
key
level
input
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
Application number
JP31503196A
Other languages
English (en)
Other versions
JP2959497B2 (ja
Inventor
Shinya Fushimi
信也 伏見
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP31503196A priority Critical patent/JP2959497B2/ja
Publication of JPH10161991A publication Critical patent/JPH10161991A/ja
Application granted granted Critical
Publication of JP2959497B2 publication Critical patent/JP2959497B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】 【課題】 集計処理の際のキーの一致不一致を高速に検
出し、複数のキーによる階層集計を高速に行い、更にこ
れらデータ処理装置を複数台用いて大量データに対して
も高速なソート処理集計処理を実現する。 【解決手段】 ソートキーの全ての組合せについて集計
対象データの個数分の集計値フィールドを生成し集計レ
ベルを表すレベルキーを付加する集計値レコード生成装
置、入力データを含むそれらの全データを上記ソートキ
ーによりソートするソート処理装置、ソートされたデー
タの集計対象データを上記組合せごとに累積レジスタに
それぞれ集計し上記レベルキーの表す集計レベルに対応
する累積レジスタの内容を出力する集計処理装置を備え
たものである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、大量データに対
するソート処理、即ちデータの並べ替え処理、更にはそ
のソート結果を集計する、等を計算機システムにより行
うデータ処理、データベース処理に関するものである。
【0002】
【従来の技術】一般に、ソート処理は、ソート処理単独
で用いられることは少なく、集計処理と合せて使用され
ることが多い。ここで、ソート処理と集計処理を組み合
わせることの重要性について説明する。例えば企業にお
ける売り上げデータは以下の表1のようになる。
【0003】
【表1】
【0004】これらのデータに対しては、例えば製品毎
の集計、店毎の売上げ集計、月毎の売上げ集計等が行わ
れ、企業活動の分析、売れ筋分析、在庫管理や仕込み予
測等に利用される。ここで上記データは発生順、即ち日
時順に並んでいるため、これら集計のためには、各集計
処理別にソートを行い、その結果を用いて集計すること
が必要となる。例えば、店別の売上げ集計を行うには、
まず店名フィールドでソートを行う。ここで、このよう
にソートに用いるフィールドをソートキーと呼ぶ。表1
を店名フィールドでソートを行った結果を以下の表2に
示す。
【0005】
【表2】
【0006】このソート結果に対して、店名フィールド
が同じもの毎に価格の集計を行う。このために、ソート
結果のデータを上から下に順に検索し、異なるソートキ
ー値、即ち異なる店名フィールド値が検出されるまで価
格フィールドを加算してゆく処理が行われる。その結
果、以下の表3が得られる。
【0007】
【表3】
【0008】更に、これら集計に用いるソートキーが複
数の場合がある。例えば、店毎に各製品別に売上げの集
計を行う場合等がある。この場合、店名キーを先頭に、
次に製品名をキーとしたソートによりデータをソートす
る。すると表1の原データは以下の表4のようになる。
【0009】
【表4】
【0010】このソート結果に対し、各店での製品別集
計、及び各店での総合計が計算される。この場合には、
(東京、ラジオ)、(東京、テレビ)、(大阪、ラジ
オ)、(大阪、テレビ)の各組み合わせと、これに加え
て各店別の小計として東京及び大阪での売上げ合計、及
び総合計値としての総合計が求められる。従って、処理
としては、ソート結果に対して、データを上から下に検
索し、店名フィールド及び製品名フィールドを組み合わ
せた値によりデータを順に検索し、異なる値を検出され
るまで価格フィールドを加算してゆく。更に、店名フィ
ールドが異なる場合には、店名毎の合計値を出力する必
要がある。その結果、以下の表5が得られる。
【0011】
【表5】
【0012】これら複数キーによる集計は以下「階層的
な集計」と呼ぶ。このように、大量に集積されたデータ
に対しては、データの各フィールドによるソート及び集
計処理の組み合わせが必須となる。
【0013】図13は例えば「情報処理」Vol.33, N
o.12, p1416−1423に示された従来のデータ処理装置
を示すものである。1はデータ処理装置、2はソート処
理装置、3は集計処理装置、6は制御装置、7は併合処
理装置、8はホスト計算機である。
【0014】次に動作について説明する。ホスト計算機
8においてデータ処理の要求が発生すると、ホスト計算
機は処理対象となるデータを連続的にデータ処理装置1
に送る。ソート処理装置2は、内部に持つ記憶装置の容
量に依存して、ソート可能なデータ量が定められる。ホ
スト計算機1から送られてくるデータが、このソート容
量以下であるか、ソート容量を超えているかで、データ
処理装置1によるデータ処理には以下の二つの場合があ
る。
【0015】(場合1)ソート処理装置2のソート容量
以下のデータがホスト計算機から送られた場合 図14(a)に示す通り、データ処理装置1はデータが
入力されると、ソート処理装置2によるソート処理を行
い、更に、そのソート結果に対して集計処理装置3によ
り集計処理を行い、その結果をホスト計算機8に送り返
す。
【0016】(場合2)ソート処理装置2のソート容量
を超えるデータがホスト計算機から送られた場合、以下
の2つのフェーズにより処理される。
【0017】(フェーズ1)図14(b)に示す通り、
データ処理装置1は、ソート処理装置2のソート容量分
の範囲でソートされたデータをソート処理装置2により
生成し、この結果をホスト計算機に一旦返す。この際、
集計処理装置は動作しない。
【0018】(フェーズ2)図14(c)に示す通り、
これら部分的にソートされたデータがホスト計算機8か
らデータ処理装置1に再度送られ、今度は併合処理装置
7によりこれらデータが併合され、その結果が集計処理
装置3に送られ、集計処理が施され、結果がホスト計算
機8に返される。
【0019】以上、いづれの場合においても、これら一
連の制御は制御装置6により行われる。ここで、ソート
処理装置2を構成している複数のソートプロセッサは図
15に示すように、ソートプロセッサP1は入力データ
を二つづつ取りだし、これを並び替えて次段に送る。次
段のソートプロセッサP2は二つづつにソートされた入
力データを二組づつ取りだし、併合して4つづつのソー
トされたデータとして次段のP3へ送り出す。以下同様
に繰り返す。
【0020】各段のソートプロセッサは、前段のソート
プロセッサがすべての処理を終えない内に処理を開始す
ることが可能であり、これにより、データを連続的に入
力すると若干の遅れ時間を経てデータ入力と並列にソー
ト結果が出力されることがわかる。
【0021】次に併合処理装置7について説明する。一
般に併合処理装置はマイクロプロセッサ等の汎用処理装
置とそのプログラムにより構成される。この場合の処理
フローは図16のようになる。ここでは降順ソートを前
提とし、また、M本のソート済みのデータ列を1本のソ
ート済みのデータ列に併合することを仮定する。
【0022】図16において、ステップS101では、併合
するソート済みのデータ列の数Mを変数mに格納する。
次にステップS102でm本のソート済みのデータ列の先頭
データを読み出す。例えば、M=2でデータ列が以下の
表25であれば、
【0023】
【表6】
【0024】データ列1から6、データ列2から8が読
み出される。
【0025】次に、ステップS103で読み出したデータ群
から最大のものを見つける。この例では8となる。ステ
ップS104でdに8をセットし、8が属していたデータ列
は2であるからiに2をセットする。ステップS105でd
の値を出力する。ステップS106でiに格納されている番
号のデータ列から次のデータを読み出す。この場合、i
=2であり、データ列2の次のデータは7であるからデ
ータ7が読み出される。ステップS107では、このような
処理を続けていった場合に、データ列からデータがなく
なっていないかどうかを判定する。まだデータがあれば
ステップS103に戻って処理を続ける。もう当該データ列
にデータがなくなった場合には、ステップS108で処理対
象のデータ列の数mを1減らし、ステップS103に戻って
処理を続ける。この際、ステップS109でmが0になると
処理が終了する。
【0026】次に集計処理装置3について説明する。一
般に集計処理装置はマイクロプロセッサ等の汎用処理装
置とそのプログラムにより構成される。この場合の処理
フローは図17のようになる。
【0027】図17において、先ず、ステップS121で、
変数PKに無効なキー値を格納し、変数ACを0に初期
化する。PKは、処理対象のデータよりも一つ前に処理
したデータのソートキー値を保持する。また、ACは集
計対象フィールドのその時点までの集計値を保持する。
次に、ステップS122で次のデータを読み込み、そのキー
値を変数Kに、その集計対象値をVに保持する。既にソ
ート結果を読み尽くしていた場合には、ステップS123で
処理が終了する。そうでない場合には、ステップS124で
前のデータのキー値との比較を行う。
【0028】キーが一致していなければACに保持され
ている集計値を出力し(ステップS125),VをACにセ
ットする(ステップS126)。集計値出力の際には、現在
読み込んだデータにその集計値を出力する。キー値が一
致している場合には、当該データは出力される必要はな
いため、ステップS127でデータが削除される。次にステ
ップS128でACにVを加える。いづれの場合にも、ステ
ップS129において、PKをKに更新し、ステップS122に
戻る。
【0029】これにより、キー値が一致しているデータ
が入力される限りACに集計対象値が加算され、キー値
が異なるデータが検出された時点でその集計値が出力さ
れることとなる。尚、S121においてPKに初期化された
値は、どのキー値とも一致する値が設定されていると仮
定している。
【0030】ソートキーが複数ある場合には、これらキ
ーを合わせて一つのキーと見做し、上記のフローにより
処理を行っていた。また、集計対象フィールドが複数S
個存在する場合、例えば価格の合計に加えて、数量の合
計も計算する場合、上記ACをS個用意し、ステップS1
25、S126、S128をS回繰り返すことにより処理を行って
いた。
【0031】
【発明が解決しようとする課題】従来のデータ処理装置
は、以上のように構成されていたので、以下のような問
題点があった。
【0032】既に述べた集計処理装置において、前のデ
ータのキー値と現在のデータのキー値との比較処理は、
キーの長さがソート毎に異なることに一般的に対処する
ため、1バイトづつの比較処理を行って実現される。こ
のため、処理性能が低下する問題があった。
【0033】上記集計処理において、キーが複数存在す
る場合には、これらをまとめて一つのキーとして扱うこ
ととなっていた。このため、階層的集計が困難である。
例えば既に述べた以下の表6を店名と製品名についてソ
ートし集計すると次の表7の様になる。
【0034】
【表7】
【0035】
【表8】
【0036】上記表7において、*印のついた集計値は
別の手段により別途計算する必要があった。このため、
システムが複雑化し、性能が低下する問題があった。
【0037】従来の階層的集計においては、異なるキー
毎に集計値を出力するためのデータ数を予め把握するこ
とが困難であった。例えば以下に示す表8のデータが入
力された場合、それらの集計値は次の表9の様になり、
入力されたデータの数よりも集計後のデータの数が多い
結果となる。
【0038】
【表9】
【0039】
【表10】
【0040】この場合、例えば東京でのラジオ、テレビ
を出力する場所は、各々原データを用いることができる
が、東京での総合計を出力するための場所は原データに
存在しない。このため、従来の手段ではこれら複数キー
による集計処理の実現が困難であった。また、実際にあ
りうる値であるが、例えばたまたま当日の売上げがなか
ったため、売上げデータにない場合の集計が困難な問題
がある。例えば、テレビの売上げが3月15日になかっ
た場合、上記の処理ではテレビの集計値が出力されな
い。出力上は、テレビの売上げが0である集計値が必要
である。
【0041】上記集計処理においては、集計対象フィー
ルドが複数存在する場合、集計処理を数回繰り返す必要
があり、処理速度が低下する問題があった。
【0042】上記集計処理においては、データ処理装置
中のソート処理装置の容量を超えるデータが入力された
場合、集計処理、階層的集計処理を行うことが困難であ
った。また、この場合、集計処理、階層的集計処理の対
象データが一旦ホスト計算機に返されるため、性能が低
下する問題があった。
【0043】また、例えば、東京、大阪はそのまま集計
するが、東京近県は一括して「その他」として集計す
る、といった、集計のレベルの変更が困難であった。
【0044】本発明は、以上のような問題点を解消する
ためになされたもので、集計処理の際のキーの一致不一
致を高速に検出し、複数のキーによる階層集計を高速に
行い、更にこれらデータ処理装置を複数台用いて大量デ
ータに対しても高速なソート処理集計処理を実現するこ
とを目的とする。
【0045】
【課題を解決するための手段】この発明に係るデータ処
理装置は、K個のソートキーを含む入力データに集計レ
ベルを表すレベルキーを付加し上記ソートキーの全ての
組合せについて更に集計レベルごとに上記入力データと
同一形式のデータを生成しそのデータに上記レベルキー
を付加する集計値レコード生成装置、それらの全データ
を上記ソートキーによりソートするソート処理装置、ソ
ートされたデータの集計対象データを個々の集計対象デ
ータ別にK+1個の累積レジスタにそれぞれの累積レジ
スタごとに集計し上記レベルキーの表す集計レベルに対
応する上記累積レジスタの内容を出力する集計処理装置
を備えたものである。
【0046】また、上記入力データのソートキーを予め
指定した別のソートキーと置き換えその入力データを上
記集計値レコード生成装置に入力するキー変換装置を備
えたものである。
【0047】さらに、上記データ処理装置にて処理可能
な容量を超えるデータが入力されたときその入力データ
の処理可能な容量分のデータをソート処理後集計処理を
行わず記憶装置に格納する分割処理を繰り返し行い上記
入力データの上記分割処理を全て終了後それらの容量分
のデータを併合する併合処理装置を備えたものである。
【0048】また、上記データ処理装置にて処理可能な
容量を超えるデータが入力されたときその入力データの
処理可能な容量分のデータをソート処理後部分集計処理
を実施後記憶装置に格納する分割処理を繰り返し行い上
記入力データの上記分割処理を全て終了後それらの容量
分のデータを併合する併合処理装置を備えたものであ
る。
【0049】この発明に係るデータ処理方法は、ソート
キーを含む入力データに集計レベルを表すレベルキーを
付加し上記ソートキーの全ての組合せについて上記入力
データと同一形式のデータを生成しそのデータに上記レ
ベルキーを付加するステップ、上記ソートキーの内最下
位のソートキーから最上位のソートキーまで最下位から
順に最大数又は最小数と等価な識別子により置き換えて
行き置き換える度に上記レベルキーを付加した入力デー
タと同一形式のデータを生成するステップ、それらの全
データを上記ソートキーによりソートするステップから
なるものである。
【0050】また、K個のソートキーを含む入力データ
に集計レベルを表すK+1ビットのレベルキーを付加し
上記ソートキーの全ての組合せについて上記入力データ
と同一形式のデータを生成しそのデータに上記レベルキ
ーを付加するステップ、上記入力データに対しては上記
レベルキーの全ビットを0とし上記ソートキーの全ての
組合せについて上記入力データと同一形式のデータを生
成したデータに対しては上記レベルキーの最下位のビッ
トのみを1として他のビットは0とし最大数又は最小数
と等価な識別子により置き換えて行き置き換える度に上
記入力データと同一形式のデータを生成したデータに対
しては置き換えられた上記識別子の内最も上位に位置す
る識別子の位置を最上位から数えた順番に相当する上記
レベルキーのビット位置のビットのみを1とし他のビッ
トは0とするステップ、それらの全データを上記ソート
キーによりソートするステップ、上記レベルキーのいず
れかのビットが1のデータに対しては対応するソートキ
ーのレベルにおける集計値を出力するステップからなる
ものである。
【0051】さらに、K個のソートキーを含む入力デー
タに集計レベルを表すレベルキーを付加し上記ソートキ
ーの全ての組合せについて更に集計レベルごとに上記入
力データと同一形式のデータを生成しそのデータに上記
レベルキーを付加する集計値レコード生成装置、それら
の全データを上記ソートキーによりソートするソート処
理装置、ソートされたデータの集計対象データを個々の
集計対象データ別にK+1個の累積レジスタにそれぞれ
の累積レジスタごとに集計し上記レベルキーの表す集計
レベルに対応する上記累積レジスタの内容を出力する集
計処理装置を備えたことを特徴とするデータ処理装置を
使用するデータ処理方法において、M台の上記データ処
理装置に1台の処理可能な容量分のデータがN個のとき
(N−1)×M+1個の処理データの内N−1個づつを
M台の上記データ処理装置に同時に入力し、この入力が
完了した後残りの1個のデータを1番目のデータ処理装
置に入力しこのソート結果を2番目のデータ処理装置に
入力し同様の処理を繰り返すことによりM番目のデータ
処理装置の処理結果を得るものである。
【0052】
【発明の実施の形態】
実施の形態1.本発明の実施の形態1について図に基づ
いて説明する。実施の形態1は、データ処理装置が1台
の場合である。図1にこの発明の実施の形態1であるデ
ータ処理装置の構成を示す。1はデータ処理装置、2は
ソート処理を行うソート処理装置、3はソート処理後の
データを集計する集計処理装置、4は集計用のレコード
を生成する集計値レコード生成装置、5は必要によりキ
ーの値を置き換えるキー変換装置、6はデータ処理装置
1の全体を制御する制御装置、7はソート処理後のデー
タを併合する併合処理装置、8はソート処理装置1にデ
ータを入力したり出力データをまとめるホスト計算機で
ある。
【0053】次に動作について説明する。ホスト計算機
8においてデータ処理の要求が発生すると、ホスト計算
機8は、キー変換情報、階層キー情報をデータ処理装置
1に送る。このうち、キー変換情報はキー変換装置5
に、また、階層キー情報は集計値レコード生成装置4に
各々設定される。これら設定が終了すると、ホスト計算
機8は、処理対象となるデータを連続的にデータ処理装
置1に送る。データ処理装置1は、データ群が送られて
くると、まず送られてくる個々のデータをキー変換装置
5に送り込む。
【0054】キー変換装置5は、送られてくるデータの
キーの内、置き換えが必要なキーの値を変換してその結
果を集計値レコード生成装置4に送り込む。キー変換装
置の内部の様子を図4に示す。51はキー変換テーブル、
52はレコードバッファ、53は制御装置である。キー変換
装置5は、まず送られてくる個々のデータを順にレコー
ドバッファ52に入れる。レコードバッファ52に入れたデ
ータに対し、ソートキーの部分を取り出し、これをキー
変換テーブル51上で検索して、対応する新しいキーを探
し、レコードバッファ52上のキーをこの値で置き換え
る。図6においては、例えば、レコードバッファ52上の
データのキー値が「千葉」であれば、その値は、「その
他」で置き換えられる。これにより、集計レベルの変更
が可能となる。キーの置き換えが行われたデータはレコ
ードバッファ52から取り出され、集計値レコード生成装
置4に送り出される。送られてくるデータに対してこの
操作が繰り返し行われる。以上の処理は制御装置53によ
り制御される。
【0055】集計値レコード生成装置4の構成例を図5
に示す。41はキーテーブル、42はレコードバッファ、43
は制御装置である。キーテーブル41は、集計に使用する
各ソートキー(複数)に対して、各々のとりうる値すべ
てを保持する。図5では、3つの集計用のソートキー
(地域名、コード、製品名)の取りうる値(各々V1
個、V2個、V3個)が設定されている。
【0056】集計値レコード生成装置4は、キーー変換
装置5から送られてくるデータに対してこれらデータに
対しては、データをレコードバッファ42に取り込み、こ
れにキーの数Kに対し、集計レベルを表すレベルキーと
してのK+1ビットのソートキー一致フィールドをキー
の直後に付加し、このフィールドを0として次のソート
処理装置2に送り出す。
【0057】すべてのデータが送り出されると、キーテ
ーブル41にあるソートキーの値のすべての組合わせにつ
いて集計値格納用レコードを生成し、上記ソートキーの
内最下位のソートキーから最上位のソートキーまで最下
位から順に例えば最大数と等価な識別子であるHigh
Valueにより置き換えて行き置き換える度に集計値
格納用レコードをレコードバッファ42に順に生成し、そ
の集計対象フィールド値を0とする。ここで、High
Value値は、他のいかなるキー値よりも大きい(降
順ソートの場合には最小値)値を用いる。この値は、こ
のキーレベルにおける集計対象フィールドに関しての合
計値を求めようとすることを示す。
【0058】図6にその処理フローをまとめて示す。先
ず、ソートキーの全ての組合せについて集計対象データ
の個数分の集計値フィールドを有する集計値格納用レコ
ードを生成する(ステップS1)。次に、集計値フィー
ルドの値を全て0とし(ステップS1)、ソートキーの
内最下位のソートキーから順にHighValueで置
き換え、置き換える度に集計値格納用レコードを生成す
る(ステップS3)。ここで、全てのソートキーをHi
ghValueで置き換えたか判定し(ステップS
4)、置き換えが完了していなければステップS3に戻
り、置き換えが完了した時点で全データをソートキーに
よりソートする(ステップS5)。
【0059】例えば、キーテーブル41が次の表10であ
り、
【0060】
【表11】
【0061】集計対象フィールドが2つであれば、次の
表11の組合わせが生成される。
【0062】
【表12】
【0063】ここで、*はHighValueを示す。
HighValueを含む組合わせは、以下の表12に示
す数だけ存在する。
【0064】
【表13】
【0065】次に、同様にK+1ビットのソートキー一
致フィールドをキーの直後に付加する。ソートキー一致
フィールドの値は以下に述べるように設定され、その後
データはソート処理装置2に送り出される。
【0066】ソートキーの全ての組み合わせにより生成
されたデータの場合は、ソートキー一致フィールドのK
+1番目のビットを1とし、他は0とする。HighV
alueとの組み合わせの場合は、一般に複数あるHi
ghValueの内の最も左のHighValueの存
在するフィールド番号に対応するソートキー一致フィー
ルドのビットを1とし、他は0とする。ここで、フィー
ルド番号は左から0、1、2、と順序付け、またソート
キー一致フィールドも同様に左から0、1、2、と順序
付けているものとする。
【0067】包括的な使用例として、例えば次の表13に
示すデータがキー変換装置5から入力され、
【0068】
【表14】
【0069】一方、キーテーブル41には上記と同様のソ
ートキーが格納されていた場合、集計値レコード生成装
置4からは以下の表14に示すデータが出力される。
【0070】
【表15】
【0071】以上の結果がソート処理装置2に送られ、
ソートが実行される。図2は、ソート処理装置2の内部
構成を表した図で、記憶装置22を搭載したソートプロセ
ッサ21が線型に接続されたパイプライン・マージソータ
であることを示している。
【0072】次に、ソート処理装置2についてその動作
の詳細を説明する。ソート処理装置2はホスト計算機8
から送られてくるデータの列を連続的に入力し、これを
指定された順序に並べ替えて、結果を再びホスト計算機
8に返す。ソート処理装置2は、ソートプロセッサ21及
びこれらソートプロセッサ群に各々付加される記憶装置
22を線形に接続して構成される。ソートプロセッサ21
は、各々先頭から第1段のソートプロセッサ、第2段の
ソートプロセッサ、第3段のソートプロセッサ等と呼ば
れる。第i段のソートプロセッサは、2i-1データ分の
容量の記憶装置22を各々有する。
【0073】動作の例として、ソート処理装置2に次の
表21に示す順にデータが入力されると、
【0074】
【表16】
【0075】まず先頭の第一段のソートプロセッサ21は
入力されたデータを二つづつ取り出し、これを並び替え
て次段のソートプロセッサ21に送り出す。次段のソート
プロセッサ21で二つづつにソートされた入力データは次
の表22のようになる。
【0076】
【表17】
【0077】ここで、1、3と入力されたデータは順序
が入れ代わり、31の順でソートされた2つのデータの
組みとなって出力されている。2段目のソートプロセッ
サは、この二つづつソートされたデータを入力し、これ
を二組づつ取り出し、併合して、4つづつソートされた
データ列を次段に送り出す。その結果は次の表23のよう
になる。
【0078】
【表18】
【0079】ここで、例えば82と31を併合すると8
321となる。第3段目のソートプロセッサは、この4
つづつにソートされたデータを入力し、これを二組づつ
取り出し、併合して、8つづつソートされたデータ列を
次段に送り出す。この結果は、次の表24のようになる。
【0080】
【表19】
【0081】第4段目のソートプロセッサ以降も同様な
処理を行う。ここで、図15に示すように、各段のソート
プロセッサ21は、前段のソートプロセッサ21がすべての
処理を終えない内に処理を開始することが可能であり、
これにより、データを連続的に入力すると若干の遅れ時
間を経てデータ入力と並列にソート結果が出力されるこ
とがわかる。
【0082】図3に、ソートプロセッサ21の詳細を示
す。ソートプロセッサ21は、前段のソートプロセッサ21
から送られてくるデータをデータ線215を通じて受け取
り、これを自身に接続されている記憶装置22に一旦格納
する。格納に際しては、そのアドレス制御において書き
込み用のアドレスレジスタMARW212が用いられる。
このようにして格納されたデータは読み出し用のアドレ
スレジスタMARL213及びMARR214により読み出さ
れ、比較器211に入力される。そして比較結果はデータ
線216を通じて次段のソートプロセッサ21に送り出され
る。以上の動作は、内部にある制御装置217により制御
される。
【0083】以上述べたソートプロセッサ21を有するソ
ート処理装置2により上記表14のデータはソートされて
以下の表15のようになる。
【0084】
【表20】
【0085】なお、ソート処理装置2は、同一のソート
キーを有するデータ群に対するソート結果は、その入力
順であることを前提としている。このため、このように
入力データがすべてソート処理装置2に送られた後に集
計値格納用のレコードを送り出すことで、各キーの組み
合わせにおいて、常に集計値格納用のレコードがデータ
のレコードよりも後に、つまり同一キーを有するレコー
ド群の最終レコードとなることが保証される。もし、ソ
ート処理装置2がこのような性質を持たない場合は、ソ
ートキーをソートキー一致フィールドも含めることとし
てソートを行えばよい。これにより、必ず生成したデー
タが入力された原データよりも後となることが保証され
る。
【0086】この例で明らかなように、同一キーを有す
るデータの切れ目には、ソートキー一致フィールドのい
づれかのビットが1となっており、また、このビット位
置により出力すべき集計結果の内容が指示されることが
わかる。
【0087】次に、集計処理装置3について説明する。
図7は集計処理装置3の詳細を示す。31は累積レジスタ
群、32は加算器群、33はレコードバッファ、34は集計制
御器である。31の累積レジスタ群は、キーの数Kと集計
対象フィールドの数Sに対し、(K+1)×S個あり、
また加算器も同数ある。加算器はAijにより示す。ここ
で、Aijは、i番めの集計処理対象フィールドに対する、
ソートキー一致フィールドのj番めのビットによる集計
値に対応する加算器である。
【0088】次に、集計処理装置3の動作について説明
する。処理に先立って、累積レジスタ群31はすべて0に
初期化される。ソート処理装置2または併合処理装置7
から送られてくるソート済みのデータは一つづつレコー
ドバッファ33に格納される。格納されたデータに対し、
集計制御器34は、まずそのソートキー一致フィールドを
参照する。
【0089】このソートキー一致フィールドの値がすべ
て0であれば、集計制御器34は全ての加算器32を動作さ
せる。加算器32は、対応する累積レジスタ値と、レコー
ドバッファ33上のデータの対応する集計対象フィールド
値を加え、この値を再び対応する累積レジスタに格納す
る。当該レコードは出力しない。
【0090】このソートキーフィールドの第B(B=
0,...,K)番めのビットが1であれば、このデータは
集計結果保持用のデータである。S個のAiB(i=0,
..., S−1)の累積レジスタ群の内容を、レコードバ
ッファ上の対応するフィールドに格納する。次に、これ
ら累積レジスタの値を0にクリアする。当該レコードを
出力する。尚、ソートキー一致フィールドは取り去られ
て出力される。
【0091】ここで、以上述べた動作を処理フローとし
て図8のフローチャートに示してある。図8において、
先ず、K個のソートキーの全ての組合せについて集計値
格納用レコードを生成する(ステップS11)。K+1
ビットのソートキー一致フィールドをソートキーの全て
の組合せについてそのデータの直後に付加し(ステップ
S12)、ソートキー一致フィールドの最下位のビット
のみを1として他のビットは0とする(ステップS1
3)。次に、ソートキーの内最下位のソートキーから順
にHighValueで置き換え、集計値格納用レコー
ドを生成し、置き換えられたHighValueの内最
も上位に位置するHighValueの位置に相当する
ソートキー一致フィールドのビット位置のビットのみを
1とし他は0とする(ステップS14)。ここで、全て
のソートキーをHighValueで置き換えたか判定
し(ステップS15)、置き換えが完了していないとき
はステップS14に戻り、置き換えが完了した時点で全
データをソートキーによりソートする(ステップS1
6)。ソートキー一致フィールドのいずれかのビットが
1のデータは、対応するソートキーの集計レベルにおけ
る集計を行って(ステップS17)処理を終了する。
【0092】以上述べた集計処理を終了した処理結果の
入力データと出力データ及び累積レジスタ群のデータ格
納状況を図9に示す。
【0093】次に、データ量がソート処理装置2の容量
を超える場合を考える。この場合には、データ処理装置
1は2つの段階を経て処理を実行する。
【0094】まず、キー変換装置5→集計値レコード生
成装置4→ソート処理装置2→集計処理装置3の順でデ
ータが送られ、上述の処理がソート処理装置2の容量分
毎に行われる。例えば、送られてくるデータが1GB、
ソート処理装置の容量が128MBであれば、上述の処
理が128MB毎に行われ、部分的に集計された8つの
結果が生成される。これら中間結果においては上記のキ
ーの変換、集計値格納レコード、ソートキー一致フィー
ルド等がそのまま出力される。これら結果はホスト計算
機8に一旦返され、ホスト計算機8の磁気ディスク(図
示せず)等に格納される。
【0095】上記第1の段階で生成された中間結果は、
ホスト計算機8から再度データ処理装置1へ送られ、集
計値レコード生成装置4→併合処理装置7→集計処理装
置3の順でデータが送られる。中間結果は集計されてい
るが、これを改めて原データと見做し、集計値レコード
生成装置4で上述の処理が施された後、併合処理装置で
最終のソート処理がなされる。その後、その結果は集計
処理装置3により集計される。
【0096】実施の形態2.この発明の実施の形態2に
よるデータ処理装置は、データ処理装置を複数台使用す
る場合である。データ処理装置1を複数台用いて、デー
タ処理装置1内部のソート処理装置2の容量を超えるデ
ータに対する処理の実施例について説明する。本実施例
では、ソート処理装置2の容量がソート可能なレコード
の数に換算してNである場合、M台のデータ処理装置1
を用いて(N−1)×M+1個までのデータを処理する
ことができる。通常、Nは数十万から数百万個あるた
め、この値は事実上MN個とみなすことができる。
【0097】図10に実施例の動作を示す。図10では4台
のデータ処理装置1を用いて、一台のデータ処理装置1
のソート処理装置2の容量の4倍のデータを処理する様
子を示している。この処理は2つの段階を経て実行され
る。
【0098】図10(a)において、処理が開始される
と、ホスト計算機8は、処理すべきデータを4分割し、
これら1/4づつのデータを並列に4台のデータ処理装
置に入力する。但し、ソート処理装置2のソート可能な
容量がデータ数にしてNの場合、N−1個までのデータ
を入力する。これにより、(N−1)×M個のデータが
データ処理装置1に入力される。
【0099】上記第1の段階の処理後、図10(b)にお
いて、ホスト計算機8は、最後のデータを先頭のデータ
処理装置1に入力する。先頭のデータ処理装置1は、こ
れによりN個のデータが入力されたため、通常と同じ処
理を行ってソート結果、あるいは集計処理装置による集
計結果を出力する。これら結果は最終データ入力直後か
ら出力が順次開始される。1台のデータ処理装置1を用
いる場合にはこの結果はホスト計算機に返されて処理は
終了するが、複数台の場合には、この結果がそのまま次
のデータ処理装置1に入力される。
【0100】次のデータ処理装置1は、N−1個までの
データが入力された状態であり、最終の1個のデータ待
ちの状態にある。これに対し、最終の1個のデータの代
わりに、前のデータ処理装置1からのソート結果あるい
は集計結果が入力されてくる。一般に、ソート処理装置
2は、最終データの代わりにソートされた複数のデータ
を入力してもソート処理が可能である。なぜならば、次
の表16に示す先の例、
【0101】
【表21】
【0102】において、最後のデータ「4」の代わり
に、「842」なるソート済みのデータ列を入力した場
合で考えると次の表17のようになる。
【0103】
【表22】
【0104】ソート処理装置2の最初のソートプロセッ
サ21は、8と2、1と3、5と7を各々併合し、次のソ
ートプロセッサ21に「82」、「31」、「75」を出
力するところは同じである。「6」と「842」に関し
ては、以下のように動作する。まず、「6」と「8」が
記憶装置22に一旦格納され、これらが通常と同様に比較
器211に送られて比較される。その結果「8」が出力
される。通常は、「8」が出力されると「6」が出力さ
れてこのサイクルは終了するが、この場合、「8」に続
くデータ入力が引き続き「42」と存在する。これは例
えば、4段目のソートプロセッサ21において、当初次の
表18に示すデータ列が入力されると、
【0105】
【表23】
【0106】比較併合が開始されて、「9996」の
「999」の部分及び「9842」の「9」が比較によ
り出力され、次に「8」が出力された時点の状況と同様
である。ソートプロセッサ21はソート処理装置2におけ
る自身の位置とは無関係に動作する。従ってソートプロ
セッサ21はこの場合も同様に動作し、結局次の表19の出
力を行う。
【0107】
【表24】
【0108】以下2段目、3段目のソートプロセッサも
同様に動作して、以下の表20の結果となりソートが可能
である。
【0109】
【表25】
【0110】これらソートされた結果に対しては、集計
処理が可能である。以上により、2台目のデータ処理装
置1に、1台めのデータ処理装置1からの処理結果を入
力し、全体としてN+N−1個のデータの処理が上述の
データ処理装置1の実施の形態1を変更することなく可
能であることを説明した。
【0111】以下同様に、2台目の処理結果のデータを
3台目に入力し、3台目の処理結果を4台目のデータ処
理装置1に入力することで、4台のデータ処理装置によ
る大規模なデータ処理が可能となる。この様子を図11
に示す。
【0112】上記実施の形態2の動作を図12の処理フ
ローに示す。図12において、処理可能な容量分のデー
タがN個のデータ処理装置をM台接続する(ステップ2
1)。次に、M台のデータ処理装置にそれぞれN−1個
づつのデータを同時に入力し(ステップ22)、残りの
データ1個を1番目のデータ処理装置に入力する(ステ
ップ23)。このデータ処理装置の処理結果を次のデー
タ処理装置に入力する(ステップ24)。次に、データ
処理装置はM台目となったかを判定し(ステップ2
5)、M台目に至っていないときはステップ24に戻
り、M台目となったときはM台目の処理結果を出力する
(ステップ26)。
【0113】
【発明の効果】この発明によるデータ処理装置及びデー
タ処理方法は、以上述べたように構成されているので以
下に述べる効果を奏する。
【0114】集計レベルを表すレベルキーを付加し、レ
ベルキーの表す集計レベルに対応する累積レジスタの内
容を出力することにより、大量データに対する階層的な
集計処理が高速に実行可能となる。
【0115】また、ソートキーを予め指定した別のソー
トキーと置き換えるように構成したので、集計レベルを
容易に変更することが可能となる。
【0116】さらに、処理可能な容量を超えるデータが
入力されたときそのデータを処理可能な容量分に分割
し、それらの容量分のデータを併合する併合処理装置を
備えたことにより、処理可能な容量を超えるデータに対
する階層的な集計処理が高速に実行可能となる。
【0117】また、処理可能な容量分のデータをソート
処理後部分集計処理を実施後併合するように構成したの
で、より高速に階層的な集計処理が実行可能となる。
【0118】さらにまた、データ処理装置を複数台用い
る構成としたことにより、さらに大量のデータを高速に
階層的な集計処理を行うことが可能となる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1を示すデータ処理装
置の構成図である。
【図2】 この発明の実施の形態1を示すソート処理装
置の構成図である。
【図3】 この発明の実施の形態1を示すソートプロセ
ッサの構成図である。
【図4】 この発明の実施の形態1を示すキー変換装置
の構成図である。
【図5】 この発明の実施の形態1を示す集計値レコー
ド生成装置の構成図である。
【図6】 この発明の実施の形態1を示す集計値レコー
ド生成装置の動作を示すフローチャートである。
【図7】 この発明の実施の形態1を示す集計処理装置
の構成図である。
【図8】 この発明の実施の形態1を示す集計処理装置
の動作を示すフローチャートである。
【図9】 この発明の実施の形態1を示す集計結果の状
態図である。
【図10】 この発明の実施の形態2を示すシステム構
成図である。
【図11】 この発明の実施の形態2を示すデータ処理
のタイミングチャートである。
【図12】 この発明の実施の形態2を示すシステム構
成の動作を示すフローチャートである。
【図13】 従来例のデータ処理装置を示す構成図であ
る。
【図14】 従来例のデータ処理装置の処理形態を示す
構成図である。
【図15】 従来例のデータ処理装置の処理内容を示す
タイミングチャートである。
【図16】 従来例のデータ処理装置の併合処理装置の
動作を示すフローチャートである。
【図17】 従来例のデータ処理装置の集計処理装置の
動作を示すフローチャートである。
【符号の説明】
1 データ処理装置、2 ソート処理装置、3 集計処
理装置、4 集計値レコード生成装置、5 キー変換装
置、7 併合処理装置、31 累積レジスタ。

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 K個のソートキーを含む入力データに集
    計レベルを表すレベルキーを付加し上記ソートキーの全
    ての組合せについて更に集計レベルごとに上記入力デー
    タと同一形式のデータを生成しそのデータに上記レベル
    キーを付加する集計値レコード生成装置、それらの全デ
    ータを上記ソートキーによりソートするソート処理装
    置、ソートされたデータの集計対象データを個々の集計
    対象データ別にK+1個の累積レジスタにそれぞれの累
    積レジスタごとに集計し上記レベルキーの表す集計レベ
    ルに対応する上記累積レジスタの内容を出力する集計処
    理装置を備えたことを特徴とするデータ処理装置。
  2. 【請求項2】 上記入力データのソートキーを予め指定
    した別のソートキーと置き換えその入力データを上記集
    計値レコード生成装置に入力するキー変換装置を備えた
    ことを特徴とする請求項1記載のデータ処理装置。
  3. 【請求項3】 上記データ処理装置にて処理可能な容量
    を超えるデータが入力されたときその入力データの処理
    可能な容量分のデータをソート処理後集計処理を行わず
    記憶装置に格納する分割処理を繰り返し行い上記入力デ
    ータの上記分割処理を全て終了後それらの容量分のデー
    タを併合する併合処理装置を備えたことを特徴とする請
    求項1又は請求項2に記載のデータ処理装置。
  4. 【請求項4】 上記データ処理装置にて処理可能な容量
    を超えるデータが入力されたときその入力データの処理
    可能な容量分のデータをソート処理後部分集計処理を実
    施後記憶装置に格納する分割処理を繰り返し行い上記入
    力データの上記分割処理を全て終了後それらの容量分の
    データを併合する併合処理装置を備えたことを特徴とす
    る請求項1又は請求項2に記載のデータ処理装置。
  5. 【請求項5】 ソートキーを含む入力データに集計レベ
    ルを表すレベルキーを付加し上記ソートキーの全ての組
    合せについて上記入力データと同一形式のデータを生成
    しそのデータに上記レベルキーを付加するステップ、上
    記ソートキーの内最下位のソートキーから最上位のソー
    トキーまで最下位から順に最大数又は最小数と等価な識
    別子により置き換えて行き置き換える度に上記レベルキ
    ーを付加した入力データと同一形式のデータを生成する
    ステップ、それらの全データを上記ソートキーによりソ
    ートするステップからなるデータ処理方法。
  6. 【請求項6】 K個のソートキーを含む入力データに集
    計レベルを表すK+1ビットのレベルキーを付加し上記
    ソートキーの全ての組合せについて上記入力データと同
    一形式のデータを生成しそのデータに上記レベルキーを
    付加するステップ、上記入力データに対しては上記レベ
    ルキーの全ビットを0とし上記ソートキーの全ての組合
    せについて上記入力データと同一形式のデータを生成し
    たデータに対しては上記レベルキーの最下位のビットの
    みを1として他のビットは0とし最大数又は最小数と等
    価な識別子により置き換えて行き置き換える度に上記入
    力データと同一形式のデータを生成したデータに対して
    は置き換えられた上記識別子の内最も上位に位置する識
    別子の位置を最上位から数えた順番に相当する上記レベ
    ルキーのビット位置のビットのみを1とし他のビットは
    0とするステップ、それらの全データを上記ソートキー
    によりソートするステップ、上記レベルキーのいずれか
    のビットが1のデータに対しては対応するソートキーの
    レベルにおける集計値を出力するステップからなるデー
    タ処理方法。
  7. 【請求項7】 K個のソートキーを含む入力データに集
    計レベルを表すレベルキーを付加し上記ソートキーの全
    ての組合せについて更に集計レベルごとに上記入力デー
    タと同一形式のデータを生成しそのデータに上記レベル
    キーを付加する集計値レコード生成装置、それらの全デ
    ータを上記ソートキーによりソートするソート処理装
    置、ソートされたデータの集計対象データを個々の集計
    対象データ別にK+1個の累積レジスタにそれぞれの累
    積レジスタごとに集計し上記レベルキーの表す集計レベ
    ルに対応する上記累積レジスタの内容を出力する集計処
    理装置を備えたことを特徴とするデータ処理装置を使用
    するデータ処理方法において、M台の上記データ処理装
    置に1台の処理可能な容量分のデータがN個のとき(N
    −1)×M+1個の処理データの内N−1個づつをM台
    の上記データ処理装置に同時に入力し、この入力が完了
    した後残りの1個のデータを1番目のデータ処理装置に
    入力しこのソート結果を2番目のデータ処理装置に入力
    し同様の処理を繰り返すことによりM番目のデータ処理
    装置の処理結果を得ることを特徴とするデータ処理方
    法。
JP31503196A 1996-11-26 1996-11-26 データ処理装置及びデータ処理方法 Expired - Fee Related JP2959497B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31503196A JP2959497B2 (ja) 1996-11-26 1996-11-26 データ処理装置及びデータ処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31503196A JP2959497B2 (ja) 1996-11-26 1996-11-26 データ処理装置及びデータ処理方法

Publications (2)

Publication Number Publication Date
JPH10161991A true JPH10161991A (ja) 1998-06-19
JP2959497B2 JP2959497B2 (ja) 1999-10-06

Family

ID=18060599

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31503196A Expired - Fee Related JP2959497B2 (ja) 1996-11-26 1996-11-26 データ処理装置及びデータ処理方法

Country Status (1)

Country Link
JP (1) JP2959497B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8122064B2 (en) 2005-06-30 2012-02-21 Fujitsu Limited Computer program, method, and apparatus for data sorting

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8122064B2 (en) 2005-06-30 2012-02-21 Fujitsu Limited Computer program, method, and apparatus for data sorting

Also Published As

Publication number Publication date
JP2959497B2 (ja) 1999-10-06

Similar Documents

Publication Publication Date Title
JP2000187668A (ja) グループ化方法と重複排除方法
US8032499B2 (en) Compression of tables based on occurrence of values
US5842207A (en) Method for storing records of a distributed database by plural processors to provide a host processor with sorted records belonging to one of a plurality of key sections
WO2006126467A1 (ja) マルチプロセッサシステム及びその情報処理方法
JP2001344558A (ja) 自動集計方法、自動集計装置および記録媒体
EP0961966B1 (en) N-way processing of bit strings in a dataflow architecture
US20020065793A1 (en) Sorting system and method executed by plural computers for sorting and distributing data to selected output nodes
JPH09245043A (ja) 情報検索装置
JP2959497B2 (ja) データ処理装置及びデータ処理方法
JP3413866B2 (ja) 情報検索装置
US20070282808A1 (en) Search processing method and apparatus
JPH021059A (ja) 連想検索システム
WO2005043409A1 (ja) 表形式データの結合方法、結合装置およびプログラム
US6182071B1 (en) Sorting and summing record data including generated sum record with sort level key
JPH0855013A (ja) ソート処理方法および装置
JPH08235033A (ja) オブジェクト指向データベース管理システムにおける結合演算方式
JP3534471B2 (ja) マージソート方法及びマージソート装置
JP3151820B2 (ja) 相対キーを利用したカウント分類法によるソート方式
JP2923952B2 (ja) マージ処理方法
JPH047758A (ja) ファイル処理装置
JPH06162096A (ja) レコード検索方法
WO2023191943A1 (en) Methods and systems for performing a vectorized delete in a distributed database system
JPH05307571A (ja) 情報検索システム
JPH086761A (ja) ソート処理装置及びソート処理方法
JPH0512337A (ja) ハツシユ法を用いたデータ検索方式

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070730

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080730

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090730

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees