JP2996938B2 - 時系列データの格納方法及び記録媒体 - Google Patents
時系列データの格納方法及び記録媒体Info
- Publication number
- JP2996938B2 JP2996938B2 JP33052797A JP33052797A JP2996938B2 JP 2996938 B2 JP2996938 B2 JP 2996938B2 JP 33052797 A JP33052797 A JP 33052797A JP 33052797 A JP33052797 A JP 33052797A JP 2996938 B2 JP2996938 B2 JP 2996938B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- time
- attribute
- storing
- stored
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 48
- 238000013500 data storage Methods 0.000 claims description 10
- 238000005259 measurement Methods 0.000 description 21
- 238000007796 conventional method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000007430 reference method Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 230000001174 ascending effect Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Cash Registers Or Receiving Machines (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
ンダムアクセス可能な記憶装置に格納する方法及び記録
媒体に関する。
ては、小売業におけるPOS日次データがある。
る店舗Sで、ある商品Pが、ある日に売れた個数,およ
び、その金額、粗利,商品の値下販売による損失、廃棄
による損失、在庫量、仕入れ価格等の記録であり、会計
処理に利用される他、品揃えを見直したり、仕入れ数量
を決定する業務に利用される。この日次データの特徴は
大規模なことである。大規摸スーパーマーケットの場
合、店舗数は1000、1店舗で取り扱う商品は10万
種類、データを保存する日数は400日(1年強)程度
である。ただし、1店舗が取り扱う10万種類の商品の
うち、1日に売れる商品の種類は2万(全体の2割)程
度である。
ムアクセス可能な二次記憶装置に格納する従来の方法
を、図12に基づいて説明する。ある店舗Sで商品Pが
ある日に売れたり、廃棄による損失が発生するなどした
場合、図12に示すようなレコードが関係データベース
内の日次情報リレーションに追加される。ひとつのレコ
ードを構成するのは約20個程度のフィールドであり、
そのうち、「年月日」、「店舗コード」、「商品コー
ド」の組はリレーションの主キーである。商品コード
は、例えばJANコードと呼ばれる10進13桁のコー
ド、店舗コードはそのスーパーマーケットで適当に定め
た各店舗の識別コードで、10進3〜4桁程度の数値で
ある。
「店舗コード」、「商品コード」を付すことにより、販
売や廃棄などが全く発生しなかった場合には、レコード
を作成する必要がなく、すべての日についてレコードを
作成する場合と比較して、格納に必要な記憶容量を大幅
に削減できる。その他のフィールドには、販売数量、販
売金額、廃棄数量、粗利などの項目のデータが格納され
る。これらの項目は、値がゼロであることも多いので、
関係データベースに格納する場合、それぞれの項目を可
変長で保持することが多い。その結果、平均のレコード
長は100バイト程度となる。従って、大規模スーパー
マーケットの場合、日次情報リレーションの大きさは、
1000店舗×2万種類×400日×100バイト=8
000億バイト(=800GB)程度となる。なお先進
的なスーパーマーケットでは、日次データに代えて、1
日をさらにいくつかの時間帯に区切つてデータを格納す
ることにより、各店舖での時問帯ごとの作業計画に利用
しようとする動きもあり、格納されるPOSデータは、
今後さらに大規模化すると予想される。
的な演算は、「年月日」、「店舗コード」、「商品コー
ド」の全部もしくは一部を条件とする制約演算と、図1
3に示すような「商品コード」とその商品に関する種々
の情報を格納する「商品情報リレーション」との結合演
算である。このような演算では、ひとつのレコード内に
含まれるすべてデータを二次記憶装置からメインメモリ
に転送することになる。 一般にPOSの日次データを
使って種々の分析を行う場合、上記レコードに含まれる
すべての項目を参照することは希である。例えば、PO
Sデータを使って各商品の販売数量を予測する場合、そ
の商品の単価や販売数量等のデータを参照するが、損失
に関するデータ等を参照する必要はない。その代わり、
その店舖でその商品の単価や販売数量等のデータを、デ
ータベースに格納されている全期間に渡って参照する必
要がある。
来の日次データの格納方法では、ある対称(この場合、
店舗と商品の組合せ)に関して測定された各属性のデー
タがひとつのレコードとして格納されているため、参照
する必要のない属性のデータもメインメモリ上にロード
せざるを得ず、これが全体の処理時間を増大させてい
る。
の不具合を解決しようとするものとして、図14に示す
ように、ひとつのレコードを複数のレコードに分割して
格納する方法がある。しかし、この方法では、「年月
日」、「店舗コード」、「商品コード」を分割したそれ
ぞれのレコードに含める必要がある他、分割したレコー
ドのそれぞれに含まれる項目を参照する場合には、いわ
ゆる結合演算を行う必要があり、性能劣化の危険性があ
る。このような事情で、図14に示すように複数のレコ
ードに分割して格納するようなことは、実際には行われ
ない。
タに限ったことでなく、例えば、道路網の交通量を幹線
道路から生活道路まで含めて、毎分ごとに調べることに
よって得られる時系列データにも共通することである。
この場合、対称は交通量を測定する地点、項目として
は、子供/成人/老人に区分した歩行者がある方向に通
過した数と車種別に区分した車がある方向に通過した数
である。このような測定を、1分単位で24時間行うと
時間方向に1440個の要素からなる時系列データが得
られる。そして、夜間の生活道路のように交通量が全く
ない場合、POSデータの場合のある店舗である商品が
全く売れなかった日に相当する。
時系列データをランダムアクセス可能な二次記憶装置に
格納する従来の方法においては、参照する必要のない項
目のデータもメインメモリ上にロードせざるを得ず、こ
れが全体の処理時間を増大させるという問題点があっ
た。またひとつのレコードを複数のレコードに分割して
格納する方法によっては、分割したレコードのそれぞれ
に含まれる項目を参照する場合には、いわゆる結合演算
を行う必要があり、性能劣化を生じるという問題点があ
った。このような問題点は、大規模な時系列データの複
数項目を同時にメモリ上にロードせざるを得ないデータ
構造が原因であると考えられる。
ためになされたもので、大規模時系列データを関係デー
タベースに格納する従来の方法と比べて、少数の属性の
データを参照する処理を高速化するようなデータ格納方
法を提供することを目的とする。
て、必要な記憶容量を削減できるデータ格納方法を提供
することにある。
ータ参照処理の高速化、必要な記憶容量の削減を可能に
するデータ構造によるデータを記憶した記憶媒体を提供
することにある。
め、請求項1及び2記載の本発明は、ある時間における
複数の属性ごとのデータを持ち得る複数の対象について
の該属性ごとに経時的に得られるデータを記憶装置上に
格納するため、前記複数の対象の1の属性について経時
的に得られるデータを時間順に所定長で、同一の対象の
同一の時間についてのデータが相互に対応するように格
納する属性ファイルを前記複数の属性ごとに設け、前記
対象を特定する情報と、該対象の前記属性ファイルでの
位置を示す情報と、該対象のある時刻の全ての属性に対
するデータが既定値であるか否かを表す識別情報(例え
ば、1ビットのビットマップ)とを対応させて格納する
索引ファイルを設け、前記識別情報が特定値である場合
にのみ前記属性ファイルにデータを格納することを特徴
とする。
称に関して期間にわたって測定データを分析する場合、
多数の属性のうち一部の属性に関する測定データを参照
する場合に、属性ごとの測定データをひとつの属性ファ
イルに格納し、しかも、測定データの格納順序は、ひと
つの対称に関する測定時刻順であるため、測定データを
二次記憶装置から主記憶装置にロードする処理が高速化
される。また、識別情報を設けることにより、ある対称
に関して時刻に測定された各属性のデータがすべて既定
値の時、測定データを格納する必要がないため、そのよ
うな状況が頻繁に発生する時系列データについては、そ
の格納に必要な記憶容量を削減できる。また、各属性フ
ァイル内に測定データを所定長で格納することにより、
索引情報はすべての属性ファイルで共通化できるため、
索引情報を記憶するための領域を小さくできる。
における複数の属性ごとのデータを持ち得る複数の対象
についての該属性ごとに経時的に得られたデータを記憶
装置上に格納するため、前記複数の対象の1の属性につ
いて経時的に得られるデータを時間順に所定長で格納す
るための領域を予め割り当てた属性ファイルを前記複数
の属性ごとに設け、前記対象を特定する情報と、該対象
の前記属性ファイルでの位置を示す情報と、該対象のあ
る時刻の全ての属性に対するデータが既定値であるか否
かを表す識別情報とを対応させて格納する索引ファイル
を設け、ある対象についてある時間に新しいデータが得
られたとき、前記識別情報を更新し、前記識別情報が特
定値である場合にのみ前記割り当てられた領域に該得ら
れたデータを格納することを特徴とする。
対象についてある時間に新しいデータが得られたとき、
識別情報を更新し、識別情報が特定値である場合にのみ
予め割り当てられた領域に得られたデータを循環的に格
納するので、新しい測定データを追加し、最も古い側定
データを削除する処理を高速化できる。
乃至4のうち1項に記載の時系列データの格納方法また
は記録媒体であって、前記属性ファイルにデータを所定
長で格納する際のデータ幅の決定方法は、該属性ファイ
ルに格納すべきデータの値範囲を調べ、それらを表現可
能な大きさをデータ幅とすることを特徴とする。
ファイルにデータを所定長で格納する際のデータ幅は、
属性ファイルに格納すべきデータの値範囲を調べ、それ
らを表現可能な大きさをデータ幅ととするので、属性フ
ァイルの大きさを実際のデータの値範囲に対応した、必
要最小限の大きさとすることができる。
乃至4のうち1項に記載の時系列データの格納方法また
は記録媒体であって、前記属性ファイルにデータを所定
長で格納する際のデータ幅の決定方法は、該属性ファイ
ルに格納すべきすべてのデータの値の分布を調べ、大多
数のデータを表現できる大きさとし、該データ幅で表現
できないデータについては、前記領域には表現不能デー
タであることを示す値を格納し、該表現不能データを該
格納位置を検索キーとして、別領域に格納することを特
徴とする。
ファイルにデータを所定長で格納する際のデータ幅は、
属性ファイルに格納すべきすべてのデータの値の分布を
調べ、大多数のデータを表現できる大きさとし、該デー
タ幅で表現できないデータについては、本来のデータ領
域には表現不能データであることを示す値を格納し、表
現不能データを格納位置を検索キーとして、別領域に格
納するので、測定データ中に大きな値のデータが少数存
在する場合に、属性ファイルの大きさを小さくすること
ができる。
7または8記載の時系列データの格納方法または記録媒
体であって、少なくともひとつの前記属性ファイルにつ
いては、現時刻のデータを格納する代わりに、前時刻の
データとの差を格納し、データを所定長で格納するため
の前記領域にデータが治まらないときは別領域にデータ
を格納することを特徴とする。
時刻のデータを格納する代わりに、前時刻のデータとの
差を格納し、データを所定長で格納するための前記領域
にデータが治まらないときは別領域にデータを格納す
る。ほとんど値の変化がない属性については、前時刻の
測定データとの差を格納するようにすれば、そのほとん
どは値がゼロとなり、所定長でデータを格納する際に変
化があった時のみ別領域に格納できるため、属性ファイ
ルの大きさを大幅に小さくすることができる。
施の形態を説明する。
形態について説明する。
ータをN日分格納するためのランダムアクセス可能な二
次記憶装置上でのデータ構造を表わしている。ここで、
日次データが格納されている期問中の日を、第1日〜第
N日と呼ぶことにする。
は、ひとつの索引ファイル102と複数の属性ファイル
103で表現される。索引ファイル102は、商品コー
ド104、店舗コード105、オフセット106及びビ
ットマップ107の4個の要素からなる所定長のレコー
ドで構成されるファイルである。
図12に示す従来の格納方法と同じコードを使用する。
オフセット106は、属性ファイル103中の対応する
(商品コード104、店舗コード105)に対応するデ
ータの格納位置を保持する。ビットマップ107は、N
ビットで構成されるデータ構造であり、第k番目のビッ
トが0であれば、第k日の販売がないことを示す。
5)の組が与えられた時、あるいは、商品コード104
だけを与えられた時、上記索引ファイル102上の該当
するレコードを高速に検索する必要がある。そのために
は、索引ファイル102を構成する上記レコードは、
(商品コード104、店舗コード105)の組をキーと
して、昇順になるよう並べておく。あるいは、商品コー
ド104に対するハッシュ関数を使用してレコードの格
納位置を決めても良い。これらについては、広く知られ
ているので詳細な説明を省略する。
る。属性ファイル103は、図12のリレーションに含
まれる属性のうち、商品コード104、店舗コード10
5、年月日を除く各属性に対して、ひとつずつ設けられ
る。各属性ファイル103には、対応する属性の値を、
(商品コード104、店舗コード105)が同じものに
ついて、第1日から第N日まで年月日順に格納する。た
だし、第k日目のデータに関して、ビットマップ107
の対応するビット(第kビット)が0であれば、属性フ
ァイル103にはデータを格納しない。このデータの格
納順は、すべての属性ファイル103で共通とする。ま
た、個々のデータは所定長で格納する。
コード105、年月日)の組が与えられた時、各属性フ
ァイル103内の対応するデータの格納位置は、(各属
性ファイル103ごとに設定された所定長×データの要
素位置)で求めることができる。ただし、「データの要
素位置」とは、属性ファイル103上で該当するデータ
が最初から数えて何番目かを示す。このデータの要素位
置を求めるには、索引ファイル102内の各レコードに
設けたオフセット106とビットマップ107が使用さ
れる。オフセット106は、対応する(商品コード10
4、店舗コード105)に対応する最初のデータの要素
位置を示す。第k日目のデータの要素位置は、上記オフ
セット106に対応するビットマップ107の第1ビッ
ト〜第(k−1)ビットまでの1の数を加えたもので求
めることができる。
は、数値データの場合には、個々の属性が取り得る最大
の値を表現できるように、例えば、販売金額を32ビッ
トの固定小数点としても良いが、属性ファイル103の
大きさをより削減するため、属性ファイル103に格納
する全データの最大値および最小値を調べ、それらを表
現可能な範囲で最小のビット幅(あるいは、バイト幅)
とすることもできる。また、非数値データの場合には、
もっとも大きなバイト数を要するデータのサイズとす
る。
ド105、年月日)が与えられたとき(ステップS20
1)、販売数量を求める手順を図2を用いて説明する。
属性ファイル(例えば103a)がオープンされていな
ければオープンする(ステップS202〜ステップS2
05)。次に、与えられた商品コード104および店舗
コード105に対応する索引ファイル102内のレコー
ドRを検索する(ステップS206)。先に説明したよ
うに、(商品コード104、店舗コード105)をキー
として昇順に並んでいれば、2分探索法を用いることが
できる。また、ハッシュ法を用いることもできる。 こ
の検索の結果、レコードRが見つからなければ(ステッ
プS207のNO)、もともとデータベース中にその商
品コード104と店舗コード105の組合せのレコード
は存在しないことを示すので、「該当するデータは存在
しない」ということで検索が終了する。この原因として
は、商品コード104か店舗コード105に誤りがある
か、あるいは、その店舗でその商品は取り扱っていない
という結果となる。レコードRが存在する場合、与えら
れた年月日を第1日目〜第N日目のいずれに当たるか変
換する。ここでは、第k日目であるとする。
し、その値が0であれば、「該当するデータは存在しな
い」ということになる。この場合、「その店舗でその商
品は、与えられた年月日には販売や廃棄が一切なかっ
た」ことを示すので、結果は「販売数量=0と」なる。
フセットとレコードRの第1ビット〜第(k−1)ビッ
トまでの値を合計したものを加えることにより、属性フ
ァイル103a上の対応するデータが属性ファイル10
3aの何番目に存在するか求めることができる。その値
にその属性ファイル103aでのデータのビット長(バ
イト長)を乗じた位置からデータを読み出すことによ
り、販売数量を求めることが出来る。
ョンに含まれる属性のうち、商品コード104、店舖コ
ード105、年月日を除く各属性に対して、ひとつずつ
設けられるとしたが、例えば、販売数量と販売金額のよ
うに同時に参照される頻度の高い複数の属性をまとめて
ひとつの属性ファイル103に対応させることもでき
る。その場合、属性ファイル103中には、(販売数
量、販売金額)の組を格納すれば良い。
では、属性ファイル103にデータを所定長で格納する
際のビット長(バイト長)は、それが数値データの場合
には、格納しようとするデータの最大値および最小値を
表現可能な最小のビット数(バイト数)とし、非数値デ
ータの場合には、最も大きなバイト数を要するデータの
サイズとするとした。
例外的に大きな値をとるような場合、ほとんどのデータ
に対しては不必要に大きなビット数(バイト数)を割り
当てることになり、記憶領域に大きな無駄を生ずる危険
性がある。これを回避する方法を示す。
ータが何ビット(何バイト)で表現できるかヒストグラ
ムを作成する。具体的に言えば、最低限Wビット(Wバ
イト)あれば表現できるデータの個数を数えるためのカ
ウンタを必要数(例えば、32個)だけ用意する。そし
て、それらの初期値としてゼロを与える。そして、属性
ファイル103に格納すべき各データについて、それを
表現可能な最小限のビット数(バイト数)に対応するカ
ウンタをインクリメントする。例えば、データを2の補
数で表現する場合、データが127であれば、それを表
現するのに最低限必要なビット数は8(バイト数は1)
であるので、8ビット(1バイト)に対応するカウンタ
をインクリメントする。非数値データについても同様の
方法でデータを表現するのに最低限必要なビット数(バ
イト数)を求めれば良い。
参照することにより、例えば、99%以上のデータを表
現できるビット数(バイト数)を求める。例えば、デー
タの個数が全部で10億個であり、第1ステップの結
果、各カウンタの値が図3のとおりであったとする。
(ただし、説明に関係のないカウンタの値は、・・・・・・・・
で表わしている。)この場合、大きなビット長に対応す
るカウンタから値の累計をとり、全データの個数10億
の1%にあたる1000万を超える直前、図3の場合に
はそれが16ビット用カウンタであるので、すべてのデ
ータは16ビットで表現すると決める。
ヘデータを実際に格納する。この際、全体の1%程度の
データは、与えられた所定長の領域では表現できないの
で、それらのデータに対する特別の取扱いが必要にな
る。そのようなデータに対しては、まず、そのデータを
格納するための領域、上記の例では16ビットの領域
に、オーバーフローしているので本当の値は別領域に格
納されていることを示す特別な値を格納する。例えば、
全ビットが1であるような値をこの用途にのみ使用する
ことにする。そして、例えば属性ファイル103の本来
のデータを格納するための領域の後に、オーバーフロー
した値を格納する。このとき、そのデータの本来の格納
位置をキーとして、オーバーフローした値が高速に検索
できるよう、例えば、ハッシュ法を使用するのが良い。
上のデータ構造を、図5にデータの参照方法を示す。第
1の実施形態とほぼ同一であるが、データを参照する
時、その値がオーバーフローを示すか否かを検査し(ス
テップS512)、オーバーフローを示す場合(ステッ
プS512のYES)には、オーバーフロー領域の中か
ら、(レコードRのオフセット+第1ビット〜第(k−
1)ビットの合計)をキーに、本当のデータを獲得する
処理(ステップS513)が追加されている。このオー
バーフローか否かの判定に要する時間は全体の処理時間
と比較して無視できる程度の大きさである。このように
データ分布を調べて、ある大きさ以上のデータを別扱い
とすることにより、基本的にはデータを所定長で保持す
る方式でありながら、データを可変長で保持するのと余
り変わらない程度までデータ格納に必要な記憶容量を減
らすことができる。さらに、日次データを関係データベ
ースに格納する従来の方式では、各レコードごとに商品
コード104、店舗コード105、年月日が必要であっ
たが、本発明では、各レコードに対して必要なのは、ビ
ットマップ107の1ビットであり、商品コード104
と店舗コード105の組は、索引ファイル102に1回
出現するだけである。そのため、従来の方法とファイル
構造全体で必要な記憶容量を比較すると、本実施形態の
方がより少ない記憶容量で済むという結果を得ている。
コードのように、ある商品コードとある店舗コードの組
について、値はゼロではないが、時刻によってほとんど
変化しない属性があり得る。その場合、対応する属性フ
ァイル103には、値そのものではなく、前時刻の値と
の差分を格納することにし、先に述べた第1の実施形態
の変形を適用すれば、その属性ファイル103の大きさ
を大幅に削減できる。例えば、データを所定長で格納す
る際のビット幅を1ビットとすれば、値の変化がほとん
ど無い場合には、その属性ファイル103の大きさは全
体の大きさと比較して、ほとんど無視できる。
暗黙のうちにデータの追加や削除はないという前提に基
づいていた。本実施形態では、データの新規追加および
期限切れデータの削除を行う場合について説明する。
ァイル103の構造を図6に基づいて説明する。
ドは、第1の実施形態と比較して、最新データ位置60
0というフィールドが追加されている。また、属性ファ
イル103にデータが所定長で格納されるという点でも
第1の実施形態と同じである。 ただし、第1実施形態
では、属性ファイル103内には測定されたデータが隙
間なく詰め込む方法を示したが、データの新規追加およ
び期限切れデータの削除を行う場合には、この点を改善
する必要がある。いま、N日分のデータを格納するデー
タベースにおいて、データを蓄積し始めてから第X日目
(X>Nとする)のデータを新規に追加し、第(X−
N)日目のデータを削除する場合を考える。 新規に追
加しようとする測定データが、すべての属性について既
定値であれば、属性ファイル103に追加する必要はな
い。また、もし第(X−N)日目のデータが属性ファイ
ル103中に存在すれば、その領域を、追加されるデー
タ格納用に再利用できる。厄介なのは、新規に追加する
データが、少なくともいずれかの属性が既定値でなく、
かつ、第(X−N)日目のデータが既定値であったた
め、属性ファイル103上に新規にデータを格納する領
域を確保できない場合である。 第2の実施形態では、
商品コード104と店舗コード105の組に対して属性
ファイル103上の領域を割当てる際、実際に格納しな
ければならないデータの個数にある一定の余裕をみて、
領域を割り当てる。例えば、実際に格納しなければなら
ないデータの個数がNに近い場合には、N個のデータ格
納用エントリを割り当て、実際に格納しなければならな
いデータの個数が0に近い場合には、(N/10)個程
度のデータ格納用エントリを割り当てる。商品コード1
04と店舗コード105の組に対するデータ格納用エン
トリの割り当ては、各属性ファイル103で同じになる
ように行う。
フセット」は、このように割り当てた領域の先頭位置を
指す。また、次のレコードの「オフセット」との差は、
その商品コード104と店舗コード105の組に割り当
てられたデータ格納用エントリの個数を表わす。
03内で最新のデータが格納されているエントリを示
す。ただし、最新のデータとは、第(X−1)日目以前
で少なくともある属性の値が既定値でなかった最後の日
のデータである。
105の組に対して、データを新規に追加する手順を図
7に基づいて説明する。
プS701)。次に、索引ファイル102´および属性
ファイル103が更新モードでオープンされていなけれ
ば、更新モードでオープンする(ステップS702〜ス
テップS705)。
られた商品コード104と店舗コード105に対応する
レコードを検索する(ステップS706)。もし、対応
するレコードが見つからない場合(ステップS707の
NO)、新しい店舖の開店、新商品の登場、ある店舗で
のある商品の取り扱い開始などの可能性があり、いずれ
にしても索引ファイル102´上に新たなレコードを追
加し、また、属性ファイル103上にデータ格納用の領
域を確保する(ステップS708)。そして、再度ステ
ップS706から処理を再開する。
テップS707のYES)、与えられた年月日を第k日
目に変換する。ただし、本実施形態では、N日分の時系
列データを格納するため、kをNで割り算した余り(k
mod N)を求める(ステップS709)。
ットを調べる。もし、0であれば(ステップS710の
NO)、削除すべきN日前のデータは属性ファイル10
3に格納されていないことを示すので、レコードRのビ
ットマップ107´の全ビットの値を合計した結果L
と、この領域に割り当てられたエントリ数Eを求める
(ステップS711)。ただし、EはレコードRと次の
レコードR+1のオフセットの差分で求めることができ
る。
のYES)、今回のデータ追加をそのまま行うと、N日
経っていないデータに上書きしてしまうことになるた
め、領域の拡張を行う(ステップS715)。この領域
の拡張は、隣接する領域に余裕がある場合には、そこか
らエントリを少し奪うことによって実現するのが実行速
度の点で望ましい。
´の第k番目のビットを1に変え(ステップS71
4)、レコードRの最新データ位置を次のエントリを指
すよう更新し、その位置にデータを書き込む(ステップ
S715)。ただし、最新データ位置が、既にその領域
用に割り当てられた最後のエントリを指しているのを更
新する場合、最初のエントリ、すなわちレコードRのオ
フセット106´に戻し、その領域を循環的に使用す
る。
ットが1である場合には、ステップS715だけを実行
すれば良い。
加・削除方法である。図8は本実施形態におけるデータ
の参照方法を示すフローチャートである。第1の実施形
態の場合とほぼ同一であるが、与えられた年月日を第k
日目に当たるとして変換するとともに、今日を第N日目
に当たるとして変換し(ステップS809)、第kビッ
トが1であれば、レコードRのオフセット107´とレ
コードRの第(k+1)1ビット〜第Nビットまでの値
を合計したものを加えることにより、属性ファイル10
3a上の対応するデータが属性ファイル103aの何番
目に存在するか求め(ステップS810)、その値にそ
の属性ファイル103aでのデータのビット長(バイト
長)を乗じた位置からデータを読み出す(ステップS8
11)点が異なっている。
索引ファイルの一部102´とひとつの属性ファイルの
一部103a´を示している。この例では、格納できる
データを8日分としている。索引ファイル102´の最
初のレコードは、商品コード(104a)X、店舗コー
ド(105a)αに対応し、属性ファイル103a´上
に割り当てられた領域は、LからL+4までであること
がわかる。また、ビットマップ107の大きさは8日分
に対応して8ビットである。今日は、データを格納して
から第20日目であるとすると、ビットマップ107a
の第4(20mod 8)ビット(ここでは、左端から
数えて5番目とする)が今日に対応する。第4ビットの
値は1であり、また、最新データ位置は0であるので、
属性ファイル103a´のLの領域に今日のデータが格
納されていることがわかる。また、昨日に関しては、ビ
ットマップ107aの第3ビット(左端から数えて4番
め)は0であるので、データがなかったことを表してい
る。また、一昨日に関しては、ビットマップ107aの
第2ビット(左端から数えて3番目)は1であるので、
最新データ位置の直前(先に述べたように、L〜L+4
は循環的に使用されるため、L+4)にデータがあるこ
とを表している。
実施形態と比較して、商品コード104と店舗コード1
05の組が非常に多い場合に、高い性能を期待できる索
引ファイルの構成法を図10に示す。本実施形態では、
第2の実施形態で説明した索引ファイル102を、第1
索引ファイル102aと第2索引ファイル102bに分
割して保持する。また、図9には陽に示していないが、
第2実施形態では商品コードとして13桁のJANコー
ドをそのまま使用していたが、本実施形態では13桁の
JANコードをハッシングにより、よりコンパクトなコ
ード(例えば、最大N種類の商品を扱う小売業者であれ
ば、0〜N+αの数値)に変換したものを使用する。そ
して、商品の追加が行なわれた場合、上記変換後のコー
ドとして、(これまでに存在する最も大きなコード+
1)を割当てる。これにより、索引ファイル102と属
性ファイル103の全面的な再構成を回避できる。
105a、商品ビットマップ107X、オフセット10
6X)の3つ組からなる所定長のレコードである。ある
店コード105aのレコードを高速に検索するために、
店コード105aで昇順に並べる。商品ビットマップ1
07Xは、その店舖がある商品を扱っているか否かを上
記変換後の商品コードのビット位置の1/0で表現した
ものである。オフセット106Xは、その店コード10
5aに対応する第2索引ファイル102b上での開始位
置を保持している。この第1索引ファイル102aは十
分小さく、主記憶装置に常駐させておくことが可能であ
る。
ト106、最新データ位置600、ビットマップ10
7)の3個の要素で構成される所定長のレコードの集合
である。それぞれの要素は第2の実施形態と同じ働きを
するので説明を割愛する。この第2索引ファイル102
bは、相当大きく、データ検索の際は該当部分をファイ
ルから主記憶装置に読み出した後、プロセッサで処理さ
れる。
の参照方法を示したフローチャートである。第1の実施
形態の場合と異なるのは、索引ファイルを2つオープン
している(ステップS1104〜ステップS1107)
点、商品コードの通し番号への変換を行っている(ステ
ップS1108〜ステップS1109)点、ビットマッ
プのビットの合計・属性ファイル中からの読み込みをそ
れぞれ2つの索引ファイルについて行っている(ステッ
プS1111〜ステップS1118)点である。個々の
ステップ中の処理については第1の実施形態の場合と同
様であるので、ここでは説明を省略する。
タ格納法は、時系列データを関係データベースに格納す
る従来の方法と比較して、データ分析などで行われる典
型的なデータ参照の速度を1桁程度向上できる。これ
は、参照すべき属性のデータのみを保持する属性ファイ
ルを設け、さらに、データを所定長で格納することによ
り実現される。
ても、本発明は従来の方法より勝っている場合がある。
これは、大部分のデータを表現可能なビット幅に格納
し、それで収まりきらないデータは特別に処理するこ
と、および、従来の格納法では必須であったリレーショ
ンのキー情報に相当する情報をほとんど持つ必要がない
ことにより実現されている。
を実際に適用した結果、データ参照速度は従来技術によ
る場合に比べて約10倍高速になった。また、必要な記
憶容量は2倍以上有効に利用することができるようにな
った。このように、本発明は、データ検索等の処理の速
度を向上させ、また、データの記憶容量の軽減を可能と
し、利便性の向上、ハード資源の節約に著しく寄与す
る。この効果は、精密データに基づく精密な販売予測な
どのために処理すべきデータ量がますます大量化する現
在にあっては特に大なるものである。
対称である期間にわたって測定データを分析する場合、
多数の属性のうち一部の属性に関する測定データを参照
する場合に、属性ごとの測定データをひとつの属性ファ
イルに格納し、しかも、測定データの格納順序は、ひと
つの対称に関する測定時刻順であるため、測定データを
二次記憶装置から主記憶装置にロードする処理が高速化
される。また、識別情報を設けることにより、ある対称
に関して時刻に測定された各属性のデータがすべて既定
値の時、測定データを格納する必要がないため、そのよ
うな状況が頻繁に発生する時系列データについては、そ
の格納に必要な記憶容量を削減できる。また、各属性フ
ァイル内に測定データを所定長で格納することにより、
索引情報はすべての属性ファイルで共通化できるため、
索引情報を記憶するための領域を小さくできる。
対象についてある時間に新しいデータが得られたとき、
識別商法を更新し、識別情報が既定値でない場合に予め
割り当てられた領域に得られたデータを格納するので、
新しい測定データを追加し、最も古い側定データを削除
する処理を高速化できる。
ファイルにデータを所定長で格納する際のデータ幅は、
属性ファイルに格納すべきすべてのデータの値範囲を調
べ、それらを表現可能な大きさをデータ幅とするので、
属性ファイルの大きさを実際のデータの値範囲に対応し
た、必要最小限の大きさとすることができる。
ァイルにデータを所定長で格納する際のデータ幅は、属
性ファイルに格納すべきすべてのデータの値の分布を調
べ、大多数のデータを表現できる大きさとし、その大き
さでは表現できないデータについては、本来のデータ領
域には表現不能データであることを示す値を格納し、表
現不能データを格納位置を検索キーとして、検索可能な
別領域に格納するので、測定データ中に大きな値のデー
タが少数存在する場合に、属性ファイルの大きさを小さ
くすることができる。
時刻のデータを格納する代わりに、前時刻のデータとの
差を格納し、データを所定長で格納するための前記領域
にデータが治まらないときは別領域にデータを格納す
る。ほとんど値の変化がない属性については、前時刻の
測定データとの差を格納するようにすれば、そのほとん
どは値がゼロとなり、所定長でデータを格納する際に変
化があった時のみそれを検索可能な別領域に格納できる
ため、属性ファイルの大きさを大幅に小さくすることが
できる。
データのみを保持する属性ファイルを設け、さらに、デ
ータを所定長で格納することにより、時系列データを関
係データベースに格納する従来の方法と比較して、デー
タ分析などで行われる典型的なデータ参照の速度を1桁
程度向上できる。
幅に格納し、それで収まりきらないデータは特別に処理
すること、および、従来の格納法では必須であったリレ
ーションのキー情報に相当する情報をほとんど持つ必要
がないことにより、本発明のデータ格納に要する記憶容
量についても、従来の方法より勝っている場合が生ずる
効果がある。
タのデータ構造を示した図、
示すフローチャート、
た図、
タのデータ構造を示した図、
示すフローチャート、
タのデータ構造を示した図、
方法を示すフローチャート、
示すフローチャート、
ファイルの図、
性ファイルの構成を示す図、
を示すフローチャート、
図、
して格納する図である。
Claims (10)
- 【請求項1】 ある時間における複数の属性ごとのデー
タを持ち得る複数の対象についての該属性ごとに経時的
に得られるデータを記憶装置上に格納するため、 前記複数の対象の1の属性について経時的に得られるデ
ータを時間順に所定長で、同一の対象の同一の時間につ
いてのデータが相互に対応するように格納する属性ファ
イルを前記複数の属性ごとに設け、 前記対象を特定する情報と、該対象の前記属性ファイル
での位置を示す情報と、該対象のある時刻の全ての属性
に対するデータが既定値であるか否かを表す識別情報と
を対応させて格納する索引ファイルを設け、 前記識別情報が既定値でない場合に前記属性ファイルに
データを格納することを特徴とする時系列データの格納
方法。 - 【請求項2】 ある時間における複数の属性ごとのデー
タを持ち得る複数の対象についての該属性ごとに経時的
に得られるデータを記録した記録媒体であって、 前記複数の対象の1の属性について経時的に得られるデ
ータは、前記複数の属性ごとに設けられた属性ファイル
及び該各属性ファイルに共通の索引ファイルに記録さ
れ、 前記属性ファイルは、データが同一の対象の同一の時間
についてのデータが相互に対応するように時間順に所定
長で記録されるデータ領域を有し、 前記索引ファイルは、前記対象を特定する情報と、該対
象の前記属性ファイルでの位置を示す情報と、該対象の
ある時刻の全ての属性に対するデータが既定値であるか
否かを表す識別情報とが記録されるデータ領域を有し、 前記識別情報が既定値でない場合に前記属性ファイルに
データを格納することを特徴とする時系列データを記録
した記録媒体。 - 【請求項3】 ある時間における複数の属性ごとのデー
タを持ち得る複数の対象についての該属性ごとに経時的
に得られたデータを記憶装置上に格納するため、 前記複数の対象の1の属性について経時的に得られるデ
ータを時間順に所定長で格納するための領域を予め割り
当てた属性ファイルを前記複数の属性ごとに設け、 前記対象を特定する情報と、該対象の前記属性ファイル
での位置を示す情報と、該対象のある時刻の全ての属性
に対するデータが既定値であるか否かを表す識別情報と
を対応させて格納する索引ファイルを設け、 ある対象についてある時間に新しいデータが得られたと
き、前記識別情報を更新し、前記識別情報が特定値であ
る場合にのみ前記割り当てられた領域に該得られたデー
タを格納することを特徴とする時系列データの格納方
法。 - 【請求項4】 ある時間における複数の属性ごとのデー
タを持ち得る複数の対象についての該属性ごとに経時的
に得られるデータを記録した記録媒体であって、 前記複数の対象の1の属性について経時的に得られるデ
ータは、前記複数の属性ごとに設けられた属性ファイル
及び該各属性ファイルに共通の索引ファイルに記録さ
れ、 前記属性ファイルは、データを所定長で記録するための
データ領域を予め割当て、 前記索引ファイルは、前記対象を特定する情報と、該対
象の前記属性ファイルでの位置を示す情報と、該対象の
ある時刻の全ての属性に対するデータが既定値であるか
否かを表す識別情報とが記録されるデータ領域を有し、 ある対象についてある時間に新しいデータが得られたと
き、前記識別情報を更新し、前記識別情報が特定値であ
る場合にのみ前記割り当てられた領域に該得られたデー
タを格納することを特徴とする時系列データを記録した
記録媒体。 - 【請求項5】 前記属性ファイルにデータを所定長で格
納する際のデータ幅の決定方法は、該属性ファイルに格
納すべきデータの値範囲を調べ、それらを表現可能な大
きさをデータ幅とすることを特徴とする請求項1または
3記載の時系列データの格納方法。 - 【請求項6】 前記属性ファイルにデータを所定長で格
納する際のデータ幅の決定方法は、該属性ファイルに格
納すべきすべてのデータの値範囲を調べ、それらを表現
可能な大きさをデータ幅とすることを特徴とする請求項
2または4記載の時系列データを記録した記録媒体。 - 【請求項7】 前記属性ファイルにデータを所定長で格
納する際のデータ幅の決定方法は、該属性ファイルに格
納すべきすべてのデータの値の分布を調べ、大多数のデ
ータを表現できる大きさとし、該データ幅で表現できな
いデータについては、前記領域には表現不能データであ
ることを示す値を格納し、該表現不能データを該格納位
置を検索キーとして、別領域に格納することを特徴とす
る請求項1または3記載の時系列データの格納方法。 - 【請求項8】 前記属性ファイルにデータを所定長で格
納する際のデータ幅の決定方法は、該属性ファイルに格
納すべきすべてのデータの値の分布を調べ、大多数のデ
ータを表現できる大きさとし、該データ幅で表現できな
いデータについては、前記領域には表現不能データであ
ることを示す値を格納し、該表現不能データを該格納位
置を検索キーとして、検索可能な別領域に格納すること
を特徴とする請求項2または4記載の時系列データを記
録した記録媒体。 - 【請求項9】 少なくともひとつの前記属性ファイルに
ついては、現時刻のデータを格納する代わりに、前時刻
のデータとの差を格納し、データを所定長で格納するた
めの前記領域にデータが治まらないときは別領域にデー
タを格納することを特徴とする請求項7記載の時系列デ
ータの格納方法。 - 【請求項10】 少なくともひとつの前記属性ファイル
については、現時刻のデータを格納する代わりに、前時
刻のデータとの差を格納し、データを所定長で格納する
ための前記領域にデータが治まらないときは別領域にデ
ータを格納することを特徴とする請求項8記載の時系列
データを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33052797A JP2996938B2 (ja) | 1997-12-01 | 1997-12-01 | 時系列データの格納方法及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33052797A JP2996938B2 (ja) | 1997-12-01 | 1997-12-01 | 時系列データの格納方法及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11161710A JPH11161710A (ja) | 1999-06-18 |
JP2996938B2 true JP2996938B2 (ja) | 2000-01-11 |
Family
ID=18233640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33052797A Expired - Lifetime JP2996938B2 (ja) | 1997-12-01 | 1997-12-01 | 時系列データの格納方法及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2996938B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100736100B1 (ko) | 2005-01-13 | 2007-07-06 | 삼성전자주식회사 | 디지털 저작권 관리 장치 및 방법 |
KR101426673B1 (ko) * | 2012-02-14 | 2014-08-05 | 주식회사 케이티 | 검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법 |
-
1997
- 1997-12-01 JP JP33052797A patent/JP2996938B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH11161710A (ja) | 1999-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4463431B2 (ja) | データベースから情報を抽出するための方法 | |
US7454403B2 (en) | Method and mechanism of improving performance of database query language statements using data duplication information | |
CN103733195B (zh) | 管理用于基于范围的搜索的数据的存储 | |
EP1504377B1 (en) | Storing and querying relational data in compressed storage format | |
KR101708261B1 (ko) | 개별 액세스 가능한 데이터 유닛의 스토리지 관리 | |
US7783855B2 (en) | Keymap order compression | |
US7243110B2 (en) | Searchable archive | |
US20040133581A1 (en) | Database management system, data structure generating method for database management system, and storage medium therefor | |
EP0877324A2 (en) | Association rule generation and group-by processing system | |
KR20090075885A (ko) | 개별적으로 액세스 가능한 데이터 유닛의 기억 관리 방법 및 시스템 | |
US20060149796A1 (en) | Archiving engine | |
JPS6115243A (ja) | メモリ割当て方法 | |
JP2769065B2 (ja) | デジタルデータ処理システムに使用する方法及び装置 | |
JPS6115246A (ja) | 可変長ビット列生成装置 | |
JP2996938B2 (ja) | 時系列データの格納方法及び記録媒体 | |
JP4562749B2 (ja) | 文書の圧縮格納方法及び装置 | |
US8504552B2 (en) | Query based paging through a collection of values | |
JP2004110327A (ja) | 時系列相関抽出装置 | |
JPH0352068A (ja) | 論理演算方式 | |
JP3601719B2 (ja) | 相関のあるデータ組み合わせの数え上げ方式 | |
JP2706021B2 (ja) | 構造型データベースにおける検索高速化方法 | |
JP7185264B2 (ja) | 情報検索装置、データベースの更新方法、データベースの更新装置、データベース更新用プログラム | |
Meo | A new approach for the discovery of frequent itemsets | |
JP2541788B2 (ja) | 商品分析デ―タベ―ス装置 | |
JPH0262696A (ja) | Posシステムにおけるアイテム管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19991012 |
|
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 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071029 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081029 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091029 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101029 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101029 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111029 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111029 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121029 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121029 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131029 Year of fee payment: 14 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |