JP6336302B2 - 情報処理装置、情報処理方法及びプログラム - Google Patents
情報処理装置、情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP6336302B2 JP6336302B2 JP2014047958A JP2014047958A JP6336302B2 JP 6336302 B2 JP6336302 B2 JP 6336302B2 JP 2014047958 A JP2014047958 A JP 2014047958A JP 2014047958 A JP2014047958 A JP 2014047958A JP 6336302 B2 JP6336302 B2 JP 6336302B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- values
- aggregation
- compression
- compressed
- 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.)
- Active
Links
- 230000010365 information processing Effects 0.000 title claims description 39
- 238000003672 processing method Methods 0.000 title claims description 4
- 238000007906 compression Methods 0.000 claims description 99
- 230000002776 aggregation Effects 0.000 claims description 78
- 238000004220 aggregation Methods 0.000 claims description 78
- 230000006835 compression Effects 0.000 claims description 72
- 230000015654 memory Effects 0.000 claims description 45
- 238000003860 storage Methods 0.000 claims description 41
- 230000004931 aggregating effect Effects 0.000 claims description 5
- 239000002131 composite material Substances 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 67
- 238000000034 method Methods 0.000 description 66
- 230000008569 process Effects 0.000 description 50
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 10
- 239000000047 product Substances 0.000 description 10
- 230000004044 response Effects 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 108040006686 pyruvate synthase activity proteins Proteins 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
はレジスタやバスが64bitのCPUが一般化しつつあり、メモリ容量も増加しているが、CPUのクロック数はそれほど大幅には向上していない。
の列に保持された値を集計対象とするようなときに効率よく圧縮処理を行うことができるようになる。
。
図1は、情報処理装置の一例を示す機能ブロック図である。図1の情報処理装置1は、DBMS(DataBase Management System:データベース管理システム)11と、内部記憶12と、圧縮部13と、集計部14と、入出力部15を有する。
理に必要な機能を提供するシステムであり、物理テーブル111と、データ操作部112とを有する。物理テーブル111は、所定のデータ構造(スキーマ)で物理的なファイルとしてデータレコード(「永続データ」とも呼ぶ)を格納する不揮発性の記憶装置である。また、データ操作部112は、レコードの挿入(登録)、レコードの選択(検索)、レコードの更新、レコードの削除等の操作を物理テーブル111に対して行う。なお、DBMS11は、様々なベンダーが提供する既存の製品を利用することができる。また、物理テーブル111は、例えばCSVファイルのような、デリミタ(分離記号)によって列(カラム)が区切られ、改行によってレコードが区切られる形式(Character-Separated Values、Delimiter-Separated Values等とも呼ぶ)のファイル、又はその他の形式のファイルに置き換えてもよい。
ているが、実装上は2進数における桁を分割領域に区切るものとする。圧縮値を2進数で扱えば、各分割領域に集計対象の値を格納する処理をビットシフトによって行うことができるため処理効率がよい。図3は、集計対象の値と圧縮値との関係を2進数で説明するための図である。図3の例では、集計対象の値「1」、「10」、「11」及び「100」が示されている。また、圧縮値は64bit、各分割領域は16bitであるものとする。このとき、集計対象の値「1」を48bit左シフトした値と、集計対象の値「10」を32bit左シフトした値と、集計対象の値「11」を16bit左シフトした値と、集計対象の値「100」とを加算した値が、圧縮値に格納される。
ンデックスとして用いているが、例えば圧縮データ領域における行及び列を用いた座標で表してもよい。例えば、図5におけるインデックス「6」を、「(2,2)」という座標で表し、図5におけるインデックス「10」を、「(3,2)」という座標で表すようにしてもよい。
図7は、コンピュータの一例を示す装置構成図である。情報処理装置1は、例えば図7に示すようなコンピュータである。図7に示すコンピュータ1000は、CPU(Central Processing Unit)1001、主記憶装置1002、補助記憶装置1003、通信IF
(Interface)1004、入出力IF(Interface)1005、ドライブ装置1006、通信バス1007を備えている。
Memory)等である。また、主記憶装置1002は、図1に示した内部記憶12として働
く。本実施形態では、所定の低圧縮データ形式で値を保持する低圧縮データ領域10021と、所定の高圧縮データ形式で値を保持する高圧縮データ領域10022とを、例えばメモリに設ける。
図8Aは、圧縮処理の一例を示す処理フロー図である。本実施形態では、後述する集計処理の前に圧縮処理が行われる。具体的には、定期的に圧縮処理を行うようにしてもよいし、物理テーブルが更新等されるたびに圧縮処理を行うようにしてもよい。また、図8Aの処理フロー図では、低圧縮領域にデータを展開する処理について説明する。圧縮処理では、カラムに登録された値(集計対象の値)を所定のブロックに分割しつつ圧縮する。まず、情報処理装置1の圧縮部13は、分割領域の桁数(換言すれば、メモリ上に確保する圧縮データ領域の分割数)や、後述する基準値、特異値と判断する基準等を最適化する(図8A:S11)。本ステップでは、図4Aに示したような分割領域ごとの集計においてオーバーフローが発生しないように、各カラムに登録されている値をブロックに分類する。ここで、集計処理において桁あふれが生じないように、各ブロックに保持される値の個数(ひいては、圧縮値の個数)を動的に決定する。なお、最適化については上で述べたように様々な手法を用いることができる。
領域に保持される。また、圧縮データ領域の対応する順序の箇所には0(0000)が保持されるものとする。例えば、ブロック1において6番目に取得した値が1025200であった場合、特異値と判断され、特異値領域にはindex「6」に対応付けて値「102
5200」が保持される。また、圧縮データ領域の6番目(2行2列目)の箇所には「0」が保持される。このような特異値を圧縮値とは別に記憶する場合、集計処理においては別途特異値を加算する処理を行うことで集計値を算出するものとする。
図9Aは、集計処理の一例を示す処理フロー図である。まず、情報処理装置1の入出力部15は、テーブルへのデータ操作要求を受け付ける(図9A:S21)。本ステップでは、例えば、他のアプリケーション又は他のコンピュータから、所定のカラムに格納されている値の集計の要求を受けるものとする。
図9Aの例では、集計対象の値を単に圧縮値にして加算する処理を説明した。ここで、メタ情報を用いた集計処理について補足する。図5に示したように倍率「100」及び基準値「25」が設定されている場合は、まず上述の工程に基づいて圧縮値をすべて加算する。そして、基準値「25」とnull若しくは0又は特異値でない値の個数「8」とを乗じた数をさらに加算し、倍率「100」を乗じて、集計値を求める。図5に示した「圧縮データ領域」の場合、まず圧縮値を加算して、1000200000004+1200000050000+4000000150000=17000200200004と集計圧縮値が求められる。そして、各分割領域の値を集計し、17+2+20+4=43と集計値が求められる。さらに、基準値とnull若しくは0又は特異値でない値の個数とを乗じた数25×8=200を加算し、さらに倍率100を乗じることにより、(43+200)×100=24300と集計値が求められる。
ードをフィルタリングせずに全件から最大値又は最小値を求める場合には、単純に各ブロックのメタ情報に保持されている最大値のうち最も大きい値、又は最小値のうち最も小さい値を求める。
集計処理を行う場合、キャッシュを利用してコストをさらに低減することもできる。例えば、上述の低圧縮データ領域に格納されるデータは、物理テーブルの値と対応していたが、さらに計算結果を仮想的なカラムとして低圧縮データ領域に保持する。図10は、メモリ上にキャッシュとして仮想的なカラムを設ける例を説明するための図である。例えば、物理テーブルに何らかの注文データを構成する単価のカラムと個数のカラムとが存在するものとする。この場合において、注文データの売上を集計するときは、次のような計算を行う。
SUM(単価×個数)
ような性質のデータではない。よって、図10の破線で示すカラムのように、算出した値を例えば低圧縮データ領域に保持しておき、同様の要求に対して既に算出された値を返すようにする。このような仮想的なカラムとしてレコードごとに部分的な集計値を算出しておき、保持されるキャッシュを、便宜上「ファンクションキャッシュ」とも呼ぶものする。同様に、平均値(AVG(単価×個数))や税込み価格(SUM(単価×個数×1.05))といった値をファンクションキャッシュとして保持しておくようにしてもよい。すなわち、物理テーブルのレコード(行)ごとに部分的な集計値(すなわち、単価と個数との小計や、価格に税率を乗じた税込み価格等)を算出し、部分的な集計値を集計対象の値とする圧縮値を生成して内部記憶12等の記憶部に保持させておく。
処理の対象となるテーブルは、論理的には1つのテーブルであっても、複数の情報処理装置1の内部記憶12に分散(「パーティショニング」とも呼ぶ)させることができる。なお、物理テーブルも複数の情報処理装置1に分散して保持する構成としてもよいし、1つの物理テーブルに基づいて複数の情報処理装置1の内部記憶12に分散して圧縮値を展開する構成としてもよい。
する。
SUM(単価×数量)
物理テーブルからメモリ上へデータをロードする際、データ構造を変更するようにしてもよい。例えば、図14に示すようなテーブルを例に説明する。図14は、カラム数が不定の汎用的なデータ構造を実現する目的で設計されたテーブルの一例である。テーブルは、「データID」(すなわち、実質的なレコードの識別情報)、「カラム名」(すなわち、実質的なカラムの識別情報)、及び「値」(すなわち、実質的なカラムに登録された値)のカラムを有している。また、登録されているレコードはアンケートの回答結果であり、3つのレコードが1人の回答者の情報を表している。このようなデータ構造であれば、後に新たなカラム名を追加することが容易となるが、クロス集計のような多次元での集計を行うことが困難である。
本発明は、上述の例に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更を加え得るものである。
11 DBMS
111 物理テーブル
112 データ操作部
12 内部記憶
13 圧縮部
14 集計部
15 入出力部
2 制御装置
21 分散処理部
22 記憶部
23 集計部
24 入出力部
Claims (10)
- 物理テーブルが記憶するレコードの値を集計する情報処理装置であって、
メモリ上に確保する領域を所定数の桁ごとに分割した複数の分割領域にそれぞれ集計対象の値を保持させることにより、それぞれの前記集計対象の値を組み合わせた合成値の圧縮値を生成する圧縮部と、
複数の前記圧縮値を集計した集計圧縮値を算出する圧縮値集計部と、
前記集計圧縮値に含まれる前記分割領域の各々の値を集計して集計値を算出する集計部と、
を有し、
前記集計対象の値は、前記メモリ上において前記物理テーブルの列ごとに保持される
情報処理装置。 - 前記圧縮部は、前記圧縮値集計部が前記圧縮値を集計する際に前記分割領域をまたいで桁上がりが発生しない前記圧縮値の集計単位であるブロックと関連付けて前記圧縮値を生成し、
前記圧縮値集計部は、前記ブロックごとに前記集計圧縮値を算出する
請求項1に記載の情報処理装置。 - 前記圧縮部は、前記集計対象の値が所定の閾値以上である場合、又は前記集計対象の値が所定の数の倍数でない場合、当該集計対象の値を前記メモリ上の前記分割領域とは異なる特異値用領域に保持させ、
前記集計部は、前記集計圧縮値と前記特異値用領域の値とをさらに集計する
請求項1又は2に記載の情報処理装置。 - 前記圧縮部は、前記集計対象の値を相対値に変換して前記分割領域に保持させるための差分を示す基準値又は倍率を含む管理情報を用いて前記集計対象の値を前記相対値に変換し、当該相対値を前記分割領域に保持させた圧縮値を生成し、
前記集計部は、生成した前記集計値を、前記管理情報を用いてさらに変換する
請求項1から3のいずれか一項に記載の情報処理装置。 - 前記圧縮部は、前記分割領域が保持する値がNULL値か否かを示す情報をさらに記憶
させる
請求項1から4のいずれか一項に記載の情報処理装置。 - 前記圧縮部は、前記圧縮値を生成するとともに集計対象の値の最大値又は最小値を記憶部に記憶させ、
前記集計部は、最大値又は最小値の問合せを受けた場合、前記記憶部に記憶されている最大値又は最小値を用いて最大値又は最小値を求める
請求項1から5のいずれか一項に記載の情報処理装置。 - 前記圧縮部は、前記レコードごとに部分的な集計値を算出し、当該部分的な集計値を集計対象の値として圧縮値を生成する
請求項1から6のいずれか一項に記載の情報処理装置。 - 前記物理テーブルにおいて、実質的なレコードの識別情報と対応付けて、前記実質的なレコードのカラムの識別情報と前記実質的なレコードの当該カラムに登録される値とを含むレコードに記憶し、前記物理テーブルの複数のレコードにより1つの実質的なレコードを表す場合、前記物理テーブルのレコードを前記メモリ上に保持させる際に、前記実質的なレコードを1レコードとするデータ構造に変換し、前記集計対象の値は、前記メモリ上において前記実質的なレコードのカラムごとに保持される
請求項1から7のいずれか一項に記載の情報処理装置。 - 物理テーブルが記憶するレコードの値を集計する情報処理方法であって、
メモリ上に確保する領域を所定数の桁ごとに分割した複数の分割領域にそれぞれ集計対象の値を保持させることにより、それぞれの前記集計対象の値を組み合わせた合成値の圧縮値を生成するステップと、
複数の前記圧縮値を集計した集計圧縮値を算出するステップと、
前記集計圧縮値に含まれる前記分割領域の各々の値を集計して集計値を算出するステップと、
をコンピュータが実行し、
前記集計対象の値は、前記メモリ上において前記物理テーブルの列ごとに保持される
情報処理方法。 - 物理テーブルが記憶するレコードの値を集計するプログラムであって、
メモリ上に確保する領域を所定数の桁ごとに分割した複数の分割領域にそれぞれ集計対象の値を保持させることにより、それぞれの前記集計対象の値を組み合わせた合成値の圧縮値を生成するステップと、
複数の前記圧縮値を集計した集計圧縮値を算出するステップと、
前記集計圧縮値に含まれる前記分割領域の各々の値を集計して集計値を算出するステップと、
をコンピュータに実行させ、
前記集計対象の値は、前記メモリ上において前記物理テーブルの列ごとに保持される
プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014047958A JP6336302B2 (ja) | 2014-03-11 | 2014-03-11 | 情報処理装置、情報処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014047958A JP6336302B2 (ja) | 2014-03-11 | 2014-03-11 | 情報処理装置、情報処理方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015172823A JP2015172823A (ja) | 2015-10-01 |
JP6336302B2 true JP6336302B2 (ja) | 2018-06-06 |
Family
ID=54260116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014047958A Active JP6336302B2 (ja) | 2014-03-11 | 2014-03-11 | 情報処理装置、情報処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6336302B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114040030B (zh) * | 2021-11-18 | 2023-11-24 | 深圳智慧林网络科技有限公司 | 一种基于预设规则的数据压缩方法、装置、设备和介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3584630B2 (ja) * | 1996-09-20 | 2004-11-04 | 株式会社日立製作所 | データベース処理システムにおける分類集計処理方法 |
US20080262997A1 (en) * | 2004-04-28 | 2008-10-23 | Shinji Furusho | Information Processing Method and Information Processing System |
US7769729B2 (en) * | 2007-05-21 | 2010-08-03 | Sap Ag | Block compression of tables with repeated values |
US9626421B2 (en) * | 2007-09-21 | 2017-04-18 | Hasso-Plattner-Institut Fur Softwaresystemtechnik Gmbh | ETL-less zero-redundancy system and method for reporting OLTP data |
JP5735702B2 (ja) * | 2012-03-16 | 2015-06-17 | 株式会社日立製作所 | 情報処理システム及び情報処理システムの制御方法 |
JPWO2013141308A1 (ja) * | 2012-03-22 | 2015-08-03 | 日本電気株式会社 | 分散ストレージシステム、ストレージ制御方法およびプログラム |
-
2014
- 2014-03-11 JP JP2014047958A patent/JP6336302B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015172823A (ja) | 2015-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11138175B2 (en) | Type-specific compression in database systems | |
US10884987B2 (en) | Block compression of tables with repeated values | |
JP6559892B2 (ja) | データキューブのデータの記憶及び検索 | |
US8032499B2 (en) | Compression of tables based on occurrence of values | |
US20190324975A1 (en) | Hadoop olap engine | |
JP6088506B2 (ja) | 範囲に基づく検索のためのデータ格納の管理 | |
Larson et al. | Enhancements to SQL server column stores | |
CN107729399B (zh) | 数据处理的方法和装置 | |
US20050246362A1 (en) | System and method for dynamci log compression in a file system | |
JP5735702B2 (ja) | 情報処理システム及び情報処理システムの制御方法 | |
Amur et al. | Memory-efficient groupby-aggregate using compressed buffer trees | |
CN112925821A (zh) | 基于MapReduce的并行频繁项集增量数据挖掘方法 | |
JP7120439B2 (ja) | データ一般化装置、データ一般化方法、プログラム | |
JP6336302B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
Kuchnik et al. | Progressive compressed records: Taking a byte out of deep learning data | |
EP3220290A1 (en) | Processing of tabular data | |
JP4881435B2 (ja) | メモリ共有型並列処理システムにおいて表形式データを集計する方法及び装置 | |
JP7274293B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP7466619B1 (ja) | データベース管理システム、パーティション分割装置、パーティション分割方法およびパーティション分割プログラム | |
US11893016B1 (en) | Secure predicate derivation of queries using metadata | |
Pollack | Delete and Update Operations | |
CN111723121A (zh) | 数据处理方法及装置 | |
Liu | Fast and Effective Compression for IoT Systems | |
CN118152394A (zh) | 表单处理方法、装置、计算机设备、存储介质和产品 | |
Workloads et al. | Analytics Optimization with Columnstore Indexes in Microsoft SQL Server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170217 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180116 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180319 |
|
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: 20180403 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180502 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6336302 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |