JPH117402A - データ処理方法 - Google Patents

データ処理方法

Info

Publication number
JPH117402A
JPH117402A JP9159550A JP15955097A JPH117402A JP H117402 A JPH117402 A JP H117402A JP 9159550 A JP9159550 A JP 9159550A JP 15955097 A JP15955097 A JP 15955097A JP H117402 A JPH117402 A JP H117402A
Authority
JP
Japan
Prior art keywords
data
load
definition
time
mddb
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
JP9159550A
Other languages
English (en)
Inventor
Yoshiaki Takeda
義聡 竹田
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 JP9159550A priority Critical patent/JPH117402A/ja
Publication of JPH117402A publication Critical patent/JPH117402A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 データをロードする先のMDDBに最適な順
番でデータをロードすることができ、また、データ構造
に関する付加情報を持たない大量のデータからMDDB
のデータ定義に必要な情報を容易に取り出すことができ
るデータ処理方法を得る。 【解決手段】 変換ソフトウェア4は、RDB1または
MDDB2またはMDDB3を参照し、MDDB3にデ
ータをロードするために必要なデータ定義ファイル6を
生成し、高速ソート装置8は次元の定義に従ってデータ
をソートし、MDDB3にデータをロードする際の効率
を向上させる。この際、データ処理装置7は、変換ソフ
トウェア4または高速ソート装置8の機能の一部により
実現される処理装置自身とMDDB3の性能測定装置に
より、データ変換およびMDDB3へのデータロードの
性能を測定し、試行錯誤によりデータを最も高速にMD
DB3へロードする次元の定義順序を探す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、データ処理装置
を備えた計算機システムの利用に関わり、特に関係デー
タベースまたは多次元データベースから、別の多次元デ
ータベースへのデータ形式の転換およびデータ転送の方
法に関するものである。
【0002】
【従来の技術】一般に、データベースは個別に生成され
ることが多く、それらのデータベースは整理統合して単
一の多次元データベースとすることによりOLAP、O
LTPにおいて利用することが可能となる。図1は、従
来技術の例である。関係データベース(RDB)1また
は多次元データベース(MDDB)2のデータを別のM
DDB3にロードする場合、専用の変換ソフトウェア4
を用いて、MDDB3にデータをロードするためのデー
タの中間ファイル5およびデータ形式の定義ファイル6
を生成する。
【0003】多次元データベースにおいては、あらかじ
め集計データを含んだ形でデータが蓄積されているの
で、多次元データベースにいったんデータを蓄積してし
まえば、データの柔軟で多角的な分析を高速に行なうこ
とができる。また、例えば特平8-137967では、
RDBのような2次元の表形式で表されたデータから多
次元データベースのような多次元の表を生成する方法が
示されている。
【0004】図3はある会社で販売している製品の、日
本各地での売上高を示す。縦軸は製品の売れた場所、横
軸は売れた時期を示す。図において、「売上高」のデー
タを表すのは、表の中身の数字である。これに対して、
「Feb96」や「東京」はそれぞれ各売上高データの表に
おける位置を示す情報である。両者を区別するため、本
発明では図3の「売上高」のような表の中身に当たる情
報を「データ値」と呼び、図3の「Feb96」や「東京」
などを「次元の要素」と呼ぶことにする。
【0005】図4は、図3を地方ごとに売上高を集計し
たものである。これは、図21に示す次元の構造におい
て、「東京」を直接含む階層から、1つ上のレベルの
「関東」などを含む階層に視点を移動したものと考える
ことができる。このように、次元の要素を階層構造の1
つ上のレベルで集計して表示するような操作は、MDD
Bにおいては一般に「ロールアップ」と呼ぶ。
【0006】図6は、図5で関東地方だけを詳しく表示
したものである。このように次元の要素を階層構造の1
つ下のレベルで詳しく表示するような操作は、MDDB
においては「ドリル・ダウン」と呼ぶ。図3〜5は各地
域での各種製品の合計の売上高を示している。これに対
して、図6は、製品毎の売り上げを詳しく分析するため
に、表に表示される製品名を切り替えようとしていると
ころである。表示されている表は洗濯機の売り上げを示
す。この例では、表に対して垂直な方向に、製品の種類
を示す次元の軸があると、仮想的に考えることができ
る。図3〜6の一連の操作は、販売地域、販売時期、製
品の種類、の3次元からなるデータベースを操作してい
ると見なすことができる。図22に、図3〜6のMDD
Bにおける、「製品の種類」の次元の軸の階層構造を示
す。
【0007】図7は、図4における、製品が売れた地域
の軸(縦軸)と売れた製品名の軸(図に垂直な方向にあ
る「製品の種類」の次元)を入れ換えたものである。ま
た、MDDBではこの他に、必要に応じて、表やグラフ
に表示する次元の数を、もとのデータの許す範囲で増や
したり減らしたりする操作を提供する。これらの操作は
一般的に「次元に対する操作」とみなすことができる。
【0008】MDDBでは、以上述べたような「ロール
アップ」「ドリルダウン」「次元に対する操作」などを
基本操作として、データを多角的かつ柔軟に分析する方
法を提供している。従来の代表的なデータベースである
RDBで同じような処理を実現しようとすると、一般
に、RDBがサポートするデータ問い合わせ言語である
SQLの Group By 文や結合演算(join)など計算量の
多い命令を含む複雑なプログラムを作る必要があった。
これに対し、MDDBはデータの内部表現やデータベー
スマネジメントシステムが提供するデータ参照機能が
「ロールアップ」「ドリルダウン」「次元に対する操
作」に適した実現方式になっている。いったんデータを
MDDBにロードすると、データ操作の容易さや効率の
点で、MDDBはRDBなどの既存のデータベースに対
して優れていると言える。
【0009】従来技術では、上記のようなMDDBの特
徴を利用するためRDBのデータをMDDBにおいて使
用するためにロードする場合、一般には同じデータをR
DBにロードするよりも時間がかかる。これはまず、M
DDBにおいては、RDBのデータにはない集計データ
の計算に時間がかかるためである。また、もし仮にRD
Bでも同等の集計計算をする場合を想定したとしても、
データベース処理全体(データロードの時間に集計の計
算時間を加えたもの)はMDDBの方が不利となる場合
がある。
【0010】これは、MDDBのサイズは最悪のケース
でデータの件数を次元の次数だけ乗じたものとなるた
め、元になるRDBに蓄積されているデータの件数が多
いと、MDDBにロードすべきデータファイルの大きさ
とRDBのデータファイルの大きさの比がMDDBの方
が大きくなることがあるからである。一般に、MDDB
の主な用途であるデータの多角的分析の実施において、
分析の精度を上げるために、分析対象のデータ件数を増
やしたり、分析の視点の数を増やしたりするほど、MD
DBの処理全体はRDBの処理全体に対して性能の点で
は不利となることが多くなる。
【0011】以上のような事情で、頻繁にデータおよび
集計結果を更新するような用途にMDDBを適用するの
は難しかった。特開平8-137967もデータ定義を
変換する際に処理効率を向上させる技術については言及
していない。また、多次元の表の形式になったデータベ
ースへ大量のデータをロードする際の処理を高速化する
技術についても触れていない。また、種類の異なるMD
DBの間でデータを交換したいという要望もあったが、
これも日常頻繁に行なうには従来の技術ではデータロー
ドの性能が十分でなかった。例えば、あるMDDBでは
GUI(グラフィカル・ユーザ・インターフェース)で
データ分析操作を提供するために、次元の階層構造のデ
ータとして、各次元の要素名の他に、自動的にアルファ
ベットや数字からなる索引データを割り当てる。いっぽ
う別のMDDBでは、データ分析操作のGUIはMDD
B本体では提供せず、MDDBサーバと連係して動作す
るクライアントソフトウェアまたはミドルウェアとして
提供するため、このような索引データは定義されない。
【0012】
【発明が解決しようとする課題】従来のデータ処理方法
は以上の様に構成されているので、次元の定義方法が異
なる各MDDBの間でデータを交換するには、データ定
義(次元の要素の定義、次元内の階層構造の定義など)
の変換を伴うため、データをロードする先のMDDBに
最適な順番でデータをロードするのが難しかった。ま
た、企業活動のグローバル化と競争の激化にともない、
MDDBの特徴であるデータの分析機能を、企業活動の
記録など、従来は量が多過ぎてデータベース化するのに
適していなかったデータに適用して、より詳しい分析を
行ないたいという要望が高まっているが、従来の技術で
はこの要望に応えるのが難しかった。このようなデータ
は、一般にはデータ構造に関する付加情報を持たないの
で、大量のデータからMDDBのデータ定義に必要な情
報を取り出すためには、MDDB専用のデータ定義言語
によるプログラムを作成する必要があるが、この作業が
繁雑だったのと、実行のために計算機資源を大量に占有
し、他の計算機業務の妨げとなっていた等の問題点があ
った。
【0013】この発明は、上記のような問題点を解消す
るためになされたもので、データをロードする先のMD
DBに最適な順番でデータをロードすることができ、ま
た、データ構造に関する付加情報を持たない大量のデー
タからMDDBのデータ定義に必要な情報を容易に取り
出すことができるデータ処理方法を得ることを目的とす
る。
【0014】
【課題を解決するための手段】この発明に係るデータ処
理方法は、ロード元である関係データベース又は第1の
多次元データベースからロード先の第2の多次元データ
ベースへデータをロードするシステムにおいて、上記ロ
ード先のデータ定義を参照し上記データを構成する複数
の次元の要素の構成順を組み替えるステップ、上記各次
元の要素順に上記データをソートし上記第2の多次元デ
ータベースへ上記データをロードするものである。
【0015】また、ロード元である関係データベース又
は第1の多次元データベースからロード先の第2の多次
元データベースへデータをロードするシステムにおい
て、上記ロード元のデータ定義を参照し上記データを構
成する複数の次元の要素の構成順を組み替えるステッ
プ、組み替えた構成順においてサンプルデータによりロ
ード時間を測定するステップ、上記構成順を組み替えて
上記測定を繰り返すことにより上記ロード時間が最小と
なる構成順を上記ロード先のデータ定義として生成する
ステップ、上記ロード先のデータ定義に基づき各次元の
要素順に上記データをソートし上記第2の多次元データ
ベースへ上記データをロードするステップからなるもの
である。
【0016】さらに、ロード元である関係データベース
又は第1の多次元データベースからロード先の第2の多
次元データベースへデータをロードするシステムにおい
て、上記ロード元のデータ定義を参照し上記ロード先の
データ定義を対話的に設定するステップ、設定したデー
タ定義に基づく要素の構成順のサンプルデータによりロ
ード時間を測定するステップ、上記構成順を組み替えて
上記測定を繰り返すことにより上記ロード時間が最小と
なる構成順を上記ロード先のデータ定義として生成する
ステップ、上記ロード先のデータ定義に基づき各次元の
要素順に上記データをソートし上記第2の多次元データ
ベースへ上記データをロードするステップからなるもの
である。
【0017】また、ロード元である関係データベース又
は第1の多次元データベースからロード先の第2の多次
元データベースへデータをロードするシステムにおい
て、フラット形式のサンプルデータを上記第2の多次元
データベースへロードする第1の時間を測定するステッ
プ、そのフラット形式のサンプルデータを用いて上記第
2の多次元データベースにおいてキューブ形式のデータ
を生成する第2の時間を測定するステップ、上記フラッ
ト形式のサンプルデータを用いて上記関係データベース
又は第1の多次元データベースにおいてキューブ形式の
データを生成する第3の時間を測定するステップ、その
キューブ形式のデータを上記第2の多次元データベース
へロードする第4の時間を測定するステップ、上記第1
の時間と上記第2の時間の合計時間と上記第3の時間と
上記第4の時間の合計時間とを比較し上記データをフラ
ット形式で上記第2の多次元データベースへロードする
かキューブ形式のデータを生成した後上記第2の多次元
データベースへロードするかを上記合計時間の少ない方
に決定するステップ、この決定結果に基づき上記第2の
多次元データベースへ上記データをロードするステップ
からなるものである。
【0018】さらにまた、データ構造に関する付加情報
を有しないデータレコード群からユーザが指定する区切
り文字を検出することにより上記データレコードのフィ
ールドの値を抽出するステップ、抽出したフィールドの
値に基づく要素の構成順のサンプルデータによりロード
時間を測定するステップ、上記構成順を組み替えて上記
測定を繰り返すことにより上記ロード時間が最小となる
構成順をロード先のデータ定義として生成するステッ
プ、上記ロード先のデータ定義に基づき各次元の要素順
に上記データをソートし多次元データベースへ上記デー
タをロードするステップからなるものである。
【0019】また、上記データレコード群は可変レコー
ド長のレコードを単位とするものであってもかまわな
い。
【0020】さらに、データ構造に関する付加情報を有
しないデータレコード群からユーザが指定する区切り文
字を検出することにより上記データレコードのフィール
ドの値を抽出するステップ、抽出したフィールドの値と
ロード先のデータ定義とを比較し利用可能なデータ定義
を再利用することにより新たにロード先のデータ定義を
生成するステップ、その新たなデータ定義に基づく要素
の構成順に上記データレコード群を組み替えるステッ
プ、上記新たなデータ定義に基づき各次元の要素順に上
記データをソートし多次元データベースへ上記データを
ロードするステップからなるものである。
【0021】また、ロード元のデータを定期的に監視し
上記データの更新を検出したとき上記データを適正に処
理後ロードするものである。
【0022】
【発明の実施の形態】
実施の形態1.図1はこの発明の実施の形態1であるデ
ータ処理方法を実施するためのデータベースシステムの
構成を示すもので、図において、1は関係データベース
(RDB)、2は多次元データベース(MDDB)であ
り、これらのデータを別の多次元データベース(MDD
B)3にロードする場合、バスにより接続された専用の
付加プロセッサであるデータ処理装置7を経由させるこ
とによりMDDB3にロード可能なデータ形式に変換す
るものである。
【0023】このデータ処理装置7は、専用の変換ソフ
トウェア4を用いることにより、MDDB3にデータを
ロードするためのデータの中間ファイル5およびデータ
形式の定義ファイル6を生成する。通常、変換ソフトウ
ェア4、中間ファイル5、データ形式の定義ファイル6
はいずれもデータ処理装置7の上に実現されるが、シス
テム設計上の都合によっては、RDB1、MDDB2、
MDDB3のいずれかを構成する計算機の上に実現して
もよい。また、データ処理装置7と、RDB1、MDD
B2、MDDB3のいずれかを構成する計算機とが協調
して動作することにより実現するようにしてもよい。
【0024】定義ファイル6は、データ定義プログラム
から構成され、例えば、 CREATE TABLE 表1 { 次元1 CHAR(10), 次元2 CHAR(4), 次元3 DATE, データ INT(32) ); CREATE CATEGORY 表1.階層1 ( //次元1の階層構造の定義 //図21の構造に相当 レベル2 CHAR(10), レベル1 CHAR(10), レベル0 CHAR(10) ); INSERT CATEGORY INTO 表1.階層1( レベル2 VALUES ( ’全国’ ’’ ), レベル1 VALUES ( ’関東’ ’全国’, ’中部’ ’全国’, ’近畿’ ’全国’, ’九州’ ’全国’ ), レベル0 VALUES ( ’東京’ ’関東’, ’鎌倉’ ’関東’, ’静岡’ ’中部’, ’名古屋’ ’中部’, ’神戸’ ’近畿’, ’伊丹’ ’近畿’, ’熊本’ ’九州’, ’長崎’ ’九州’, ) ); 以上のように表される。
【0025】また、変換ソフトウェア4は、高速ソート
装置8を含むデータ処理装置7のハードウェアを管理す
るソフトウェアを含む。必要に応じてMDDB3および
データ処理装置7自身の性能を測定するソフトウェアを
含んでもよい。あるいは、この性能測定はRDB1、M
DDB2、MDDB3のいずれかを構成する計算機のハ
ードウェアまたはソフトウェアの一部として実現しても
よい。また、データ処理装置7と、RDB1、MDDB
2、MDDB3のいずれかを構成する計算機とが協調し
て動作することにより実現するようにしてもよい。
【0026】データ処理装置7において、変換ソフトウ
ェア4は、RDB1またはMDDB2またはMDDB3
を参照し、MDDB3にデータをロードするために必要
なデータ定義ファイル6を生成し、高速ソート装置8は
次元の定義に従ってデータをソートし、MDDB3にデ
ータをロードする際の効率を向上させる。この際、デー
タ処理装置7は、必要に応じて、変換ソフトウェア4ま
たは高速なソート装置8の機能の一部により実現される
処理装置自身とMDDB3の性能測定装置により、デー
タ変換およびMDDB3へのデータロードの性能を測定
し、試行錯誤によりデータを最も高速にMDDB3へロ
ードする次元の定義順序を探す。
【0027】通常、MDDBの実現においては、補助記
憶装置(ハードディスク)の内部にデータ値を格納する
ための領域をあらかじめ確保する。この領域は、仮想的
な多次元の箱とみなすことができる。この箱の各次元
は、MDDBにおけるデータの見方の変換を容易にする
ために、あらかじめ各次元の要素の値の順に記憶領域を
確保する。このため、データがそれぞれの次元において
この箱の各次元軸上の要素の値の順にソートされている
と、記憶装置への余分なアクセスや空回りなどがなくな
りデータロード時間が短縮される。この際、MDDBの
主な用途であるデータの多角的分析の実施において、分
析の精度を上げるために、分析対象のデータ件数を増や
したり、分析の視点の数を増やしたりするためには、大
量のデータを高速に集計してロードする必要がある。実
施の形態1においては、この集計時間およびデータロー
ド時間を短縮することにより、より多くのデータを対象
として分析したり、分析の頻度を上げたりすることが可
能になる。
【0028】図8は、図3〜7で用いたMDDBに格納
されたデータの例の、ロード先MDDBのデータ表現を
表す。ここで、図の最上段に示されている、販売時期を
表すフィールド10、製品の種類を表すフィールド11、販
売地域を表すフィールド12はそれぞれロード先での「販
売時期」「製品の種類」「販売地域」の各次元に対応し
ている。枠で囲まれた部分はデータレコードを示し、各
次元の下にあるのがそのデータレコードにおける次元の
要素、データを表すフィールド13の数字はデータ値とし
ての売上高を示す。また、この例では、データレコード
の内部のフィールドは「販売時期」「商品の種類」「販
売地域」「売上高(データ値)」の順に並んでいるが、
この順序を次元の定義の順序と呼ぶ。この次元の定義の
順序は、定義ファイル6のデータ定義プログラムにより
設定されている。
【0029】通常、MDDBへのデータロードでは、ロ
ードすべきデータの順序やデータレコードのフィールド
の位置が、かならずしも図8に示すようなロード先MD
DBのデータ表現どおりに並んでいるとは限らない。こ
の様子を図9に示す。このとき、図3〜7の例のMDD
Bを実現するためには、ロード元のデータ14をロード先
MDDBにロードする際に図9の配置から図10の配置
に並べかえる必要がある。具体的には、ロード元データ
で販売時期を表すフィールド16を販売時期を表すフィー
ルド10に、ロード元データで製品名を表すフィールド15
を製品名を表すフィールド11に、ロード元データで販売
地域を表すフィールド17を販売地域を表すフィールド12
に、ロード元データでデータ(売上高)を表すフィール
ド18をデータ(売上高)を表すフィールド13に、それぞ
れ対応させるよう、それぞれのデータレコードについて
データフィールドの順序を並べ替えてロードする必要が
ある。
【0030】データ処理装置7は、必要に応じてRDB
1またはMDDB2のデータ定義を参照しながら、専用
のソート装置を用いてロード前のデータを図8の順番に
並べ替える。MDDB3へのデータのロードに当たって
は、あらかじめ図8のイメージで確保されている記憶領
域のアドレスの若い方から順番に、データを配置してい
く。データの並び替えを、専用のソート装置8を用いて
高速に行なうので、従来の方法よりも高速にMDDB3
にデータをロードすることができる。従って、ソートや
フィールドの並び替えを含めたデータロードにかかる時
間を短縮することができる効果がある。
【0031】また、通常、多次元データベースを処理す
る計算機はデータベース処理以外の業務にも使用される
が、本発明による方法はこの計算機の計算時間や計算資
源を節約し、多次元データベース処理以外の業務につい
ても効率を改善する効果がある。ソートやフィールドの
並び替えの処理は一般に大量のメモリを消費し、多次元
データベース処理以外の業務を同一の計算機で実施する
際の効率低下の要因となっていた。また、あるMDDB
から別のMDDBへのデータロードのように、すでに何
らかの順番でソートされているデータについては、別の
MDDBへのデータロードに際してデータそのものをあ
らためてソートし直さなくても、ロード先データベース
における次元の定義の順番をデータの並んでいる順番に
合わせるだけでデータロードが高速になる場合がある。
このため、次元の定義の順序によってもデータのロード
速度が異なる場合がある。
【0032】本実施の形態は、この次元定義の順序を試
行錯誤により変更し、合わせてサンプルデータを用いて
次元の定義の順序とデータロードの性能の関係を測定す
ることにより、ロード先のロード性能が最も速いデータ
定義を自動的に生成することを可能にするものである。
【0033】例えば、1カ月ごとに、その月の商品ごと
の売上のデータを集計してMDDBにロードし分析す
る、といったような定型的なデータベース運用を行なう
場合は、ロード先のデータ定義はあらかじめユーザによ
って定義されている。このときの処理の流れを、図2に
示す。まず、ロード元のMDDB2から、データ定義を
取り出す(ステップS1)。続いて、ロード先のMDD
B3から、データ定義を取り出す(ステップS2)。そ
して、ロード先のデータ定義にある次元のそれぞれに対
し、ロード元のデータレコードにおいてその次元に対応
するフィールドを探す(ステップS3)。ここで、デー
タレコードとは、例えば「個々の商品の売り上げの記
録」のように、データの意味上の最小のまとまりであ
る。また、フィールドとは、データレコードにおける特
定の部位のことである。通常はデータレコードの先頭か
らの相対位置とデータの長さで表される。データレコー
ドとフィールドの関係を図24に示す。前述の例では、
商品の売り上げにおける「商品名」「売れた場所」「売
れた時刻」「売上高」のような情報が、図24のフィー
ルド1−1〜4、2−1〜4、3−1〜4、・・・のような個々
のフィールドに保持される。
【0034】ロード元のデータレコードにおいて、ロー
ド元の次元に対応するフィールドを探す処理は、例え
ば、図23に示すような処理で実現することができる。
図23においては、ロード先とロード元のデータ定義に
ある次元のそれぞれを比較し、次元の名前が一致するか
どうか、それぞれの次元の各要素のデータ型・長さが一
致するかどうか、それぞれの次元の各要素の値が一致す
るかどうかを調べ、次元の定義そのものが一致するか確
かめている。もしロード先のデータの次元の定義に一致
するものが、ロード元の次元定義にあったら、そのロー
ド元の次元の定義に対応するフィールドが、求めるべき
フィールドである。なお、データベース実現の方針によ
っては、次元の名前が一致する必要はない。またMDD
Bの実現の方針によっては、例えばロード元とロード先
の次元の定義について一方が他方の部分集合になってい
てもよい。ただしこの場合にはユーザが対話的に対応関
係を確認するか、プログラムなどで明示的に対応関係を
データ処理装置に指示する必要がある。
【0035】図2において、ロード元のデータを取り出
し、データレコードのフィールドとロード先のデータ定
義との対応関係に従ってデータレコードの形式を変更
し、さらに、ソート装置を用いて各次元の要素の順にレ
コードをソートする。この際、ソートキーは各次元の定
義の順序で優先度を設定する。ソート処理が終わった
ら、データをMDDB3へロードする(ステップS
4)。
【0036】ロード先のデータ定義の代わりに、ロード
元のデータ定義をもとに、データ処理装置が自動的に試
行錯誤によりロード先のデータ定義を作成するようにし
た処理のフローを図10に示す。
【0037】図10において、先ず、ロード元のデータ
ベースがMDDB2である場合は、次元の定義を取り出
す(ステップS11)。ロード元のデータベースがRD
Bである場合は、データの各カラム(データ値のカラム
を除く)を階層構造のない1つの次元であるとみなすこ
とにより、以降の処理をMDDBと同様に処理を進める
ことができる。ここで「カラム」というのは、各レコー
ド内でレコードの先頭からの順番が同じであるフィール
ドの集合である。図24においては、例えばフィールド
1-1、2-1、3-1、…は1つのカラムである。また例えば
フィールド1-2、2-2、3-2、…も1つのカラムをなす。
【0038】このとき、ロード先のMDDB3の実現方
針によっては、各次元のとり得る値のリストを次元定義
として生成する必要がある。このために、データ処理装
置7はロード元のデータレコードをいったん全て読み込
み、各カラムの取る値のリストを生成する。以下の説明
では、ロード元のデータベースはMDDB2であるもの
とする。
【0039】次に、取り出した次元のそれぞれについ
て、次元を構成する要素を取り出す(ステップS1
2)。このとき、取り出す要素の個数はユーザが明示的
に指定してもよい。あるいは、データ処理装置の設計時
に個数をあらかじめ決めておいてもよい。続いて、次元
の順序の全ての組み合わせに対して、取り出した次元の
要素をもとにロード先の次元の定義(ステップS13)
およびサンプルデータを生成する(ステップS14)。
そして、それぞれのケースについてサンプルデータのM
DDB3へのロード性能を測定する(ステップS1
5)。このサンプルデータの値は例えば乱数で決めてよ
い。そして、測定結果で最速のロード性能を与える次元
の定義の順序を、ロード先のデータにおける次元の定義
の順序にする(ステップS16)。
【0040】さらに、データ処理装置7は、ロード元の
データを取り出し、データレコードのフィールドとロー
ド先のデータ定義との対応関係に従ってデータレコード
の形式を変更し、さらに、ソートキーを各次元の定義の
順序で優先度を設定(ステップS17)後、ソート装置
を用いて各次元の要素の順にレコードをソートする(ス
テップS18)。ソート処理が終わったら、データをM
DDB3へロードする(ステップS19)。
【0041】実施の形態2.データロード時にユーザが
その場でロード先のデータ定義を、ロード元のデータ定
義を参照しながら対話的に生成することを可能にするこ
の発明の実施の形態2としてのデータ処理方法の処理フ
ローを図11に示す。
【0042】ロード元データベースのデータ定義を取り
出す(ステップS21)。続いて、取り出した情報をも
とにロード元データの次元の一覧をユーザに表示する
(ステップS22)。ユーザが次元の一覧の表示から、
ロード先MDDB3に転送する次元を指定する(ステッ
プS23)。この表示およびユーザの選択は、例えばG
UI(グラフィカル・ユーザ・インターフェース)およ
びマウス装置によるクリックまたはドラッグなどの方法
を用いて実現することができる。またこのとき、全ての
次元をロード先MDDB3に転送する必要はない。例え
ば、ユーザが転送を指定しなかった次元については、デ
ータレコードのうちその次元に対応するフィールドはデ
ータ処理装置7によって編集し、ロードすべきデータか
ら除外してよい。あるいは、ユーザの都合によっては編
集せず転送できるようにしてもよい。
【0043】続いて、ユーザは端末装置を操作すること
によりロード先の次元の順序を指定する(ステップS2
4)。ユーザの選択した次元について、ロード先MDD
B3のデータ定義方式にのっとり実施の形態1で述べた
方法により次元の定義を生成する(ステップS25)。
ただし、ロード先MDDBの設計の方針によっては、次
元の順序を自動的に設定せず、ユーザが設定するように
してもよい。次元の順序をユーザが指定するかデータ処
理装置が自動的に設定するかの設定はデータベース実現
の方針による。例えばユーザがデータ処理装置装着時に
指定できるようにしておいてよい。そして、ソート装置
8を用いてデータレコードの編集および並べ替えを行な
い、ロード先のMDDB3にデータをロードする(ステ
ップS26)。
【0044】実施の形態3.この発明の実施の形態3に
おいては、ロード先のデータ定義をユーザが決めた簡単
な手続きに従って自動生成する。データ構造に関する付
加情報を持たないデータについて、データに簡単な特徴
がある場合に、これを用いてMDDBの次元定義を自動
的に生成し、複雑なプログラミングを行なうことなしに
MDDBにデータをロードすることができる。これによ
り、MDDBの特徴であるデータの分析機能を、実行の
ために計算機資源を大量に占有することにより他の計算
機業務の妨げとなることなく、従来は量が多過ぎかつデ
ータ構造に関する付加情報を持たないためにデータベー
ス化するのに適していなかったデータに適用することを
可能にし、ユーザがより詳しい分析を行なうことをでき
るようにするものである。
【0045】データレコードが固定長で、全てのレコー
ドについてフィールドの配置などのフォーマット(形
式)が同一であるとき、このデータがデータ構造に関す
る付加情報を持たなくても、ユーザが自分でロード先の
MDDB3のデータ定義を生成するなどの手間をかけず
に、MDDBを効率的に構築することを可能にする
【0046】図12に、実施の形態3の処理のフローを
示す。まず、ユーザがデータレコード中のフィールドの
区切り文字を指定する(ステップS31)。区切り文字
とは、フィールドを区分するための特定の文字のことで
例えば「;」「_、」「=」等が該当し、これらを指定
するとは、ユーザがGUI画面又はコマンドで指定する
ことを意味する。この区切り文字は例えば、データ処理
装置およびデータベース実現上の都合によっては、あら
かじめデータ処理装置に登録しておいてもよく、また例
えばデータ処理装置の実行開始時にユーザが対話的に入
力するような仕組みを提供してもよい。次に、ロード元
のデータから、データレコードの任意の1つを取り出す
(ステップS32)。そして、各区切り文字のレコード
先頭からの相対位置を調べて記録する(ステップS3
3)。このとき、レコードの先頭または区切り文字また
はデータレコードの終端記号で囲まれた最短の区間がロ
ード先におけるデータレコードのフィールドとなる。デ
ータ処理装置7は、各フィールドを自動的に1つの次元
に割り当てることにより、ロード先のデータ定義を生成
する(ステップS34)。
【0047】続いて、データレコードの中でデータ値を
保持するカラムの位置をユーザが対話的に指定する。こ
の指定は、データベース装置の実現方法によっては必ず
しも必要ではなく、例えばデータレコードの先頭のカラ
ムまたは終端のカラムを常にデータ値を保持するカラム
として扱ってもよい。また例えば、データ処理装置の実
行開始前にあらかじめユーザが登録するようにしてもよ
い。また、一般にMDDBにおいては、1つの次元の要
素の種類よりもデータ値の個数の方が多いので、このこ
とを利用して自動的にデータ値を保持するカラムを検出
するようにしてもよい。データ処理装置7は、全データ
レコードをソートするために読み込む。このとき、各フ
ィールドのとる値を記録しておき、データを読み込んで
ソートをすると、ユーザに各次元の要素の一覧を提示す
る(ステップS35)。
【0048】このとき例えば、ユーザが各次元について
提示された値一覧をもとに階層構造をその場で対話的に
定義する方法を提供してもよい。また、データロードと
同時に次元を定義する必要がない場合は、各次元の一覧
を提示したり、次元のなかの階層構造を対話的に定義し
たりする機能を提供する必要はない。あるいは例えば、
各次元の要素の一覧および次元の階層構造の対話的定義
機能は、データ処理装置の装着時などにあらかじめユー
ザが起動するかどうかを設定できるようにしておいても
よい。
【0049】また、このとき、要素があらかじめ定めた
規定の個数を越えたカラムについては、次元の要素でな
くデータ値を保持している可能性があるので、次元とし
て定義することを中止するような方法を備えていてもよ
い。更にこのとき、このカラムを、データ値を保持する
カラムとして扱うような仕組みを備えてもよい。この方
法の実現に当たっては、例えばデータ処理装置7が自動
的にデータ値を保持するカラムとして扱うような設定を
してもよい。
【0050】あるいは、このようなカラムを検出した場
合、ユーザに対話的にデータ値を保持するカラムとして
扱うような設定をするかどうかの確認をする仕組みを備
えてもよい。また、各次元の要素を記録していく代わり
に、あらかじめ各次元のとり得る要素の組、または条件
を決めておき、これ以外の値をデータレコードの当該カ
ラムで検出したら処理を打ち切る機構を備えてもよい。
このとき各次元のとり得る要素の組または条件は、例え
ばデータレコード群とは別に1つのファイルとしてまと
めて登録しておき、データ処理装置7の起動時などに自
動的に取り込むようにすることにより実現できる。
【0051】ただし、本実施の形態を実施するに当たっ
ては、上記の方法で得られるロード元のデータレコード
内のフィールド数が一定である必要がある。もし一定で
ない場合でも、例えば全データレコード中フィールド数
が最も少ないデータレコードのフィールド数に合わせ
て、MDDB3にロードするフィールドの個数を決める
ことにより、適用することができる。この場合、例えば
ロードすべきフィールドはデータレコードの先頭から順
に選び、余ったフィールドはロードしないことにより、
ロードすべきデータレコードのフィールドの個数を一定
個にすることができる。
【0052】また例えば、指定した個数のフィールドを
持つデータレコードだけをMDDB3にロードすること
にしてもよい。あるいは、例えばユーザがMDDB3に
ロードするフィールドまたはカラムを対話的に指定する
仕組みを備えてもよい。またあるいは、ユーザがMDD
B3にロードするフィールドまたはカラムを選択するル
ールを設定できるような仕組みを提供してもよい。
【0053】実施の形態4.この発明の実施の形態4に
おいては、実施の形態3における固定長のデータとは異
なり、可変長のデータレコードで構成されたデータ構造
に関する付加情報を持たないデータを、ロード元のデー
タ定義をあらかじめユーザが決めた簡単な手続きに従っ
て自動生成する。
【0054】図13に処理フローを示す。一般にMDD
Bは内部でのデータ表現の都合上、各次元について一定
のフォーマットに従ったデータレコードのみ入力を受け
付ける。このため、本実施の形態では、可変長のデータ
レコードで構成されたデータを固定長のフィールドで構
成されたデータに編集する必要がある。図13におい
て、まずユーザが各レコードにおけるフィールドの区切
り文字を指定し(ステップS41)、データ値を持つカ
ラムの位置を指定する(ステップS42)。このあと、
以下に述べる3つの方針をユーザに提示し、ユーザは対
話的に方針を選択する。
【0055】第1の方針は、データレコードのうち固定
長のフィールドと見なせる部分だけを取り出して、それ
らのフィールド群を包含するカラムをMDDB3にロー
ドする方法がある。データ処理装置7でデータを編集す
る際に、可変長のフィールドを検出したらロードするデ
ータから削除する。この処理のフローを、図14に示
す。
【0056】図14ではまず、ロード元のデータをデー
タ処理装置7に入力し、ユーザはデータレコードの区切
り文字を合わせて指定する(ステップS43)。続い
て、各データレコードについて、レコードの先頭または
区切り文字またはレコードの終端記号のいずれかに挟ま
れた部分のうち最短の部分を順次取り出す。このそれぞ
れがデータレコードの個々のフィールドとなる(ステッ
プS44)。
【0057】全てのデータレコードについて、レコード
の先頭から数えた順番が同じフィールド同士でその長さ
を比較していく。もし、1つでも長さの異なるフィール
ドを含むカラムはMDDB3へロードする対象から外
す。このロード対象から外す処理は、は例えば、データ
処理装置7において各データレコードを1バイト毎にデ
ータ処理の単位とし、それぞれの単位に対応した部分に
ロードするかしないかを示す補助データを付加しておく
ことにより実現できる。データ処理装置7は、これらの
処理と合わせて各フィールドの値、およびそれらの値が
どのカラムに属するかを記録していく(ステップS4
5)。ここでカラムを記録するのは、次元又はデータベ
ース変数の定義を生成したあとで、データをMDDB3
にロードするプログラムを作成するとき、ロード元のデ
ータのどのカラムがどの次元に対応するかを指定する必
要があるからである。
【0058】そして、全レコードの全フィールドについ
て上記のチェックが終了したら、上記のチェックでロー
ド対象となったフィールドのみをソート装置8に送り、
生成した次元の定義の順序に従ってロード対象となるフ
ィールド群をソートし、データレコードの編集および
並べ替えを行ない、ロード先MDDB3にデータをロー
ドする(ステップS46)。
【0059】このとき、例えばユーザが各次元について
提示された値の一覧をもとに階層構造をその場で対話的
に定義する方法を提供してもよい。この一覧を提示する
機能を提供しない場合は、各フィールドの値を記録する
のをやめるよう設定できるようにしてもよい。あるい
は、各次元の値を記録していく代わりに、あらかじめ各
次元のとり得る値の組または条件を決めておき、これ以
外の値をデータレコードの当該カラムに属するフィール
ドで検出したら処理を打ち切る機構を備えてもよい。こ
のとき各次元のとり得る値の組または条件は、例えばデ
ータレコード群とは別に1つのファイルとしてまとめて
登録しておき、データ処理装置7の起動時などに自動的
に取り込むようにすることにより実現できる。
【0060】また、各フィールドの値を記録する場合で
も、各次元のとり得る要素数の上限をユーザがあらかじ
め設定できるようにしておいてよい。このとき、各次元
において要素の個数が上限を越えたら、そのフィールド
を含むカラムは次元でなくデータ値を保持している可能
性があるので、フィールドの値の記録をやめるようにし
てよい。あるいは、データベース設計の方針によって
は、この時点でデータをロードする作業を中止してもよ
い。
【0061】第2の方針は、データレコードにおけるフ
ィールドのそれぞれについてユーザが長さを指定し、全
レコードの当該フィールドをその長さに合わせて編集す
る方法がある。この処理の様子を、図15に示す。
【0062】図15において、まずユーザが各フィール
ドの区切り文字、およびデータレコード内の各フィール
ドについてそれぞれの長さを指定する(ステップS5
1)。そして、ロード元のデータをデータ処理装置7に
入力し(ステップS52)、ユーザの指定した区切り文
字をもとに各データレコードをフィールドに分割する
(ステップS53)。この部分は図14の処理と同様で
ある。ここで、フィールドへの分割と各フィールドの長
さの指定は逆の順序で行なってもよい。更に全データレ
コードについて、それぞれのフィールドをユーザ指定の
フィールド長と比べ、ユーザ指定よりも長い場合は、は
み出した部分をMDDB3にロードしない設定にし(ス
テップS54)、ユーザ指定より短い場合は、もとのデ
ータフィールドの後ろに空白文字を詰めて、ユーザ指定
の長さと同じになるようにする(ステップS55)。ま
た、データ処理装置7はこれらの処理と合わせて、各フ
ィールドの値を記録していく。
【0063】ここで例えば、空白文字の代わりにユーザ
が詰めるべき文字をあらかじめ設定しておく仕組みを提
供してもよい。また、はみ出した場合はその時点でデー
タロードの作業を中止するような設定を可能にしてもよ
い。ここでは処理を続行するものとして説明を続ける。
全てのデータレコードについて、上記の作業を終了した
ら、編集した後のデータレコード群のカラムをロード先
の次元として定義する。このとき、ユーザが各次元につ
いて提示された値一覧をもとに階層構造をその場で対話
的に定義する方法を提供してもよい。この機能を提供し
ない場合は、各フィールドの値を記録するのをやめるよ
う設定できるようにしてもよい。
【0064】また、各フィールドの値を記録する場合で
も、各次元のとり得る要素数の上限や値についての条件
をユーザがあらかじめ設定できるようにしておいてよ
い。上限を上回る要素を検出したときの処理も図14の
場合と同様である。この後、生成した次元の定義の順序
に従ってロード対象となるフ ィールド群をソート装置
8によりソートし、データレコードの編集および並べ替
えを行ない、ロード先MDDB3にデータをロードする
(ステップS56)。
【0065】第3の方針は、データレコードのうち可変
長のフィールドの長さを、全レコードの当該フィールド
の中で最も長いもの、または最も短いものに合わせる方
法がある。図16に、最も長いフィールドに合わせる処
理の様子を示す。
【0066】図16において、ロード元のデータをデー
タ処理装置7に入力し(ステップS61)、ユーザの指
定した区切り文字をもとに各データレコードをフィール
ドに分割する(ステップS62)。そして、各データレ
コードにおける可変長の各フィールドについて、最も長
いものの長さを調べる(ステップS63)。あとの処理
は、図15の説明においてユーザ指定の長さと同じ長さ
か、ユーザ指定の長さより短いフィールドに対して行な
う処理と同様の処理を行なう(ステップS64)。ただ
し図15におけるユーザ指定の長さは、図16において
は全レコードの当該フィールドにおける最長のものの長
さに対応する。
【0067】図16において、各データレコードのフィ
ールドの中で「最長」のフィールドを探す過程を「最
短」のフィールドを探す過程に置き換え、更にそれぞれ
のフィールドの編集の過程を図15におけるユーザ指定
の長さより長いフィールドの編集の過程に置き換える
と、最も短いフィールドに他のレコードのフィールドを
合わせる実現方法になる。この後、図16のステップに
おいては、生成した次元の定義の順序に従ってロード対
象となるフィールド群をソート装置8によりソートし、
データレコードの編集および並べ替えを行ない、ロード
先MDDB3にデータをロードする(ステップS6
5)。
【0068】なお、必ずしも図13のようにフィールド
の編集方針を3つ備えている必要はない。データベース
設計の方針によっては、図14または図15または図1
6の方法の1つあるいはいずれか2つの組み合わせを備
えることにより実現してもよい。その際、当該方法では
MDDBにデータをロードできないようなデータレコー
ド群においては、ロードできないことが分かった時点で
処理を中止するようにしてもよい。ロード先のMDDB
3の次元の定義の順序の決め方、およびデータレコード
中のフィールドの個数についての制限またはロードすべ
きフィールドの選び方については、実施の形態3と同様
である。
【0069】実施の形態5.この発明の実施の形態5に
おいては、データ構造に関する付加情報を持たないデー
タレコード群から自動的にフィールドを抽出する際、ロ
ード先のMDDB3で既に別のデータについて適用され
ているデータ定義を参照し、次元の要素の値をロード元
のデータと比較して、再利用可能なデータ定義を適用す
るものである。これは例えば地名や年月日など、頻繁に
利用される次元の階層構造をあらためて定義することな
く新しいデータベースに適用することを可能にするもの
である。
【0070】処理フローを図17に従って説明する。フ
ィールドの区切り文字を指定し(ステップS71)、デ
ータ値を含むカラムを指定する(ステップS72)。そ
して、ロード元データをデータ処理装置にロードする
(ステップS73)。続いて、ロード先のMDDB3で
既に存在するデータ定義をロードする。このときロード
するデータ定義は、ロード元のデータ定義に対応する、
しないには関係なく、例えばロード先のMDDB3にあ
る全てのデータ定義をロードしてもよい。また、データ
ベース設計の方針によっては、例えばユーザが対話的に
参照すべきデータ定義を指定する仕組みを提供してもよ
く、また例えば利用するデータ定義の種類をあらかじめ
データ処理装置に登録しておくような仕組みを提供して
もよい。ここでは、ロード先のMDDB3にある全ての
データ定義をロードするものとして説明を続ける。
【0071】さらに、ユーザの入力した区切り文字に従
って各データレコードをフィールドに分割する(ステッ
プS74)。そして、データ処理装置7は、それぞれの
カラムについて、そのカラムに属するフィールド群が同
一の特定の次元の要素となっているかどうかを調べる
(ステップS75)。ある次元について、全てのレコー
ドでそのカラムに属するフィールドの値がその次元の要
素であったら、そのカラムはロード先のMDDB3でそ
の次元の定義を適用してよい(ステップS76)。
【0072】あるカラムにおいて、1つでもその次元に
属さないフィールドがあったら、そのカラムに対してそ
の次元の定義を適用することはできない。このとき、図
17では当該フィールドをMDDBにロードしないが
(ステップS77)、これはデータベース実現の方針に
よる。例えばユーザがそのカラムに対して対話的に次元
を定義する機能を提供してもよく、また例えば、自動的
に階層構造を持たない次元をそのカラムに対して定義し
てもよい。データ処理装置7は、全てのカラムについ
て、適用可能な次元があるかどうかを調べる。このと
き、図17では各カラムについて全レコードを調べる
が、各レコードについて全てのカラムを並行して調べる
ようにしてもよい。
【0073】また、図17では、ロード先のMDDB3
にある全ての次元定義を参照するが、これもデータベー
ス実現の方針による。例えば、「地名」や「年月日」な
ど頻繁に使う次元定義だけをあらかじめデータ処理装置
7に登録し、MDDB3から参照するようにしてよい。
この後、図17のステップS78においては、生成した
次元の定義の順序に従ってロード対象となるフィールド
群をソート装置8によりソートし、データレコードの編
集および並べ替えを行ない、ロード先MDDB3にデー
タをロードする。
【0074】実施の形態6.この発明の実施の形態6に
おいては、ロードするデータの最終形態をフラットとす
べきかキューブとすべきかを自動的に判定し、より効率
的にMDDB3にデータをロードすることを可能にする
ものである。
【0075】「キューブ」とは、データの各次元におけ
る分類ごとの集計値を全て含むデータの形態であり、
「フラット」とは集計値を含まないデータの形態であ
る。図3〜図7のMDDBの例で用いたデータを使って
キューブを構成する場合は、図3の縦軸の「全国」「地
方(関東、中部、近畿、九州)」「都市(東京、鎌倉な
ど)」を1つの次元(場所の次元)の階層とし、また図
7の縦軸の「製品合計」「製品分類(家電、コンピュー
タ、AV)」「製品名(洗濯機、冷蔵庫など)」の売上
高をもう一つの次元(製品の次元)の階層とし、図3の
横軸の時間の全てについて、それぞれの場所と製品のそ
の時期の売り上げを計算し、また場所と製品の次元の階
層のレベルのそれぞれについて売り上げを計算した結果
を保持するデータを生成する。ここで、図7の縦軸の情
報は図3〜6では明示的に示されていないが、MDDB
内部では図3〜6の画面の垂直方向にある仮想的な軸と
して実現されている。また、時間については、例えば
「1996年1月1日」の売り上げは年のレベル(「1
996年」)、月のレベル(「1996年1月」)、日
のレベル(「1996年1月1日」)という階層構造を
自然に持っている。データベース実現の方針によって
は、キューブ形式のデータを生成するためには、この階
層構造についてもそれぞれのレベルで売り上げを集計す
る必要がある。
【0076】図21に、図3〜図7のMDDBの例にお
ける場所の次元の階層構造を示す。また、図22に、図
3〜図7のMDDBの例における製品の次元の階層構造
を示す。ところで、一般にMDDBでは、ロード元のデ
ータの件数が少ないときは、キューブ形式でデータをロ
ードする場合と、フラット形式でデータをロードしロー
ルアップ処理をMDDB内部で行なう場合とで、後者の
方が短い時間で済む場合がある。これは、MDDBのデ
ータおよび付加情報(GUIによるロールアップ操作や
ドリルダウン操作を提供するために使用される情報)が
十分小さいとき、これらのデータ全体がMDDBシステ
ムを実現するコンピュータの主記憶装置に収まり、十分
高速にロールアップ計算を実現できるようなことがある
からである。
【0077】本実施の形態におけるデータ処理装置7は
上記のことを利用して、より高速にMDDB3にデータ
をロードできるよう、ロードにかかる時間をあらかじめ
予測し、ロードする際のデータの形式をフラット形式の
ままにするか、キューブ形式にするか自動的に判断し、
必要に応じてロード元のデータをもとにキューブ形式の
データを自動的に生成して、MDDB3にデータをロー
ドする。
【0078】本実施の形態における処理フローを図18
に示す。まず、ロード先MDDB3のデータ定義を生成
する(ステップS81)。続いて、サンプルデータを用
いてフラット形式およびキューブ形式のサンプルデータ
による多次元データベースへのデータロードの性能測定
を自動的に行なう(ステップS82)。ステップS82
における測定の処理フローを図19に示す。
【0079】ここで、測定するサンプルデータの個数お
よびそれぞれのサイズはデータベース設計の方針によっ
てよく、例えばあらかじめデータ処理装置に登録してお
いてよい。また例えば、ユーザが性能測定時に指定する
仕組みを提供してもよい。あるいは例えばデータ処理装
置が乱数を用いて決めてもよい。またサンプルデータの
内容自体もデータベース設計の方針による。例えばあら
かじめデータ処理装置がサンプルデータを全て保持し、
性能測定にあたってMDDBを実現するコンピュータに
コピーするようにしてよい。また例えば、性能測定にあ
たってデータ処理装置が指定された大きさのサンプルデ
ータを乱数を用いて生成するようにしてもよい。
【0080】上記に示すような何らかの方法でデータを
生成した後、データ処理装置はまずフラット形式のまま
データをMDDBにロードし、このステップS91にお
ける処理にかかる時間を測定する。続いて、MDDBの
機能を用いてロード後のデータをMDDB内部でキュー
ブ形式に変換し、このステップS92における処理にか
かる時間を測定する。このステップS91とステップS
92にかかる時間の合計が、このサンプルデータのサイ
ズにおけるフラット形式のデータのロード時間である。
このとき、データ処理装置はステップS93における処
理において、ステップS91とステップS92にかかる
時間およびフラット形式のデータのサイズを1組の情報
として記録する。
【0081】データ処理装置7はまた、上記のフラット
形式のデータからキューブ形式のデータを生成し、この
生成のステップS94における処理にかかった時間を測
定する。そして、キューブ形式のデータをMDDBにロ
ードし、このロードのステップS95における処理にか
かった時間を測定する。このステップS94とステップ
S95にかかった合計時間が、このデータのキューブ形
式でのロード全体の時間である。データ処理装置7はス
テップS96における処理において、これらの処理と合
わせて、ステップS94とステップS95の合計時間を
記録し、また、データの値を格納するためのサイズ、次
元の次数、各次元のレベル数および各レベルのメンバー
数、実際に生成したキューブ形式のデータのサイズを記
録する。
【0082】データ処理装置7はステップS91〜ステ
ップS96の処理を繰り返し、ロードすべきデータのサ
イズとフラット形式、キューブ形式それぞれのロード時
間の関係を求める。キューブ形式でロードする際の最終
的なデータサイズは、MDDBへの命令などの付加デー
タを除くと、各次元の階層構造に含まれるメンバー数を
それぞれ加えた値に、データの値の格納に必要なサイズ
をさらに乗じた値になる。図3 〜図7のMDDBの例
だと、場所の次元には図21に示すように8+4+1=
13、製品の次元は図22に示すように6+3+1=1
0のメンバーがそれぞれ存在する。このMDDBについ
てキューブの大きさを計算すると、13×10×(月
数)×データの値の格納に必要なサイズ、となる。な
お、時間の次元における自然な階層構造(「年」のレベ
ル、「月」のレベル、「日」のレベル)を考慮する場合
は、時間の次元の階層ごとの要素数も上記の結果に合わ
せて計算する必要がある。
【0083】データ処理装置は、ステップS82での性
能測定結果をもとに、フラット形式のデータサイズにお
けるロード性能を見積もる。この予測において、サンプ
ルデータで測定しなかったサイズのデータについては、
データサイズならびにステップS93で記録したロード
時間をそれぞれ横軸と縦軸にした平面において測定点の
間は測定点どうしを直線で結んだ部分の値に従うもとの
してよい。これは、データロードにかかる時間がロード
すべきデータのサイズについて単調増加であることによ
る。
【0084】また、ステップS82での性能測定結果お
よびロード元データのサイズおよびデータ定義をもと
に、ロード元データをキューブ形式に変換したときの変
換処理にかかる時間(ステップS83)および変換後の
データをMDDBにロードするのにかかる時間を予測す
る(ステップS84)。この予測においては、フラット
形式同様、サンプルデータで測定しなかったサイズのデ
ータについては、データサイズならびにステップS96
で記録したロード時間をそれぞれ横軸と縦軸にした平面
において測定点の間は測定点どうしを直線で結んだ部分
の値に従うものとしてよい。
【0085】データ処理装置7はロード元データのサイ
ズにおいてフラット形式またはキューブ形式のうちデー
タロード性能の予測値のより短い方の形式でデータをM
DDB3にロードする(ステップS85)。なお、デー
タ処理装置7の実現の方針によっては、当該データのサ
イズ付近でフラット形式およびキューブ形式のロード性
能に有意な差がないときは、そのサイズ付近でのロード
性能を改めて詳しく測り直す機構を備えてもよい。この
とき、再測定するための性能差の基準はユーザの設定に
任せてよい。このとき例えば、ユーザに再測定するかど
うか対話的に確認してもよく、自動的に再測定を行なう
ようにしてもよい。
【0086】実施の形態7.この発明の実施の形態7に
おいては、データ処理装置7を定期的に稼働し、ロこの
発明の実施の形態7においては、データ処理装置7を定
期的に稼働し、ロード元のデータが更新されている場合
は必要に応じてロード先のデータ定義を自動的に定義を
再生成し、ロード先のMDDB3にデータをロードし直
す。例えば商品寿命の短い製品の売り上げ記録など、頻
繁にデータ定義を更新する必要があるデータベースに多
次元データベースを適用する場合に有効である。
【0087】本実施の形態におけるデータ処理装置7の
処理フローを図20に示す。まず、一定時間ごとにロー
ド元のデータをチェックし、前回データ処理装置がチェ
ックした時点以降にデータが変更されているかどうか調
べる(ステップS101)。これは例えば、ロード元の
データに最終書き換え時刻の情報を付加し、またデータ
処理装置はこのデータをチェックした時刻の情報を記録
し、これらの情報を比較し、ロード元のデータの方が新
しいかどうか調べることにより実現できる。
【0088】またデータベース設計の方針によっては、
例えばデータ処理装置はデータの追加のみを調査の対象
としてよい。この場合、データの最終書き換え時刻の代
わりにデータのサイズを比較し、データ処理装置が前回
に確認したときよりデータのサイズが大きくなっている
かどうかを調べてもよい。もしデータに変化がないとき
は、データ定義を更新する必要がないので、データ処理
装置はそのデータについてのチェックを終了する。な
お、例えばこのとき、データ処理装置7は必要に応じて
データをチェックした時刻を記録してもよい。もしデー
タが変化している場合、データ処理装置はロード先のM
DDB3においてこのデータに対応するデータベースの
データ定義を参照する(ステップS102)。
【0089】続いてデータ処理装置7は、ロード元の全
てのデータレコードをデータ定義と比較し、各カラムに
ついてそのカラムと対応する次元に属さない値、つまり
その次元における新しい要素が追加されているかどうか
を確かめる(ステップS103)。もし新しい要素が追
加されている場合は、データ処理装置内部にこの値と対
応する次元を記録する(ステップS104)。もし追加
されていない場合はこの処理をスキップする。データ処
理装置7は、全てのデータレコードの全てのカラムにつ
いて調べ終わったら、ステップS104で記録したデー
タを次元の要素として登録し、新たにデータ定義を生成
する(ステップS105)。もしステップS104で新
たな要素データの値を検出しなかったときは、データ定
義を更新する必要はない。
【0090】そして、データ処理装置7は、新たなデー
タ定義に基づきMDDB3にデータをロードする(ステ
ップS106)。このとき、データのチェックを十分頻
繁に行なえば、ユーザは自動的に、新しいデータを対象
に分析を行なう準備をすることができる。この際、ユー
ザはMDDBによるデータ分析を行なう際、自分で次元
の定義を改めて生成する必要があるかどうか確認した
り、また定義の再生成が必要な場合に次元を自分で定義
し直したりする手間を省くことができる。
【0091】またこのとき、MDDBを管理するコンピ
ュータ本体(図示せず)でなくデータ処理装置7がロー
ド元のデータのチェックを行なうので、MDDBを管理
するコンピュータ本体に計算時間の負担をかけることな
く、頻繁にデータ定義を更新することが可能になる。多
次元データベースは主にデータの多角的かつ柔軟な解析
を目的としており、対象となるデータが新しいほど分析
の精度が高くなるので、MDDBのユーザにとっては本
実施の形態による装置の導入は大きな分析精度向上をも
たらす。
【0092】以上述べたように、この発明におけるデー
タ処理装置7は、データ変換およびMDDB3へのデー
タロードの性能を予め測定し、試行錯誤によりデータを
最も高速にMDDB3へロードする次元の定義順序を探
すように構成し、また、ロードする際のデータの形式を
フラット形式のままにするか、キューブ形式にするか判
断するためロードにかかる時間を予め測定するように構
成したため、サンプルデータによる測定に多少の時間を
要するが、測定後、適正に処理してロードを完了するこ
とにより、合計時間としてみると迅速なデータ処理を実
現することができる。
【0093】
【発明の効果】この発明によるデータ処理方法は以上の
様に構成されているので、以下に示す効果を奏する。
【0094】ロード先のデータ定義を参照しロード元の
データを構成する複数の次元の要素の構成順を組み替え
る様に構成したので、データ定義が異なるロード先へも
人手を介することなくロードすることができる。
【0095】また、構成順を組み替えて測定を繰り返す
ことによりロード時間が最小となる構成順をロード先の
データ定義として生成する様に構成したので、高速にロ
ードすることができる。
【0096】さらに、ロード元のデータ定義を参照し上
記ロード先のデータ定義を対話的に設定する様に構成し
たので、多次元データベースを効率的に構築することが
できる。
【0097】また、データをフラット形式で多次元デー
タベースへロードするかキューブ形式のデータを生成し
た後多次元データベースへロードするかを合計時間の少
ない方に決定する様に構成したので、高速にロードする
ことができる。
【0098】さらにまた、ユーザが指定する区切り文字
を検出することによりデータレコードのフィールドの値
を抽出するように構成したので、データ構造に関する付
加情報を持たない大量のデータからMDDBのデータ定
義に必要な情報を容易に取り出すことができる。
【0099】また、可変レコード長のレコードを単位と
するデータレコード群に対してもデータレコードのフィ
ールドの値を抽出するように構成したので、データ形式
にとらわれずに必要な情報を取り出すことができる。
【0100】さらに、抽出したフィールドの値とロード
先のデータ定義とを比較し利用可能なデータ定義を再利
用するように構成したので、多次元データベースを効率
的に構築することができる。
【0101】また、ロード元のデータを定期的に監視し
データの更新を検出したときデータを処理後ロードする
ように構成したので、多次元データベースを常時新規な
データで維持することができる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1のデータ処理装置を
示すシステム構成図である。
【図2】 この発明の実施の形態1のデータ処理方法を
示すフローチャートである。
【図3】 この発明の実施の形態1のMDDBを示すデ
ータ分析表である。
【図4】 この発明の実施の形態1のMDDBを示すデ
ータ分析表である。
【図5】 この発明の実施の形態1のMDDBを示すデ
ータ分析表である。
【図6】 この発明の実施の形態1のMDDBを示すデ
ータ分析表である。
【図7】 この発明の実施の形態1のMDDBを示すデ
ータ分析表である。
【図8】 この発明の実施の形態1のロード先MDDB
のデータ表現を示す構成図である。
【図9】 この発明の実施の形態1のロード元データの
データ形式を示す構成図である。
【図10】 この発明の実施の形態1のデータ処理方法
を示すフローチャートである。
【図11】 この発明の実施の形態2のデータ処理方法
を示すフローチャートである。
【図12】 この発明の実施の形態3のデータ処理方法
を示すフローチャートである。
【図13】 この発明の実施の形態4のデータ処理方法
を示すフローチャートである。
【図14】 この発明の実施の形態4のデータ処理方法
の第1の方針を示すフローチャートである。
【図15】 この発明の実施の形態4のデータ処理方法
の第2の方針を示すフローチャートである。
【図16】 この発明の実施の形態4のデータ処理方法
の第3の方針を示すフローチャートである。
【図17】 この発明の実施の形態5のデータ処理方法
を示すフローチャートである。
【図18】 この発明の実施の形態6のデータ処理方法
を示すフローチャートである。
【図19】 この発明の実施の形態6のデータ処理方法
における性能測定方法を示すフローチャートである。
【図20】 この発明の実施の形態7のデータ処理方法
を示すフローチャートである。
【図21】 この発明の実施の形態1〜7のMDDBに
おける場所の次元の階層構造を示す構成図である。
【図22】 この発明の実施の形態1〜7のMDDBに
おける製品の次元の階層構造を示す構成図である。
【図23】 この発明の実施の形態1〜7のMDDBに
おけるロード元又はロード先の次元に対応するフィール
ドを探す処理の手順を示す模式図である。
【図24】 この発明の実施の形態1〜7のロード元デ
ータの構造を示す説明図である。
【図25】 従来例のデータ処理方法を示すシステム構
成図である。
【符号の説明】
1 関係データベース、2 第1の多次元データベース
(ロード元)、3 第2の多次元データベース(ロード
先)。
【手続補正書】
【提出日】平成9年12月17日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】図6
【補正方法】変更
【補正内容】
【図6】
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図7
【補正方法】変更
【補正内容】
【図7】
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図22
【補正方法】変更
【補正内容】
【図22】

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 ロード元である関係データベース又は第
    1の多次元データベースからロード先の第2の多次元デ
    ータベースへデータをロードするシステムにおいて、上
    記ロード先のデータ定義を参照し上記データを構成する
    複数の次元の要素の構成順を組み替えるステップ、上記
    各次元の要素順に上記データをソートし上記第2の多次
    元データベースへ上記データをロードするステップから
    なるデータ処理方法。
  2. 【請求項2】 ロード元である関係データベース又は第
    1の多次元データベースからロード先の第2の多次元デ
    ータベースへデータをロードするシステムにおいて、上
    記ロード元のデータ定義を参照し上記データを構成する
    複数の次元の要素の構成順を組み替えるステップ、組み
    替えた構成順においてサンプルデータによりロード時間
    を測定するステップ、上記構成順を組み替えて上記測定
    を繰り返すことにより上記ロード時間が最小となる構成
    順を上記ロード先のデータ定義として生成するステッ
    プ、上記ロード先のデータ定義に基づき各次元の要素順
    に上記データをソートし上記第2の多次元データベース
    へ上記データをロードするステップからなるデータ処理
    方法。
  3. 【請求項3】 ロード元である関係データベース又は第
    1の多次元データベースからロード先の第2の多次元デ
    ータベースへデータをロードするシステムにおいて、上
    記ロード元のデータ定義を参照し上記ロード先のデータ
    定義を対話的に設定するステップ、設定したデータ定義
    に基づく要素の構成順のサンプルデータによりロード時
    間を測定するステップ、上記構成順を組み替えて上記測
    定を繰り返すことにより上記ロード時間が最小となる構
    成順を上記ロード先のデータ定義として生成するステッ
    プ、上記ロード先のデータ定義に基づき各次元の要素順
    に上記データをソートし上記第2の多次元データベース
    へ上記データをロードするステップからなるデータ処理
    方法。
  4. 【請求項4】 ロード元である関係データベース又は第
    1の多次元データベースからロード先の第2の多次元デ
    ータベースへデータをロードするシステムにおいて、フ
    ラット形式のサンプルデータを上記第2の多次元データ
    ベースへロードする第1の時間を測定するステップ、そ
    のフラット形式のサンプルデータを用いて上記第2の多
    次元データベースにおいてキューブ形式のデータを生成
    する第2の時間を測定するステップ、上記フラット形式
    のサンプルデータを用いて上記関係データベース又は第
    1の多次元データベースにおいてキューブ形式のデータ
    を生成する第3の時間を測定するステップ、そのキュー
    ブ形式のデータを上記第2の多次元データベースへロー
    ドする第4の時間を測定するステップ、上記第1の時間
    と上記第2の時間の合計時間と上記第3の時間と上記第
    4の時間の合計時間とを比較し上記データをフラット形
    式で上記第2の多次元データベースへロードするかキュ
    ーブ形式のデータを生成した後上記第2の多次元データ
    ベースへロードするかを上記合計時間の少ない方に決定
    するステップ、この決定結果に基づき上記第2の多次元
    データベースへ上記データをロードするステップからな
    るデータ処理方法。
  5. 【請求項5】 データ構造に関する付加情報を有しない
    データレコード群からユーザが指定する区切り文字を検
    出することにより上記データレコードのフィールドの値
    を抽出するステップ、抽出したフィールドの値に基づく
    要素の構成順のサンプルデータによりロード時間を測定
    するステップ、上記構成順を組み替えて上記測定を繰り
    返すことにより上記ロード時間が最小となる構成順をロ
    ード先のデータ定義として生成するステップ、上記ロー
    ド先のデータ定義に基づき各次元の要素順に上記データ
    をソートし多次元データベースへ上記データをロードす
    るステップからなるデータ処理方法。
  6. 【請求項6】 上記データレコード群は可変レコード長
    のレコードを単位とすることを特徴とする請求項5記載
    のデータ処理方法。
  7. 【請求項7】 データ構造に関する付加情報を有しない
    データレコード群からユーザが指定する区切り文字を検
    出することにより上記データレコードのフィールドの値
    を抽出するステップ、抽出したフィールドの値とロード
    先のデータ定義とを比較し利用可能なデータ定義を再利
    用することにより新たにロード先のデータ定義を生成す
    るステップ、その新たなデータ定義に基づく要素の構成
    順に上記データレコード群を組み替えるステップ、上記
    新たなデータ定義に基づき各次元の要素順に上記データ
    をソートし多次元データベースへ上記データをロードす
    るステップからなるデータ処理方法。
  8. 【請求項8】 ロード元のデータを定期的に監視し上記
    データの更新を検出したとき上記データを適正に処理後
    ロードすることを特徴とする請求項1〜請求項6のいず
    れかに記載のデータ処理方法。
JP9159550A 1997-06-17 1997-06-17 データ処理方法 Pending JPH117402A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9159550A JPH117402A (ja) 1997-06-17 1997-06-17 データ処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9159550A JPH117402A (ja) 1997-06-17 1997-06-17 データ処理方法

Publications (1)

Publication Number Publication Date
JPH117402A true JPH117402A (ja) 1999-01-12

Family

ID=15696202

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9159550A Pending JPH117402A (ja) 1997-06-17 1997-06-17 データ処理方法

Country Status (1)

Country Link
JP (1) JPH117402A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011070417A (ja) * 2009-09-25 2011-04-07 Hirotaka Kato 多次元データ格納キューブを用いた経営管理システム
JP2012053548A (ja) * 2010-08-31 2012-03-15 Sanyo Electric Co Ltd 文書データ変換装置及び文書変換プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011070417A (ja) * 2009-09-25 2011-04-07 Hirotaka Kato 多次元データ格納キューブを用いた経営管理システム
JP2012053548A (ja) * 2010-08-31 2012-03-15 Sanyo Electric Co Ltd 文書データ変換装置及び文書変換プログラム

Similar Documents

Publication Publication Date Title
CN104685496B (zh) 关系型数据库管理系统中删减聚类表的磁盘块
US8356029B2 (en) Method and system for reconstruction of object model data in a relational database
JP4609995B2 (ja) オンライン分析処理(olap)のための方法およびシステム
JP2001092825A (ja) 情報処理装置および情報処理方法
JP2001306373A (ja) データベース設計システム、データベース設計方法、記録媒体、及び表示方法
JP2002024286A (ja) データ表示方法および装置並びにその処理プログラムを記録した記録媒体
JP2006503357A5 (ja)
US7080084B2 (en) Method for changing database construction information
US20080147457A1 (en) Systems and methods for handling attributes used for assignment generation in a value flow environment
JPWO2002046921A1 (ja) シーケンス解析方法およびシーケンス解析装置
JP4136594B2 (ja) データ処理方法およびデータ処理プログラム
JPH08305724A (ja) 設計支援情報文書管理装置
EP1503297A1 (en) Computer implemented methods of retrieving hit count data from a data base system and according computer program product
JPH117402A (ja) データ処理方法
JP3552339B2 (ja) データベースシステム
JPH08235033A (ja) オブジェクト指向データベース管理システムにおける結合演算方式
JPH06251064A (ja) 情報検索装置
US20020123811A1 (en) Production management system and program
JPH0934906A (ja) 図書管理装置
CN111949743A (zh) 网点运营数据获取方法、装置及设备
JPH07296009A (ja) データベース統合検索装置
JP3628030B2 (ja) データベース装置
JP3331250B2 (ja) 類似工程図の作成方法
CN114661704B (zh) 数据资源全生命周期管理方法、系统、终端及介质
JPH10232874A (ja) 情報処理ノウハウ共有方法