JP2007310844A - データ処理システム - Google Patents
データ処理システム Download PDFInfo
- Publication number
- JP2007310844A JP2007310844A JP2006142174A JP2006142174A JP2007310844A JP 2007310844 A JP2007310844 A JP 2007310844A JP 2006142174 A JP2006142174 A JP 2006142174A JP 2006142174 A JP2006142174 A JP 2006142174A JP 2007310844 A JP2007310844 A JP 2007310844A
- Authority
- JP
- Japan
- Prior art keywords
- data
- server
- lowest
- data item
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
【解決手段】DBサーバ14とAPサーバ12を備えたデータ処理システム10。APサーバ12は、メモリ26と、DBサーバ14に対しデータの読み出しを指令するデータ処理部22と、DBサーバ14から送信されたデータを参照型及びビット配列を含む木構造のデータに変換し、メモリ26に格納するデータ圧縮部24を備える。
【効果】APサーバのメモリ26上にDBサーバのテーブルが参照型及びビット配列を含む木構造のデータとして再現されるため、DBサーバにおけるディスクI/Oの発生を回避でき、データの検索速度が向上する。
【選択図】図13
Description
また、処理速度の向上を図るため、複数のAPサーバを並列配置させることで負荷を分散させることも行われている。
もちろん、データベースシステムのベンダ各社は、様々な技術を駆使してソフトウェア及びハードウェアの両面からDBサーバ自体の高速化を図ってきており、その結果一定の成果は上がっているが、その分システムの価格が上昇することは否めない。
また、今後ともクライアントサーバ型システムに担わされるデータベースの規模が増大を続ける限り、いずれはディスクI/O(データの読み書き)速度が壁となり、DBサーバの性能アップでは対応できない時期が来るものと予想される。
しかも、表形式のデータを木構造のデータに変換する過程で重複する最上位のデータ項目のデータが除去され、また最上位以外の下位データ項目のデータについてはビット型やブーリアン型、参照型でその存在が表現されるようになるため、全体のデータ量が大幅に圧縮される。このため、比較的容量の小さいAPサーバのメモリでも効率的に必要データを収容することが可能となる。
ロードバランサ16と各APサーバ12間、及び各APサーバ12とDBサーバ14間はネットワークによって接続されている。
また、各APサーバ12に対しては、イントラネット18やインターネット等のネットワーク及びロードバランサ16を介して多数のクライアント端末20が接続されている。
各APサーバ12のハードディスク(図示省略)には、OS及びこのシステム専用のアプリケーションプログラムがセットアップされており、APサーバ12のCPUがこれらのプログラムに従って動作することにより、上記のデータ処理部22及びデータ圧縮部24が実現される。
データベース管理システム28は、データベース30を管理し、データベース30に格納されたデータの入出力、更新、および所定の演算などを行う。
これらのデータ項目間には概念上の階層構造が存在し、日付は最上位項目、店Cdは中位項目、商品Cdは最下位項目に該当する。
まず、APサーバ12のデータ処理部22が起動すると(図3のS10)、DBサーバ14に対してSQL文を発行し、データの抽出をリクエストする(S12)。
この際データ処理部22は、例えば図2のテーブルに格納された各レコードを、日付×店コードで特定されるグループ単位で、かつ日付、店コード、商品コードに基づいて昇順に整列させた状態で送信することを指令するSQL文を生成し、DBサーバ14に送信する。
データ圧縮部24は、各レコードの日付と店コードに重複する値が存在するか否かをチェックし、重複がある場合には一つの日付及び一つの店コードを残し、他のデータを削除した後、メモリ26に格納する(S16)。
図示の通り、日付(20060315)及び店コード(600)のデータは先頭レコードについてのみ残されており、他のレコードからは削除されている。この時点で、日付及び店コードが削除されたレコードに係る商品コードは、先頭レコードの商品コードと共に配列として残された日付及び店コードに関連付けられている。
図6(a)の場合には、店コード及び商品コードの双方について重複する先行データが存在しないため、メモリ26上のデータはそのまま維持される(S22)。
2006年3月15日の店コード:601店に係るグループのデータに対応した図6(b)の場合には、商品コードの「491234567891」及び「491234567893」の双方について重複するデータが先行のデータグループに存在するため、データ圧縮部24はこれらを削除すると共に、先行商品コードの実体データを参照する型に置き換える(S24)。
これに対し、店コード「601」については重複するデータが先行のデータグループに存在しないため、データ圧縮部24は当該店コードをそのまま維持する(S22)。
因みに、図6(c)は2006年3月16日の店コード:600店に係るグループのデータに対応しており、店コード及び商品コードの全データについて先行データが存在しているため、データ圧縮部24によって実データが削除されると共に、先行する実データの参照型に置き換えられている。
この結果、図7に示すように、DBサーバ14のデータベース30内に格納されていたレコードが、APサーバ12のメモリ26上に参照型を含む木構造のデータとして再現される(図4のS28)。
この木構造においては、最上位の日付から複数の店コードが枝分かれしており、各店コードには商品コードの配列がぶら下がっている。
このディスティンクト・リスト32は、上記参照型を含む木構造のデータ中に存在する商品コードの類型を、重複することなく昇順に整列させたリストである。
商品コードを参照型で表現した場合、32ビットシステムでは1参照当たり4バイトのメモリを消費することになるが(64ビットシステムでは8バイト)、ブーリアン型の場合には1バイトで特定の商品コードの存在を表現できるため、この時点でデータ容量の大幅な圧縮が実現されている。
このビット配列は、図11に示すように、8桁の二値データ(1または0)を備えており、各桁には下から1、2、4、8、16、32、64、−128の定数が割り当てられている。
ここでデータ圧縮部24は、ブーリアン配列のある桁に「true」が格納されている場合には、ビット配列の対応の桁に「1」をセットし、「false」が格納されている場合には「0」をセットする。
図11(b)の場合には、商品コードの存在がブーリアン値のfalse, true, false, trueで表現されているため、データ圧縮部24がビット配列の上4桁に「0101」をセットすると共に、下4桁に「該当する値なし」ということで「0」をセットする様子を示している。この「01010000」のビット配列は、上記した各桁の定数を適用することにより、「80」という数値を表していることになる。
図11(c)の場合には、商品コードの存在がブーリアン値のtrue, false, true, trueで表現されているため、データ圧縮部24がビット配列の上4桁に「1011」をセットすると共に、下4桁に「該当する値なし」ということで「0」をセットする様子を示している。この「10110000」のビット配列は、上記した各桁の定数を適用することにより、「−80」という数値を表していることになる。
図12(b)の場合には、商品コードの存在がブーリアン値のtrue, false, false, false, false, false, false, falseで表現されているため、データ圧縮部24がビット配列の最初の桁に「1」をセットすると共に、残りの桁に「0」をセットする様子を示している。この「10000000」のビット配列は、上記した各桁の定数を適用することにより、「−127」という数値を表していることになる。
例えば、2006年3月15日の600店における商品コードとして「11110000」のビット配列が関連付けられていた場合、ここから「true, true,true, true, false, false, false, false」のブーリアン配列が導かれ、これをディスティンクト・リスト32と対比することにより、「491234567890」、「491234567891」、「491234567892」、「491234567893」の具体的な商品コードを特定することが可能となる(下4桁のfalseはディスティンクト・リスト32のサイズと合致しないため、無視される)。
この際、データ処理部22は各ビット配列をブーリアン配列に変換した後、ディスティンクト・リスト32を参照することにより、各商品コードを特定する。
ブーリアン配列の場合には、1つの状態(true or false)を表現するのにメモリを1バイト消費し、4つの状態を表現するのであれば4バイトのメモリを消費することになる。
これに対し、8桁のビット配列を用いた場合には、1バイトで8つの状態を表示可能となり、メモリの使用量を劇的に抑制可能となる。
図14はその具体例を示すものであり、ブーリアン配列が12桁である場合には1〜8桁までを第1のビット配列によって表現し、9〜12桁までが第2のビット配列によって表現される。
この場合、データ処理部22は第1のビット配列を参照することによってブーリアン配列の上8桁を特定し、また第2のビット配列を参照することによってブーリアン配列の下4桁を特定する。
その後、データ処理部22はディスティンクト・リストを参照することによって具体的な商品コードを特定する。
すなわち、データ圧縮部24は、ディスティンクト・リスト32の各要素と各商品コードの値を、商品コードの上位データ項目である店コードを共通にする兄弟単位で順番にマッチングさせていき、ディスティンクト・リスト32の要素と一致する場合には、当該商品コードを削除すると共に、メモリ26上に設けた所定桁数のビット配列における対応位置に1をセットし、ディスティンクト・リスト32の値が存在しない場合には0を対応位置にセットする。
この場合もデータ処理部22は、メモリ26上に形成されたビット配列の各桁の値(1または0)とディスティンクト・リスト32を参照することにより、商品コードの値を取得する。
この後で、重複する店コードについては1の実データのみをメモリ26上に残し、他のデータは残された実データを参照する型に変換するようにしても勿論よい。
12 APサーバ
14 DBサーバ
16 ロードバランサ
18 イントラネット
20 クライアント端末
22 データ処理部
24 データ圧縮部
26 メモリ
28 データベース管理システム
30 データベース
32 ディスティンクト・リスト
34 商品コードの配列
Claims (7)
- DBサーバとAPサーバを備えたデータ処理システムであって、
上記DBサーバが、データベース管理システムと、テーブルを格納したデータベースを備え、
上記APサーバが、メモリと、上記DBサーバにSQL文を発行し、上記テーブルに格納されたデータの読み出しを指令するデータ読み出し手段と、DBサーバから送信されたデータを少なくともビット配列を含む木構造のデータに変換し、上記メモリに格納するデータ圧縮手段と、上記ビット配列を含む木構造のデータに対し検索処理を実行するデータ検索手段とを備えたことを特徴とするデータ処理システム。 - 上記のデータ圧縮手段が、上記DBサーバから送信された各レコードの中で、少なくとも最上位のデータ項目については、値が相互に重複する場合に一つのレコードのデータを残して他のレコードのデータを削除し、削除された上位データに従属していた下位データを残された上位データに関連付ける第1の処理と、
残された最上位のデータ項目同士を一つの根の元に結合させ、木構造のデータを生成する第2の処理と、
最下位のデータ項目に含まれる値の類型を抽出し、これらを所定の順序で整列させたディスティンクト・リストを生成し、メモリに格納する第3の処理と、
上記ディスティンクト・リストに含まれる各要素と最下位のデータ項目の値とを、親のデータ項目を共通にする兄弟単位で順にマッチングさせ、ディスティンクト・リストの要素が最下位のデータ項目に存在する場合には、メモリ上に設けたビット配列における対応位置に1をセットすると同時に実データを削除し、該当の値が最下位のデータ項目に存在しない場合には上記ビット配列の対応位置に0をセットする第4の処理を実行し、
上記データ検索手段が、各ビット配列及び上記ディスティンクト・リストを参照することにより、最下位のデータ項目の値を特定することを特徴とする請求項1に記載のデータ処理システム。 - 上記のデータ圧縮手段が、上記DBサーバから送信された各レコードの中で、少なくとも最上位のデータ項目については、値が相互に重複する場合に一つのレコードのデータを残して他のレコードのデータを削除し、削除された上位データに従属していた下位データを残された上位データに関連付ける第1の処理と、
残された最上位のデータ項目同士を一つの根の元に結合させ、木構造のデータを生成する第2の処理と、
最下位のデータ項目に含まれる値の類型を抽出し、これらを所定の順序で整列させたディスティンクト・リストを生成し、メモリに格納する第3の処理と、
上記ディスティンクト・リストに含まれる各要素と最下位のデータ項目の値とを、親のデータ項目を共通にする兄弟単位で順にマッチングさせ、ディスティンクト・リストの要素が最下位のデータ項目に存在する場合には、メモリ上に設けたディスティンクト・リストと同サイズのブーリアン配列における対応位置にブーリアン型のtrueをセットすると同時に実データを削除し、該当の値が最下位のデータ項目に存在しない場合には上記ブーリアン配列の対応位置にブーリアン型のfalseをセットする第4の処理と、
上記のブーリアン配列をビット配列に変換する第5の処理を実行し、
上記データ検索手段が、各ビット配列をブーリアン配列に変換し、各ブーリアン配列及び上記ディスティンクト・リストを参照することにより、最下位のデータ項目の値を特定することを特徴とする請求項1に記載のデータ処理システム。 - 上記のデータ読み出し手段が、上記SQL文において一または複数のデータ項目の値を指定することにより、上記DBサーバから上記テーブルをグループに分割して読み出す処理を実行し、
上記のデータ圧縮手段が、上記第1の処理をグループ単位で実行することを特徴とする請求項2または3に記載のデータ処理システム。 - 上記のデータ圧縮手段が、上記DBサーバから送信された各レコードの中で、少なくとも最上位のデータ項目については、値が相互に重複する場合に一つのレコードのデータを残して他のレコードのデータを削除し、削除された上位データに従属していた下位データを残された上位データに関連付ける第1の処理と、
値が相互に重複する下位のデータ項目については、一の値のみを実データとしてメモリ上に残し、他の値については上記実データを参照する型に変換する第2の処理と、
残された最上位のデータ項目同士を一つの根の元に結合させ、木構造のデータを生成する第3の処理と、
最下位のデータ項目に含まれる値の類型を抽出し、これらを所定の順序で整列させたディスティンクト・リストを生成し、メモリに格納する第4の処理と、
上記ディスティンクト・リストに含まれる各要素と最下位のデータ項目の値とを、親のデータ項目を共通にする兄弟単位で順にマッチングさせ、ディスティンクト・リストの要素が最下位のデータ項目に存在する場合には、メモリ上に設けたビット配列における対応位置に1をセットすると同時に実データを削除し、該当の値が最下位のデータ項目に存在しない場合には上記ビット配列の対応位置に0をセットする第5の処理を実行し、
上記データ検索手段が、各ビット配列及び上記ディスティンクト・リストを参照することにより、最下位のデータ項目の値を特定することを特徴とする請求項1に記載のデータ処理システム。 - 上記のデータ圧縮手段が、上記DBサーバから送信された各レコードの中で、少なくとも最上位のデータ項目については、値が相互に重複する場合に一つのレコードのデータを残して他のレコードのデータを削除し、削除された上位データに従属していた下位データを残された上位データに関連付ける第1の処理と、
値が相互に重複する下位のデータ項目については、一の値のみを実データとしてメモリ上に残し、他の値については上記実データを参照する型に変換する第2の処理と、
残された最上位のデータ項目同士を一つの根の元に結合させ、木構造のデータを生成する第3の処理と、
最下位のデータ項目に含まれる値の類型を抽出し、これらを所定の順序で整列させたディスティンクト・リストを生成し、メモリに格納する第4の処理と、
上記ディスティンクト・リストに含まれる各要素と最下位のデータ項目の値とを、親のデータ項目を共通にする兄弟単位で順にマッチングさせ、ディスティンクト・リストの要素が最下位のデータ項目に存在する場合には、メモリ上に設けたディスティンクト・リストと同サイズのブーリアン配列における対応位置にブーリアン型のtrueをセットすると同時に実データを削除し、該当の値が最下位のデータ項目に存在しない場合には上記ブーリアン配列の対応位置にブーリアン型のfalseをセットする第5の処理と、
上記のブーリアン配列をビット配列に変換する第6の処理を実行し、
上記データ検索手段が、各ビット配列をブーリアン配列に変換し、各ブーリアン配列及び上記ディスティンクト・リストを参照することにより、最下位のデータ項目の値を特定することを特徴とする請求項1に記載のデータ処理システム。 - 上記のデータ読み出し手段が、上記SQL文において一または複数のデータ項目の値を指定することにより、上記DBサーバから上記テーブルをグループに分割して読み出す処理を実行し、
上記のデータ圧縮手段が、上記第1の処理及び第2の処理をグループ単位で実行することを特徴とする請求項5または6に記載のデータ処理システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006142174A JP4850581B2 (ja) | 2006-05-22 | 2006-05-22 | データ処理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006142174A JP4850581B2 (ja) | 2006-05-22 | 2006-05-22 | データ処理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007310844A true JP2007310844A (ja) | 2007-11-29 |
JP4850581B2 JP4850581B2 (ja) | 2012-01-11 |
Family
ID=38843608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006142174A Expired - Fee Related JP4850581B2 (ja) | 2006-05-22 | 2006-05-22 | データ処理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4850581B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284289A (zh) * | 2018-09-11 | 2019-01-29 | 深圳市网安计算机安全检测技术有限公司 | 数据集处理方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003316811A (ja) * | 2002-04-22 | 2003-11-07 | Ricoh Co Ltd | 異種データベース統合システムにおける問い合わせ最適化処理装置、方法、及びその方法をコンピュータに実行させるプログラム |
JP2005165610A (ja) * | 2003-12-02 | 2005-06-23 | Nomura Research Institute Ltd | トランザクション処理システムおよび方法 |
-
2006
- 2006-05-22 JP JP2006142174A patent/JP4850581B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003316811A (ja) * | 2002-04-22 | 2003-11-07 | Ricoh Co Ltd | 異種データベース統合システムにおける問い合わせ最適化処理装置、方法、及びその方法をコンピュータに実行させるプログラム |
JP2005165610A (ja) * | 2003-12-02 | 2005-06-23 | Nomura Research Institute Ltd | トランザクション処理システムおよび方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284289A (zh) * | 2018-09-11 | 2019-01-29 | 深圳市网安计算机安全检测技术有限公司 | 数据集处理方法、装置、计算机设备及存储介质 |
CN109284289B (zh) * | 2018-09-11 | 2022-03-22 | 深圳市网安计算机安全检测技术有限公司 | 数据集处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP4850581B2 (ja) | 2012-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9805079B2 (en) | Executing constant time relational queries against structured and semi-structured data | |
EP3028137B1 (en) | Generating a multi-column index for relational databases by interleaving data bits for selectivity | |
US7464247B2 (en) | System and method for updating data in a distributed column chunk data store | |
US7447839B2 (en) | System for a distributed column chunk data store | |
US7457935B2 (en) | Method for a distributed column chunk data store | |
US20070143557A1 (en) | System and method for removing a storage server in a distributed column chunk data store | |
US20070061544A1 (en) | System and method for compression in a distributed column chunk data store | |
US10114846B1 (en) | Balanced distribution of sort order values for a multi-column sort order of a relational database | |
CN102362273A (zh) | 用于关系数据库系统中高效数据存取的动态散列表 | |
CN101499065B (zh) | 基于fa的表项压缩方法及装置、表项匹配方法及装置 | |
JP3452531B2 (ja) | データ・マイニングする方法およびシステム | |
US8312050B2 (en) | Avoiding database related joins with specialized index structures | |
US20040002983A1 (en) | Method and system for detecting tables to be modified | |
CN109614411B (zh) | 数据存储方法、设备和存储介质 | |
US7409380B1 (en) | Facilitated reuse of K locations in a knowledge store | |
JP4969151B2 (ja) | データ処理システム | |
US7882114B2 (en) | Data processing method and data processing program | |
US10268644B2 (en) | Information processing apparatus, computer-readable recording medium having stored therein data conversion program, and data conversion method | |
JP4850581B2 (ja) | データ処理システム | |
JP4914117B2 (ja) | データ処理システム | |
KR101451280B1 (ko) | 분산형 데이터베이스 관리 시스템 및 방법 | |
Černjeka et al. | NoSQL document store translation to data vault based EDW | |
JP4920303B2 (ja) | データ処理システム | |
JP4850580B2 (ja) | データ処理システム | |
JP2018109898A (ja) | データマイグレーションシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090306 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110707 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110719 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110913 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111011 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111019 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141028 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |