JP6642435B2 - データ処理装置、データ処理方法、及び、プログラム - Google Patents

データ処理装置、データ処理方法、及び、プログラム Download PDF

Info

Publication number
JP6642435B2
JP6642435B2 JP2016543811A JP2016543811A JP6642435B2 JP 6642435 B2 JP6642435 B2 JP 6642435B2 JP 2016543811 A JP2016543811 A JP 2016543811A JP 2016543811 A JP2016543811 A JP 2016543811A JP 6642435 B2 JP6642435 B2 JP 6642435B2
Authority
JP
Japan
Prior art keywords
block
records
blocks
query
statistical value
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
Application number
JP2016543811A
Other languages
English (en)
Other versions
JPWO2016027451A1 (ja
Inventor
昌史 小山田
昌史 小山田
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2016027451A1 publication Critical patent/JPWO2016027451A1/ja
Application granted granted Critical
Publication of JP6642435B2 publication Critical patent/JP6642435B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • G06F7/08Sorting, i.e. grouping record carriers in numerical or other ordered sequence according to the classification of at least some of the information they carry

Description

本発明は、データ処理装置、データ処理方法、及び、プログラムに関する。
上記技術分野において、非特許文献1は、属性の集約処理を高速化するため、集約処理の際に上述の文献に記載されたインデックス(以下、軽量インデックス)を用いる。そして、非特許文献1は、軽量インデックスを用いて、レコードのスキャンを省き、ストレージに対するデータのI/O(Input / Output)量と計算量を削減する。非特許文献1には、このような、属性の集約処理を高速化する技術が、開示されている。
例えば、非特許文献1に記載の技術は、図19に示した従業員(Staff)の身長(Height)の最大値(MAX)を算出(Select)する問合せ1900の処理に対し、通常、図20のように、問合せを処理する。つまり、非特許文献1に記載の技術は、テーブルデータ2001に対して、属性選択2002を実行し、解2003を求める。
非特許文献1に記載の技術は、図21に示すように、大きなテーブルデータ2101を、ブロック2111〜2113と呼ばれる複数のパーティションに水平分割し、それぞれのブロックに軽量インデックス2114〜2116を付して、保存する。そして、非特許文献1に記載の技術は、各ブロックのHeight属性(身長)の軽量インデックス2114〜2116をスキャンし、各ブロック内での身長の最大値2117〜2119を取得し、それらの最大値を計算(選択)する。非特許文献1に記載の技術は、上記の動作を基に、テーブルデータ2101全体での、身長の最大値を計算する。このときの一連の処理において必要なI/O量は、各ブロックの軽量インデックスのスキャンにおけるI/O量でよい。また、最大値の計算処理は、各ブロックから得られた最大値の中から、最大の値を計算すれよい。そのため、非特許文献1に記載の技術は、ブロック全体のスキャン及び計算を要する単純な処理と比べ、高速となる。
Y. Huai, Ashutosh Chauhan, Alan Gates, Gunther Haqleitner, Eric n. Hanson, Owen O'Malley, Jitendra Pandy, Yuan Yuan, Ruboa Lee, and Xiaodong Zhang, "Major Technical Advancements in Apache Hive", SIGMOD '14, Proceedings of the 2014 ACM SIGMOD international conference on Management of data, pp.1235-1246, June 18, 2014
しかしながら、非特許文献1に記載の技術は、単純な問合せにしか、適用できない。非特許文献1に記載の技術が、適用可能でない問合せの例として、図22に示す問合せ2200を、考える。図22に示す問合せ2200は、在職している従業員の最大身長を計算する問合せである。この問合せ2200では、テーブルStaff内で集約の対象となるレコード(テーブル内の行)が、退職した従業員のIDを格納したテーブルRetiredの中に含まれない(NOT EXISTS)レコードに限定されている。
図23は、図22の問合せ2200の実行例を図示したものである。図23において、テーブルデータ2101のブロック2111には、退職してしまった従業員の2つのレコード2301、及び2302が、含まれる(ID=2、ID=4のレコード)。このため、集計対象となるレコードは、ID=1(身長=178.0)のレコードと、ID=3(身長=152.5)のレコードとなる。そして、ブロック2111における問合せ2200の最大値は、「178.0」となる。しかし、ブロック2111の軽量インデックス2114には、最大身長として、退職した従業員(ID=2)の身長190.0(最大値2117)が、格納されている。この格納されている値は、問合せ2200の結果の算出に使うことができない値である。このように、集約処理の対象が、レコードの選択処理の結果であるとき、非特許文献1に記載の技術は、有効な値を算出できないという問題点があった。
本発明の目的は、上述の課題を解決する技術を提供することにある。
上記目的を達成するため、本発明の一形態におけるデータ処理装置は、
テーブルデータに含まれるレコードを、複数のブロックに、レコードを単位とした分割である水平分割する分割手段と、
ブロックのそれぞれについて、ブロックにおけるレコードに含まれる属性の統計値を算出する統計値算出手段と、
テーブルデータに対し、レコードの選択処理後に集約処理をする問合せを処理する際に、選択処理に基づいてブロック内のレコードが全て選択されるか否かを、ブロックのそれぞれについて、統計量を基に、判定する判定手段と、
判定手段に基づいてレコードが全て選択されると判定されたブロックについては、判定されたブロックの統計値を、判定されたブロックに対する問合せの結果として利用する問合せ実行手段と
を含む。
上記目的を達成するため、本発明の一形態におけるデータ処理方法は、
テーブルデータに含まれるレコードを、複数のブロックに、レコードを単位とした文化である水平分割し、
ブロックのそれぞれについて、ブロックにおけるレコードに含まれる属性の統計値を算出し、
テーブルデータに対しレコードの選択処理後に集約処理をする問合せを処理する際に、選択処理に基づいてブロック内のレコードが全て選択されるか否かを、ブロックのそれぞれについて、統計量を基に、判定し、
判定に基づいてレコードが全て選択されると判定されたブロックについては、判定されたブロックの統計値を、判定されたブロックに対する問合せの結果として利用する。
上記目的を達成するため、本発明の一形態におけるプログラムは、
テーブルデータに含まれるレコードを、複数のブロックに、レコードを単位とした分割である水平分割する分割処理と、
ブロックのそれぞれについて、ブロックにおけるレコードに含まれる属性の統計値を算出する統計値算出処理と、
テーブルデータに対しレコードの選択処理後に集約処理をする問合せを処理する際に、選択処理に基づいてブロック内のレコードが全て選択されるか否かを、ブロックのそれぞれについて、統計値を基に、判定する判定処理と、
判定処理に基づいてレコードが全て選択されると判定されたブロックについては、判定されたブロックの統計値を、判定されたブロックに対する問合せの結果として利用する問合せ実行処理と
をコンピュータ装置に実行させる
本発明に基づけば、より柔軟に、集約処理を高速化するとの効果を奏することができる。
図1は、本発明における第1実施形態に係るデータ処理装置の構成を示すブロック図である。 図2は、第2実施形態に係るデータ処理装置の機能構成を示すブロック図である。 図3は、テーブルデータの一例を示す図である。 図4は、ブロックに分割されたテーブルデータの一例を示す図である。 図5は、テーブルデータの一例を示す図である。 図6は、問い合わせの例を示す図である。 図7は、問合せに対応する実行プランの例を示す図である。 図8は、図7に示す実行プランを、ブロックごとにスキャン処理するように変換した実行プランを示す図である。 図9は、図7に示す実行プランを、軽量インデックス内の統計値を利用するよう変換した実行プランを示す図である。 図10は、図6に示す問合せに対応する実行プランの例を示す図である。 図11は、図10に示す実行プランにおいて、ブロックごとにスキャン処理するように変換した実行プランを示す図である。 図12は、図11に示す実行プランにおいて、全てのレコードが選択されるブロックについて選択処理を取り除いた実行プランを示す図である。 図13は、図12に示す実行プランにおいて、全てのレコードが選択されるブロックについて統計値を利用するよう変換した実行プランを示す図である。 図14は、図6に示す問合せにおける統計値の利用可否をテーブルデータに対して判定した結果を例示する図である。 図15は、図3に示すテーブルデータを、属性Ageについて並び替えた後に、統計値の利用可否を判定した結果を示す図である。 図16は、第2実施形態に係るデータ処理装置において、テーブルデータを入力した際に実行される処理の流れを例示するフローチャートである。 図17は、第2実施形態に係るデータ処理装置において、問合せの実行時の処理の流れを例示するフローチャートである。 図18は、第3実施形態に係るデータ処理装置を例示するブロック図である。 図19は、従業員の中での最大の身長を求める問合せを例示する図である。 図20は、図19の問合せの処理イメージを示す図である。 図21は、非特許文献1におけるテーブルの格納形式を示す図である。 図22は、在職している従業員の最大の身長を算出する集約処理の問合せを示す図である。 図23は、図22に示す問合せの処理イメージを示す図である。 図24は、データ処理装置のハードウェア構成を例示するブロック図である。
以下に、図面を参照して、本発明の実施の形態について、例示的に、詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は、あくまで例示であり、本発明の技術範囲を、それらのみに限定する趣旨のものではない。
[第1実施形態]
本発明における第1実施形態としてのデータ処理装置100について、図1を用いて説明する。図1に示すように、データ処理装置100は、分割部101と、統計値算出部102と、判定部103と、問合せ実行部104とを含む。
分割部101は、テーブルデータ110を、複数のブロックに、水平分割する。ここで、水平分割とは、データの単位であるレコードを、分割の単位とした分割である。統計値算出部102は、分割後のブロックのそれぞれについて、属性の統計値を算出する。判定部103は、テーブルデータ110に対し、レコードの選択処理後に集約処理をする問合せ120を処理する際に、選択処理においてブロック内のレコードが全て選択されるか否かを、ブロックごとに、判定する。なお、上記は、判定部103が、ブロック内のレコードのデータを参照せずに、選択処理においてブロック内のレコードが全て選択されるか否かを判定することでもある。
問合せ実行部104は、判定部103が、ブロック内のレコードが全て選択されると判定した場合に、そのブロックの統計値を、そのブロックに対する問合せ120の結果として、利用する。
(効果)
本実施形態は、ブロック内のレコードが全て選択されると判定された場合に、ブロックの統計値をブロックに対する問合せの結果として利用する。そのため、本実施形態は、より柔軟に集約処理を高速化するとの効果を奏することができる。
その詳細な理由は、次のとおりである。分割部101は、テーブルデータ110を、複数のブロックに水平分割する。統計値算出部102は、分割後のブロックのそれぞれについて、属性の統計値を算出する。判定部103は、テーブルデータ110に対し、レコードの選択処理後に集約処理をする問合せ120を処理する際に、選択処理に基づいてブロック内のレコードが全て選択されるか否かを、ブロックごとに判定する。そして、問合せ実行部104は、判定部103の判定が、ブロック内のレコードが全て選択されると判定した場合に、そのブロックの統計値を、そのブロックに対する問合せ120の結果として、利用するためである。
[第2実施形態]
(前提技術)
関係データベースシステム(Relational Database Management System, 以下、RDBMSとする)は、関係モデルに基づく行と列とを用いた表形式のデータの集合(以下、このデータの集合をテーブル又はテーブルデータと呼ぶ)を保持する。そして、RDBMSは、RDBMSのユーザに、データの効率的な検索手段と、更新手段とを提供する。テーブル内のデータの単位である行は、「レコード」と呼ばれる。つまり、レコードは、一つのデータを表す。レコード(データ)は、1つ又は複数の属性を、含む。テーブル内の列が、各属性に対応する。なお、テーブルに含まれる列の<列名,データ型>の一覧を、そのテーブルの「スキーマ」と呼ぶ。
RDBMSのユーザは、RDBMSに対して、プログラミング言語を用いて、テーブルに対する検索・更新処理を指示する。この指示は、問合せ(Query)と呼ばれる。問合せを記述するためには、SQLというプログラミング言語が、標準的に用いられている。SQLを用いると、RDBMSのユーザは、テーブルの中から条件にあてはまるレコードを、簡便かつ効率的に、取り出すことができる。また、RDBMSのユーザは、SQLを用いて、列名を指定することで、レコードの中から、必要な属性を取り出すことができる。
RDBMSにおいて頻繁におこなわれる処理の一つに、属性の集約処理が、ある。属性の集約処理とは、テーブルのある属性の値群から、何らかの集約値を計算する処理である。集約値としては、最大値、最小値、平均値、又は、標準偏差などがある。属性の集約処理は、テーブル内の全て、又は、大部分のレコードに関して、行われることが多い。そのため、テーブルが巨大であった場合、集約処理は、大量のレコードをスキャンする(調べる)こととなるため、多量のI/O処理と計算処理とが、発生する。そして、その結果、処理速度が、長大となる。
(データ処理装置200の機能構成)
次に、本発明における第2実施形態に係るデータ処理装置200について、図2を用いて説明する。図2は、本実施形態に係るデータ処理装置200の構成を示すブロック図である。図2において、各ブロックは、ハードウェア単位の構成ではなく、機能単位の構成を表している。
データ処理装置200は、テーブルデータ入力部201と、ファイル作成部202と、統計値情報算出部203と、分布情報算出部204と、問合せ受付部205と、問合せ実行部206と、統計値利用可否判定部207と、ファイル格納部208とを含む。以下、それぞれについて、説明する。なお、ファイル作成部202は、第1の実施形態における分割部101に相当する。統計値情報算出部203は、統計値算出部102に相当する。統計値利用可否判定部207は、判定部103に相当する。問合せ実行部206は、問合せ実行部104に相当する。
(テーブルデータ入力部201)
テーブルデータ入力部201は、テーブルデータ(テーブル)を取得する。テーブルデータ(テーブル)は、表形式のデータである。テーブルデータの行は、レコードである。また、レコードの各列は、レコードの属性となる。また、テーブルデータ(テーブル)は、テーブルデータに含まれる列の列名及びデータ型などから構成されるスキーマの情報を持つ。
図3に、テーブルデータの一例として、従業員の属性を集計したテーブルデータ301を示す。図3に示すテーブルデータ301は、従業員の属性の例として、ここでは、年齢(Age)と身長(Height)とを記録している。図3のIDは、従業員の識別子である。また、図3の「int」は、整数型データを示す。同様に、図3の「float」は、浮動小数点型データを示す。
テーブルデータ入力部201がテーブルデータ(テーブル)を取得する方法は、様々である。例えば、テーブルデータ入力部201は、テーブルデータとして、外部の装置から入力される対象行列を取得してもよい。その他にも、例えば、テーブルデータ入力部201は、ユーザが手動で入力するテーブルデータを、取得してもよい。さらに、テーブルデータ入力部201は、外部の装置にアクセスして、対象行列を取得してもよい。
(ファイル作成部202)
ファイル作成部202は、テーブルデータを、主記憶又は二次記憶などの記録装置に記録するために、ファイル化する。ファイルは、ブロックと呼ばれる複数の領域を含む。具体的には、ファイル作成部202は、テーブルデータを、レコードを単位とした分割である水平分割を実行する分割手段として機能し、テーブルを複数のブロックに分割後、各ブロックを、ファイルの各ブロック領域に記録する。ファイル作成部202は、テーブルを水平分割する前に、テーブルの行の順番を並び替え、それから水平分割すると、問合せにおいて統計値が利用できる確率を高めることができる。
各ブロックは、統計値情報算出部203に基づいて計算された、そのブロック内に含まれるレコード群の統計値(最大値、又は、最小値など)を、保持する。この統計値を、「軽量インデックス」と呼ぶ。また、各ブロックは、分布情報算出部204に基づいて計算された、そのブロック内に含まれるレコード群のデータの分布をビット列で近似した分布情報を、属性ごとに、保持する。
図4は、ファイル作成部202が、図3に示したテーブルデータ301に対して、ファイル化処理を加えた状態のテーブルデータ401を示している。テーブルデータ401内には、水平分割に基づいて、ブロック411〜413が、生成されている。ブロック411〜413のそれぞれは、統計値情報算出部203に基づいて計算されたそのブロック内に含まれるレコード群の統計値(ここでは、最小値及び最大値)を、軽量インデックス414〜416として、保持する。
(統計値情報算出部203)
統計値情報算出部203は、ブロックの中に含まれるレコード群の統計値を、属性ごとに、算出する。統計値の例としては、属性の最大値、最小値、平均値、又は、そのブロック内に含まれるレコード数がある。
(分布情報算出部204)
分布情報算出部204は、属性ごとに、ブロック内レコード群のデータ分布をビット列で近似した分布情報を算出する。分布情報は、固定長のビット列である。ある属性の分布情報は、ブロック内の各レコードの属性の値を、属性の値を受け取ってビット位置を返却するマッピング関数に入力し、マッピング関数から出力として得られたビット位置のビットを1にすることで、算出される。マッピング関数の例としては、数式(1)のように、剰余演算を用いて値を量子化する関数「f(x)」がある。数式(1)において、xは、属性の値である。また、Nは、分布情報を表すビット列のビット長に対応する。なお、数式(1)の第2項は、床関数を示すガウス記号と、除法の剰余を示すmod記号(modular記号)を用いている。
Figure 0006642435
具体的な例として、図5におけるRetiredテーブル501のブロック511の属性IDの分布情報の算出を考える。ここで、ビット数Nは、「8」とする。ブロックA内のIDは、2、4、及び50である。これらを上述の関数f(x)に入力すると、f(2)=1、f(4)=1、及びf(50)=5であることから、分布情報算出部204は、分布情報のビット列のうち1ビット目と5ビット目とを「1」にした、「10001000」を算出する。
なお、本実施形態は、分布情報をファイルに格納している。しかし、この他の格納の形態として、実施形態2で説明するように、分布情報からなるデータベースをファイルとは別に用意するなどの形態がある。
(問合せ受付部205)
問合せ受付部205は、ファイル格納部208に格納されているテーブルデータ(テーブル)に対する処理の記述、すなわち、問合せを取得する。問合せに使われるプログラミング言語の例としては、SQL又はHive Query Language(非特許文献1を参照)がある。
図6は、年齢が29歳より小さい従業員の中での最大の身長を求める問合せ601、及び、在職している従業員(退職した従業員に含まれない従業員)の最大身長を求める問合せ602を示す図である。
(問合せ実行部206)
問合せ実行部206は、問合せ受付部205が取得した問合せを実行する。
具体的には、問合せ実行部206は、問合せを、基本演算のグラフとして構成される実行プランへと変換する。そして、問合せ実行部206は、実行プランを、得られる処理結果が同じであるが、より高速に実行できる実行プランへと最適化する。そのうえで、問合せ実行部206は、最適化した実行プランにしたがって、処理を行う。基本演算としては、関係データベースで用いられる選択、結合、若しくは、射影の処理、又は、レコード集合内の属性の値の最大値、最小値、平均値、若しくは標準偏差の算出処理などがある。
図7は、テーブルデータ301内の職員の最大身長を求める問合せ601から得られた実行プランの例である。図7において、Staff701は、Staffテーブルを表し、Scan702は、テーブルのスキャン処理を表し、Maxheight703は、height属性の最大値を求める処理を、それぞれ、表す。問合せ実行部206は、次のような流れで、図7の実行プランを、統計値情報を利用する実行プラン(図9)へと、最適化する。
まず、Staffが、複数のブロックへ水平分割されていることから、問合せ実行部206は、図7の実行プラン700を、図8の実行プラン800へと、変換する。図8において、Staff A、Staff B、及びStaff Cは、StaffのブロックA、B、及びCを表し、Maxは、最大値の算出処理を、それぞれ、表す。また、Maxheightは、各ブロックのヘッダにおける統計値情報としの身長heightの最大値を表す。そして、図8の実行プラン800の各ブロックのヘッダに、統計値情報として、身長heightの最大値(Maxheight)が格納されていることを利用し、問合せ実行部206は、図8の実行プラン800を、図9の実行プラン900へと変換する。実行プラン900において、ScanMaxheightは、ブロックのヘッダをスキャンして身長heightの最大値を求める処理を表す。最適化後の図9に示す実行プラン900は、各ブロックのヘッダのスキャンを実行する。そのため、実行プラン900は、全てのブロックのスキャンを要した図7の実行プラン700と比べて、計算量とI/O量が少なく、高速である。
図10は、図4で例示したStaffテーブル内の在職している職員の最大身長を求める問合せから得られた実行プラン1000の例である。図10において、Retired1001は、退職した社員のIDが格納されたRetiredテーブルを表し、σNOT EXISTS1002は、NOT EXISTS(退職した社員のIDに含まれないID)に基づく選択処理を、それぞれ、表す。問合せ実行部206は、次のような流れで、図10の実行プラン1000を、統計値情報を利用する実行プラン(図13)へと、最適化する。まず、Staffが、複数のブロックへ水平分割されていることから、問合せ実行部206は、図10の実行プラン1000を、図11の実行プラン1100へと、変換する。そして、問合せ実行部206は、実行プラン1100を、統計値利用可否判定部207に、入力する。そして、統計値利用可否判定部207は、各ブロックの全てのレコードが、σNOT EXISTSに基づいて選択されるか否かを、判定する。そして、全てのレコードが選択されると判定された場合、問合せ実行部206は、選択処理を取り除く。例えば、ブロックBとCで全てのレコードが選択されると判定された場合、問合せ実行部206は、図11の実行プラン1100を、図12の実行プラン1200へと、変換する。その後、問合せ実行部206は、前述の例と同様に、BとCとに対して、ブロックのスキャン処理と最大値の算出処理とを、統計値のスキャン処理に置換し、最終的に、図13の実行プラン1300を得る。
(統計値利用可否判定部207)
統計値利用可否判定部207は、実行プランの中で、統計値を利用できるか否かを判定する。例えば、ブロックのスキャン処理と集約処理との間に選択処理があった場合、統計値利用可否判定部207は、その選択処理において、ブロック内のレコードが全て選択されるか否かを、ブロックに格納されているレコードを参照することなく判定する。
レコードが全て選択されるかどうかの判定方法として、分布情報を利用した偽陰性のある判定方式がある。偽陰性があるとは、実際にはレコードが全て選択されるにもかかわらず、選択されないレコードがあると判定してしまうことを意味する。選択されないレコードがあると判定された場合、その部分に関しては最適化されないため、最適化の機会損失となる。しかし、最適化されない場合でも、処理結果に対する影響は、ない。そのため、この判定方法は、安全である。
図6の問合せ601を処理する場合、レコード選択処理の選択条件が、属性の大小関係に基づくため、統計値利用可否判定部207は、ブロックのヘッダに格納されている属性の最大値と最小値とを利用する。そして、統計値利用可否判定部207は、そのブロック内の全てのレコードが選択されるか否か、すなわち、統計値が利用可能か否かを判定する。
一方、図6に示す問合せ602を処理する場合、統計値利用可否判定部207は、数式(1)に示すマッピング関数を基に算出された分布情報を用いる。すなわち、統計値利用可否判定部207は、分布情報を用いて、問合せ602内に出現するNOT EXISTSに基づいた選択処理において、レコードが全て選択されるか否かを判定する。ここでのタスク(判定)は、Staffテーブルの各ブロック内に、Retiredテーブル内のIDを持つレコードが一つも含まれないか否かを判定することである。一つも含まれない場合、統計値利用可否判定部207は、選択処理に基づいて、ブロック内の全てのレコードが選択されることがわかる。
前述したように、分布情報算出部204は、RetiredテーブルのID属性に対して、分布情報として、ビット列10001000を得る。また、同様にマッピング関数を使うと、分布情報算出部204は、StaffテーブルのブロックA、B、及びCについて、それぞれ、分布情報として、ビット列10000000、01000000、及び00100000を得る。このとき、統計値利用可否判定部207は、Retiredテーブルのビット列と各ブロックのビット列とのAND演算を行う。そして、演算結果が「0」になった場合、統計値利用可否判定部207は、そのStaffテーブルブロック内に、Retiredテーブル内のIDを持つレコードが一つも含まれないと判断する。すなわち、統計値利用可否判定部207は、選択処理に基づいて、そのブロック内の全てのレコードが選択されると、判断する。ここでは、ブロックAに対しては、AND演算結果が、「0」でない値となる、また、ブロックBとCとについては、AND演算結果が、「0」となる。そのため、統計値利用可否判定部207は、ブロックBとCについてNOT EXISTSに基づいた選択処理で、全てのレコードが選択されると判断する。これらの処理を基に、問合せ実行部206は、これらのブロック(ブロックB及びC)について統計値を利用して処理するように、実行プランを最適化し、計算時間を短縮する。
例えば、統計値利用可否判定部207は、問合せ601に対し、図14で例示されているテーブルデータ1401の各ブロック1411〜1413に対して、各ブロックのヘッダをスキャンし、そのブロックにおけるAge属性の最大値と最小値を取得する。なお、この際、統計値利用可否判定部207は、ブロック1411〜1413の軽量インデックス1414〜1416を用いる。そして、選択条件が「Age<29」であることから、統計値利用可否判定部207は、Ageの最大値が29よりも小さいブロックについては、全てのレコードが選択される、すなわち、統計値が利用可能であると判定する。図14では、ブロック1412が、この判定に該当する。
なお、上述したとおり、ファイル作成部202は、テーブルを水平分割する前に、レコードの順序を並び替えてもよい。具体的には、ファイル作成部202は、過去の問合せでの選択処理の条件式に頻出する属性に関して、テーブルデータのレコード(行)を並び替えたうえで、テーブルデータを水平分割してブロックを作成してもよい。この並び替えに基づいて、ファイル作成部202は、ブロック内の属性の値の分散を小さくし、問合せ内で統計値が利用できる確率を高めることができる。図15は、図14のテーブルデータ1401を、属性Ageについて並び替えたテーブルデータ1501を示す図である。図15のテーブルデータ1501において、統計値を利用できるブロックは、3つのブロック1511〜1513の中の、ブロック1511及び1512の2つである。テーブルデータ1501における統計量を利用できるブロックの数は、並び替え前のテーブルデータ1401でのブロックの数の一つより、多い。すなわち、スキャンを省くことのできるブロック数が多くなっているため、テーブルデータ1501において、I/O量と計算量とが、少なくなる。そのため、問合せ処理は、より効率的である。
並び替えを行う属性については、利用者が、決定してもよいし、データ処理装置200が、自動的に決定してもよい。並び替え属性の決定方式の例としては、過去に行われた問合せの履歴の中で、選択処理の条件式に頻繁に登場する属性を選ぶ、という方法がある。一般に、過去に行われた問合せに似た問合せが、将来も行われる可能性が高い。そのため、この方式は、将来行われる問合せの性能を向上することが、期待される。
(ファイル格納部208)
ファイル格納部208は、ファイル作成部202に基づいて作成されたファイルを、記録媒体に格納する。この記録媒体は、主記憶でもよいし、二次記憶でもよい。
(処理の流れ)
図16は、データ処理装置200において、テーブルデータを入力した際に実行される処理の流れを例示するフローチャートである。ステップS1602において、テーブルデータ入力部201は、テーブルデータを取得する。ステップS1604において、ファイル作成部202は、テーブルを水平分割し、ブロックを作成する。ステップS1606〜S1612において、統計値情報算出部203は、各ブロックについて、統計値を算出する(S1608)。さらに、分布情報算出部204は、各ブロックについて、分布情報を算出する(S1610)。その後、ファイル作成部202は、ブロックと、得られた統計値情報及び分布情報とを基に、ファイルを作成し、ファイル格納部208に格納する(S1614)。
図17は、データ処理装置200において、問合せの実行時の処理の流れを例示するフローチャートである。ステップS1702において、問合せ受付部205は、問合せを取得する。ステップS1704において、問合せ実行部206は、実行プランを作成する。ステップS1706において、問合せ実行部206は、実行プラン内の各レコード選択処理について、そのレコード選択処理の直後に集約処理が行われる場合、統計値利用可否判定部207に問合せを行なう。そして、問合せ実行部206は、選択処理の処理結果に対して、統計値が利用できるか否かを判定する(S1708)。そして、利用可能と判定された場合、問合せ実行部206は、選択処理と、その後の集約処理とを、統計値の参照処理へと、置換する(S1710)。問合せ実行部206が、実行プランの最適化処理(全てのレコード選択処理に対する判定及び置換)を完了すると、データ処理装置200は、ステップS1712からステップS1714に進む。ステップS1714において、問合せ実行部206は、最適化後の実行プランに従って、ファイル格納部208に格納されているテーブルデータを参照しながら、問合せを処理する。
(効果)
本実施形態は、実行プラン内に含まれるレコードの選択処理結果の集約処理を、軽量インデックス内の統計値のスキャン処理に置換する。そのため、本実施形態は、計算量とI/O量とを削減するとの効果を奏することができる。そして、その結果、本実施形態は、集約処理の実行時間を短縮するとの効果を奏することができる。
その詳細な理由は、次の通りである。テーブルデータ入力部201は、テーブルデータを取得する。そして、ファイル作成部202は、テーブルを水平分割し、ブロックを作成する。統計値情報算出部203は、各ブロックについて、統計値を算出する。さらに、分布情報算出部204は、各ブロックについて、分布情報を算出する。その後、ファイル作成部202は、ブロックと、得られた統計値情報及び分布情報とを含むファイルを作成し、保存する。
そして、問合せ実行部206は、問合せ受付部205が取得した問合せに対して、実行プランを作成する。そして、問合せ実行部206は、実行プラン内の各レコード選択処理について、そのレコード選択処理の直後に集約処理が行われる場合、統計値利用可否判定部207を用いて、統計値が利用できるか否かを判定する。利用可能と判定された場合、問合せ実行部206は、選択処理と、その後の集約処理とを、統計値の参照処理へと置換、つまり、最適化する。そして、問合せ実行部206は、最適化後の実行プランに従って、問合せを処理するためである。
[第3実施形態]
次に、本発明の第3実施形態に係るデータ処理装置1800について、図18を用いて説明する。図18は、本実施形態に係るデータ処理装置1800の機能構成を説明するための図である。本実施形態に係るデータ処理装置1800は、上記第2実施形態と比べると、分布情報格納部1801を有する点で異なる。その他の構成及び動作は、第2実施形態と同様である。そのため、同じ構成及び動作については、同じ符号を付して、その詳しい説明を省略する。
データの分布情報を、テーブルデータファイルのブロックのヘッダ部分に格納していたデータ処理装置200と異なり、データ処理装置1800は、データの分布情報を、分布情報格納部1801に格納する。そのため、統計値利用可否判定部207は、統計値の利用可否を判断する際に、ブロックのヘッダではなく、分布情報格納部1801への問合せを行う。
(分布情報格納部1801)
分布情報格納部1801は、分布情報算出部204が算出した各ブロックの各属性に対する分布情報を格納する。分布情報格納部1801は、主記憶又は二次記憶内のデータベースでもよいし、ファイルでもよい。
(効果)
本実施形態は、分布情報とデータの実体の格納先とを分離する。そのため、本実施形態は、テーブルデータの格納されているファイルを更新しないで、分布情報の種類を変更又は追加できるとの効果を奏することができる。
[他の実施形態]
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステム、又は、装置も、本発明の範疇に含まれる。
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるデータ処理プログラム、あるいは、そのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は、本発明の範疇に含まれる。
[ハードウェア構成]
以上の説明した、データ処理装置100、データ処理装置200、及び、データ処理装置1800(以下まとめて、データ処理装置100とする)は、次のように構成される。
例えば、データ処理装置100の各構成部は、ハードウェア回路で構成されてもよい。
また、データ処理装置100は、各構成部が、ネットワークを介して接続した複数の装置を用いて、構成されてもよい。
また、データ処理装置100は、複数の構成部を1つのハードウェアで構成されてもよい。
また、データ処理装置100は、CPU(Central Processing Unit)と、ROM(Read Only Memory)と、RAM(Random Access Memory)とを含むコンピュータ装置として実現されてもよい。データ処理装置100は、上記構成に加え、さらに、入出力接続回路(IOC:Input / Output Circuit)と、ネットワークインターフェース回路(NIC:Network Interface Circuit)とを含むコンピュータ装置として実現されてもよい。
図24は、データ処理装置100の一例であるデータ処理装置600のハードウェア構成を例示するブロック図である。
データ処理装置600は、CPU610と、ROM620と、RAM630と、内部記憶装置640と、IOC650と、NIC680とを含み、コンピュータ装置を構成している。
CPU610は、ROM620からプログラムを読み込む。そして、CPU610は、読み込んだプログラムに基づいて、RAM630と、内部記憶装置640と、IOC650と、NIC680とを制御する。そして、CPU610を含むコンピュータは、これらの構成を制御し、図1に示す、分割部101と、統計値算出部102と、判定部103と、問合せ実行部104としての各機能を実現する。あるは、CPU610を含むコンピュータは、これらの構成を制御し、図2又は図18に示す各構成部としての各機能を実現する。
CPU610は、各機能を実現する際に、RAM630又は内部記憶装置640を、プログラムの一時記憶として使用してもよい。
また、CPU610は、コンピュータで読み取り可能にプログラムを記憶した記憶媒体690が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでもよい。あるいは、CPU610は、NIC680を介して、図示しない外部の装置からプログラムを受け取り、RAM630に保存して、保存したプログラムを基に動作してもよい。
ROM620は、CPU610が実行するプログラム及び固定的なデータを記憶する。ROM620は、例えば、P−ROM(Programmable-ROM)又はフラッシュROMである。
RAM630は、CPU610が実行するプログラム及びデータを一時的に記憶する。RAM630は、例えば、D−RAM(Dynamic-RAM)である。
内部記憶装置640は、データ処理装置600が長期的に保存するデータ及びプログラムを記憶する。また、内部記憶装置640は、CPU610の一時記憶装置として動作してもよい。内部記憶装置640は、例えば、ハードディスク装置、光磁気ディスク装置、SSD(Solid State Drive)又はディスクアレイ装置である。
ここで、ROM620と内部記憶装置640は、不揮発性(non-transitory)の記憶媒体(記録媒体)である。一方、RAM630は、揮発性(transitory)の記憶媒体である。そして、CPU610は、ROM620、内部記憶装置640、又は、RAM630に記憶されているプログラムを基に動作可能である。つまり、CPU610は、不揮発性記憶媒体又は揮発性記憶媒体を用いて動作可能である。
IOC650は、CPU610と、入力機器660及び表示機器670とのデータを仲介する。IOC650は、例えば、IOインターフェースカード又はUSB(Universal Serial Bus)カードである。
入力機器660は、データ処理装置600の操作者からの入力指示を受け取る機器である。入力機器660は、例えば、キーボード、マウス又はタッチパネルである。
表示機器670は、データ処理装置600の操作者に情報を表示する機器である。表示機器670は、例えば、液晶ディスプレイである。
NIC680は、ネットワークを介した図示しない外部の装置とのデータのやり取りを中継する。NIC680は、例えば、LAN(Local Area Network)カードである。
このように構成されたデータ処理装置600は、データ処理装置100と同様の効果を得ることができる。
その理由は、データ処理装置600のCPU610が、プログラムに基づいてデータ処理装置100と同様の機能を実現できるためである。
[実施形態の他の表現]
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
テーブルデータに含まれるレコードを、複数のブロックに、レコードを単位とした分割である水平分割する分割手段と、
ブロックのそれぞれについて、ブロックにおけるレコードに含まれる属性の統計値を算出する統計値算出手段と、
テーブルデータに対し、レコードの選択処理後に集約処理をする問合せを処理する際に、選択処理に基づいてブロック内のレコードが全て選択されるか否かを、ブロックのそれぞれについて、統計値に基づいて、判定する判定手段と、
判定手段に基づいてレコードが全て選択されると判定されたブロックについては、判定されたブロックの統計値を、判定されたブロックに対する問合せの結果として利用する問合せ実行手段と
を含むデータ処理装置。
(付記2)
各ブロックの各属性について値の分布を近似した分布情報を算出する分布情報算出手段をさらに含み、
判定手段が、分布情報を利用して、判定を実行する
付記1に記載のデータ処理装置。
(付記3)
分布情報算出手段が、複数の異なる情報における複数の分布情報を算出し、
判定手段が、複数の分布情報を利用して、判定を実行する
付記2に記載のデータ処理装置。
(付記4)
判定手段が、レコード選択処理の選択条件が属性の大小関係に基づく場合、各ブロックの統計値から取得した属性の最大値と最小値を利用して、判定を実行する
付記1乃至3のいずれか1項に記載のデータ処理装置。
(付記5)
分割手段が、過去の問合せでの選択処理の条件式に頻出する属性に関して、テーブルデータに含まれるレコードを並び替え、並び替えた後のテーブルデータをブロックに水平分割する
付記1乃至4のいずれか1項に記載のデータ処理装置。
(付記6)
テーブルデータに含まれるレコードを、複数のブロックに、レコードを単位とした分割である水平分割し、
ブロックのそれぞれについて、ブロックにおけるレコードに含まれる属性の統計値を算出し、
テーブルデータに対しレコードの選択処理後に集約処理をする問合せを処理する際に、選択処理に基づいてブロック内のレコードが全て選択されるか否かを、ブロックのそれぞれについて、統計値を基に、判定し、
判定に基づいてレコードが全て選択されると判定されたブロックについては、判定されたブロックの統計値を、判定されたブロックに対する問合せの結果として利用する
データ処理方法。
(付記7)
テーブルデータに含まれるレコードを、複数のブロックに、レコードを単位とした分割である水平分割する分割処理と、
ブロックのそれぞれについて、ブロックにおけるレコードに含まれる属性の統計値を算出する統計値算出処理と、
テーブルデータに対しレコードの選択処理後に集約処理をする問合せを処理する際に、選択処理に基づいてブロック内のレコードが全て選択されるか否かを、ブロックのそれぞれについて、統計値を基に、判定する判定処理と、
判定処理に基づいてレコードが全て選択されると判定されたブロックについては、判定されたブロックの統計値を、判定されたブロックに対する問合せの結果として利用する問合せ実行処理
をコンピュータ装置に実行させるプログラムをコンピュータ装置に読み取り可能に記憶する記録媒体。
この出願は、2014年8月19日に出願された日本出願特願2014−166753を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明の活用例として、分散データウェアハウスシステムが、挙げられる。分散データウェアハウスシステムでは、テーブルデータが、水平分割され、複数のノードに分散配置される。そのため、本発明を用いると、分散データウェアハウス上の集約処理は、高速となる。
100 データ処理装置
101 分割部
102 統計値算出部
103 判定部
104 問合せ実行部
110 テーブルデータ
120 問合せ
200 データ処理装置
201 テーブルデータ入力部
202 ファイル作成部
203 統計値情報算出部
204 分布情報算出部
205 問合せ受付部
206 問合せ実行部
207 統計値利用可否判定部
208 ファイル格納部
301 テーブルデータ
401 テーブルデータ
411 ブロック
414 軽量インデックス
501 Retiredテーブル
511 ブロック
600 データ処理装置
601 問合せ
602 問合せ
610 CPU
620 ROM
630 RAM
640 内部記憶装置
650 IOC
660 入力機器
670 表示機器
680 NIC
690 記憶媒体
700 実行プラン
701 Staff
702 Scan
703 Maxheight
800 実行プラン
900 実行プラン
1000 実行プラン
1001 Retired
1002 σNOT EXISTS
1100 実行プラン
1200 実行プラン
1300 実行プラン
1401 テーブルデータ
1411 ブロック
1412 ブロック
1414 軽量インデックス
1501 テーブルデータ
1511 ブロック
1800 データ処理装置
1801 分布情報格納部
1900 問合せ
2001 テーブルデータ
2002 属性選択
2003 解
2101 テーブルデータ
2111 ブロック
2114 軽量インデックス
2117 最大値
2200 問合せ
2301 レコード

Claims (7)

  1. テーブルデータに含まれるレコードを、複数のブロックに、レコードを単位とした分割
    である水平分割する分割手段と、
    前記ブロックのそれぞれについて、前記ブロックにおけるレコードに含まれる属性の統計値を算出する統計値算出手段と、
    前記テーブルデータに対し、レコードの選択処理後に集約処理をする問合せを処理する際に、前記選択処理に基づいて前記ブロック内のレコードが全て選択されるか否かを、前記ブロックのそれぞれについて、前記統計値を基に、判定する判定手段と、
    前記判定手段に基づいてレコードが全て選択されると判定されたブロックについては、前記判定されたブロックの統計値を、前記判定されたブロックに対する前記問合せの結果として利用する問合せ実行手段と
    を含むデータ処理装置。
  2. 各ブロックの各属性について値の分布を近似した分布情報を算出する分布情報算出手段をさらに含み、
    前記判定手段が、前記分布情報を利用して、前記判定を実行する
    請求項1に記載のデータ処理装置。
  3. 前記分布情報算出手段が、複数の異なる情報における複数の分布情報を算出し、
    前記判定手段が、前記複数の分布情報を利用して、前記判定を実行する
    請求項2に記載のデータ処理装置。
  4. 前記判定手段が、レコード選択処理の選択条件が属性の大小関係に基づく場合、各ブロックの統計値から取得した前記属性の最大値と最小値を利用して、前記判定を実行する
    請求項1乃至3のいずれか1項に記載のデータ処理装置。
  5. 前記分割手段が、過去の問合せでの選択処理の条件式に頻出する属性に関して、前記テーブルデータに含まれるレコードを並び替え、並び替えた後の前記テーブルデータをブロックに水平分割する
    請求項1乃至4のいずれか1項に記載のデータ処理装置。
  6. 情報処理装置が、
    テーブルデータに含まれるレコードを、複数のブロックに、レコードを単位とした分割である水平分割し、
    前記ブロックのそれぞれについて、前記ブロックにおけるレコードに含まれる属性の統計値を算出し、
    前記テーブルデータに対しレコードの選択処理後に集約処理をする問合せを処理する際に、前記選択処理に基づいて前記ブロック内のレコードが全て選択されるか否かを、前記ブロックのそれぞれについて、前記統計値を基に、判定し、
    前記判定に基づいてレコードが全て選択されると判定されたブロックについては、前記判定されたブロックの統計値を、前記判定されたブロックに対する前記問合せの結果として利用する
    データ処理方法。
  7. テーブルデータに含まれるレコードを、複数のブロックに、レコードを単位とした分割である水平分割する分割処理と、
    前記ブロックのそれぞれについて、前記ブロックにおけるレコードに含まれる属性の統計値を算出する統計値算出処理と、
    前記テーブルデータに対しレコードの選択処理後に集約処理をする問合せを処理する際に、前記選択処理に基づいて前記ブロック内のレコードが全て選択されるか否かを、前記ブロックのそれぞれについて、前記統計値を基に、判定する判定処理と、
    前記判定処理に基づいてレコードが全て選択されると判定されたブロックについては、前記判定されたブロックの統計値を、前記判定されたブロックに対する前記問合せの結果として利用する問合せ実行処理と、
    をコンピュータ装置に実行させるプログラム。
JP2016543811A 2014-08-19 2015-08-18 データ処理装置、データ処理方法、及び、プログラム Active JP6642435B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014166753 2014-08-19
JP2014166753 2014-08-19
PCT/JP2015/004090 WO2016027451A1 (ja) 2014-08-19 2015-08-18 データ処理装置、データ処理方法、及び、記録媒体

Publications (2)

Publication Number Publication Date
JPWO2016027451A1 JPWO2016027451A1 (ja) 2017-06-01
JP6642435B2 true JP6642435B2 (ja) 2020-02-05

Family

ID=55350415

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016543811A Active JP6642435B2 (ja) 2014-08-19 2015-08-18 データ処理装置、データ処理方法、及び、プログラム

Country Status (3)

Country Link
US (1) US10621173B2 (ja)
JP (1) JP6642435B2 (ja)
WO (1) WO2016027451A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10346403B2 (en) * 2016-05-06 2019-07-09 International Business Machines Corporation Value range synopsis in column-organized analytical databases
US10545974B2 (en) 2016-07-18 2020-01-28 Sap Se Hierarchical window database query execution
US10346398B2 (en) 2017-03-07 2019-07-09 International Business Machines Corporation Grouping in analytical databases
JP2018206084A (ja) 2017-06-05 2018-12-27 株式会社東芝 データベース管理システムおよびデータベース管理方法
CN116955482A (zh) * 2023-06-27 2023-10-27 北京邮电大学 基于信息损失约束的数据划分方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537589A (en) 1994-06-30 1996-07-16 Microsoft Corporation Method and system for efficiently performing database table aggregation using an aggregation index
JP3952518B2 (ja) * 1996-03-29 2007-08-01 株式会社日立製作所 多次元データ処理方法
JP2006259790A (ja) * 2005-03-15 2006-09-28 Nomura Research Institute Ltd データベースを有するアプリケーションシステム、データベースのアクセス方法、及びデータベースへアクセスするためのコンピュータプログラム
JP4782490B2 (ja) * 2005-06-29 2011-09-28 富士通株式会社 データ集合分割プログラム、データ集合分割装置、およびデータ集合分割方法
US20080109423A1 (en) * 2006-11-08 2008-05-08 Eric Lawrence Barsness Apparatus and method for database partition elimination for sampling queries
US9514187B2 (en) * 2012-09-28 2016-12-06 Oracle International Corporation Techniques for using zone map information for post index access pruning

Also Published As

Publication number Publication date
US20170277752A1 (en) 2017-09-28
US10621173B2 (en) 2020-04-14
WO2016027451A1 (ja) 2016-02-25
JPWO2016027451A1 (ja) 2017-06-01

Similar Documents

Publication Publication Date Title
US20220327137A1 (en) Modifying field definitions to include post-processing instructions
JP6870071B2 (ja) テーブルのインクリメンタルクラスタリング保守
AU2016359060B2 (en) Storing and retrieving data of a data cube
JP6642435B2 (ja) データ処理装置、データ処理方法、及び、プログラム
JP6336096B2 (ja) 指定された数量の結果についてメモリ内の複数のストレージ領域をスキャンするための方法、システム及びコンピュータ・プログラム
JP2019194882A (ja) ファーストクラスデータベース要素としての半構造データの実装
EP2577507B1 (en) Data mart automation
JP2019532370A (ja) ユーザ権限データ検索方法および電子機器
US10565201B2 (en) Query processing management in a database management system
US20150347492A1 (en) Representing an outlier value in a non-nullable column as null in metadata
US20180144061A1 (en) Edge store designs for graph databases
CN111627552B (zh) 一种医疗流式数据血缘关系分析、存储方法及装置
US10108669B1 (en) Partitioning data stores using tenant specific partitioning strategies
CN105760418B (zh) 用于对关系数据库表进行交叉列搜索的方法和系统
US8560560B2 (en) Device and method for distributed processing
CN111930731A (zh) 数据转储方法、装置、设备及存储介质
KR101955376B1 (ko) 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치
US20180144060A1 (en) Processing deleted edges in graph databases
US9881055B1 (en) Language conversion based on S-expression tabular structure
US9959295B1 (en) S-expression based computation of lineage and change impact analysis
KR101638048B1 (ko) 맵리듀스를 이용한 sql 질의처리방법
JP2016062522A (ja) データベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラム
JP7211255B2 (ja) 検索処理プログラム、検索処理方法及び情報処理装置
JP6801195B2 (ja) 検索処理方法、検索処理装置及び検索処理プログラム
JP5191441B2 (ja) インデクス構築方法及び装置及び情報検索方法及び装置及びプログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170123

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190910

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191029

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: 20191203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191216

R150 Certificate of patent or registration of utility model

Ref document number: 6642435

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150