JP2017142672A - データベースシステム - Google Patents

データベースシステム Download PDF

Info

Publication number
JP2017142672A
JP2017142672A JP2016023895A JP2016023895A JP2017142672A JP 2017142672 A JP2017142672 A JP 2017142672A JP 2016023895 A JP2016023895 A JP 2016023895A JP 2016023895 A JP2016023895 A JP 2016023895A JP 2017142672 A JP2017142672 A JP 2017142672A
Authority
JP
Japan
Prior art keywords
index
value
index value
attribute
query
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
JP2016023895A
Other languages
English (en)
Inventor
悠太 並木
Yuta Namiki
悠太 並木
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
Priority to JP2016023895A priority Critical patent/JP2017142672A/ja
Publication of JP2017142672A publication Critical patent/JP2017142672A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】適切なインデックスを使用して問合せを効率良く処理するためには、事前にインデックス選択の判断材料となる統計情報を収集しておく必要があること。【解決手段】データ部は、複数の属性の値のセットと、複数の属性の値のうちの特定の一つからなるデータ識別情報とを、一対のデータとして記憶する。インデックスは、特定の一つ以外の複数の属性のそれぞれに対応して、属性の値をセットに含む一対のデータのデータ識別情報を記憶する。情報処理装置は、問合せで指定された検索対象となる属性の値ごとに、属性の値に対応するインデックスに記憶されたデータ識別情報の個数を算出し、その個数に基づいて属性の値に対応する指標値を算出する。そして、情報処理装置は、指標値に基づいて、問合せの処理に使用するインデックスを選択し、問合せを処理する。【選択図】図14

Description

本発明は、データベースシステム、情報処理装置、問合せ方法、およびプログラムに関する。
極めて大量のデータを保管するために、近年、分散キーバリューストア(以下、KVSと記す)が注目されている。例えば、Voldemort(http://www.project-voldemort.com/)は、その実装のひとつである。一般に、KVSは、スケーラビリティとスループットを重視し、少数のノードからなる構成から、必要に応じてノードを追加することで、システムを拡張し、膨大なデータに対する多数の同時要求を処理することが期待されている。
ただし、KVSは、スケーラビリティを重視する。そのために、KVSでは、データはキーとバリューからなる単純な構造(以下、キーバリューペア、あるいは、KVペアと記す)で表現され、使用できる操作は、KVペアのキーを指定してバリューを取得(get)、KVペアを格納(put)、キーを指定してKVペアを削除(delete)のみである。
一方、コンピュータシステムにおいて、データを格納する場合は、リレーショナルデータベース(以下、RDBと記す)が広く利用されている。RDBは、柔軟な表形式のデータ構造と多くの機能を備えるが、スケーラビリティは限られる。このため、RDBの表形式でのデータ管理をKVS上で実現し、スケーラビリティに優れたものにする試みとして、マイクロシャーディング(Microsharding)がある(非特許文献1参照)。マイクロシャーディングでは、すべてのデータをキーバリュー形式で表現してKVSに格納する。
また、KVSは、基本的にキーの値を指定したKVペアの取得しか行えない。KVSでは、キーとして表の任意の列の値を使用し、バリューとして1行のすべての列の値を使用する。このため、KVSでは、キーとした列以外の列の値でアクセスするためには、別に外部構造が必要である。このとき、1行のデータを含むKVペアを「表データ」、キーとした列以外の列の値でアクセスするための外部構造を「索引(インデックス)」と呼ぶ。索引は、一つの表に対し複数作成することができる。
問合せで指定された検索条件が複数存在するために複数のインデックスが使用可能なとき、どのインデックスを使用して問合せを処理するかが問題になる。例えば、SQLで表現された図15に示すような問合せを処理することを考える。この問合せは、購入履歴テーブルから、都道府県の列の値が東京都であり、且つ、商品の列の値がAAAである表データを取得する問合せである。この問合せに対しては、以下の2つの処理方法が考えられる。何れの処理方法も、一方のインデックスを使用して一つの検索条件を満足する行を取得し、その取得した行から残り一つの検索条件を満足する行を取得するものである。
処理方法1
都道府県の列のインデックスを使用し、東京都の列を有する全ての行を取得する。その後、取得した行の中から、商品の列の値がAAAである行を取得する。
処理方法2
商品の列のインデックスを使用し、AAAの列を有する全ての行を取得する。その後、取得した行の中から、都道府県の列の値が東京都である行を取得する。
問合せを高速に処理するためには、処理の過程で取得するデータ量を最小限とすべきである。すなわち、上記の例では、インデックスを使用して取得した行の数がより少なくなるように、インデックスを選択すべきである。
従来のリレーショナルデータベース(RDB)では、事前にデータの分布(これは統計情報と呼ばれる)を算出して記憶しておき、問合せが入力されると、上記統計情報を参照して、上記問合せの処理に使用するインデックスを選択する仕組みがある。例えば、都道府県のインデックスで東京都の列を有する行は全体の約30%であり、商品のインデックスでAAAの列を有する行は全体の約1%であるというような統計情報や、あるいはそれぞれ何件あるというような統計情報を事前に算出して記憶しておく。そして、例えば図15に示したような問合せが入力されると、上記統計情報を参照して、商品のインデックスを使用すれば、都道府県のインデックスを使用する場合に比べて、取得する行が少なくなることを判断し、上記の処理方法2を使用して上記問合せを処理する。
他方、本発明に関連する技術として、KVSにおいてインデックスを使用してキー以外の属性の値による検索を行う情報処理システムにおいて、指標値としてアクセスパスの利用回数を用い、或るKVペアにおいて何れの属性がキーとして最適かを判定し、判定結果に基づいてKVペアの構造を書き換えることにより、頻繁に利用されるアクセスパスの処理速度を改善する技術がある(例えば特許文献1参照)。
特開2015−69269号公報
Junichi Tatemura, Oliver Po, Wang-Pin Hsiung, and Hakan Hacigumus. 2012. Partiqle: an elastic SQL engine over key-value stores. In Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data
上述したように、適切なインデックスを使用して問合せを効率良く処理するためには、事前にインデックス選択の判断材料となる統計情報を収集しておく必要がある。このため、統計情報を収集し終える迄、問合せの処理を開始することができない。また、統計情報の採取にはデータをフルスキャンする必要がある。RDBはKVSと異なり、データのフルスキャンが可能であり、アナライズと呼ばれる操作でデータをフルスキャンあるいはランダムにサンプリングしてデータの分布を採取し、インデックスの選択に利用している。しかし、KVSではフルスキャンはサポートされていないため、RDBと同じ手法は使用できない。
本発明の目的は、上述した課題、すなわち、適切なインデックスを使用して問合せを効率良く処理するためには、事前にインデックス選択の判断材料となる統計情報を収集しておく必要がある、という課題を解決するデータベースシステムを提供することにある。
本発明の一実施形態に係るデータベースシステムは、
データベースシステムであって、
複数の属性の値のセットと、前記複数の属性の値のうちの特定の一つからなるデータ識別情報とを、一対のデータとして記憶するデータ部と、前記特定の一つ以外の複数の前記属性のそれぞれに対応して、前記属性の値を前記セットに含む前記一対のデータの前記データ識別情報を記憶する複数のインデックスと、を記憶する記憶装置と、
前記記憶装置に対して発行された問合せを入力し、前記問合せの結果を出力する情報処理装置と、を備え、
前記情報処理装置は、
前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性の値に対応する前記インデックスに記憶された前記データ識別情報の個数を算出し、前記個数に基づいて前記属性の値に対応する指標値を算出する指標値算出手段と、
前記指標値に基づいて、前記問合せの処理に使用する前記インデックスを選択する第1のインデックス選択手段と、を有する。
本発明の他の実施形態に係る情報処理装置は、
複数の属性の値のセットと、前記複数の属性の値のうちの特定の一つからなるデータ識別情報とを、一対のデータとして記憶するデータ部と、前記特定の一つ以外の複数の前記属性のそれぞれに対応して、前記属性の値を前記セットに含む前記一対のデータの前記データ識別情報を記憶する複数のインデックスと、を記憶するように構成された、記憶装置に対して発行された問合せを入力し、前記問合せの結果を出力する情報処理装置であって、
前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性の値に対応する前記インデックスに記憶された前記データ識別情報の個数を算出し、前記個数に基づいて前記属性の値に対応する指標値を算出する指標値算出手段と、
前記指標値に基づいて、前記問合せの処理に使用する前記インデックスを選択する第1のインデックス選択手段と、を有する。
本発明の他の実施形態に係る問合せ処理方法は、
複数の属性の値のセットと、前記複数の属性の値のうちの特定の一つからなるデータ識別情報とを、一対のデータとして記憶するデータ部と、前記特定の一つ以外の複数の前記属性のそれぞれに対応して、前記属性の値を前記セットに含む前記一対のデータの前記データ識別情報を記憶する複数のインデックスと、を記憶するように構成された、記憶装置に対して発行された問合せを入力し、前記問合せの結果を出力する情報処理装置が実行する問合せ処理方法であって、
前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性の値に対応する前記インデックスに記憶された前記データ識別情報の個数を算出し、前記個数に基づいて前記属性の値に対応する指標値を算出し、
前記指標値に基づいて、前記問合せの処理に使用する前記インデックスを選択する。
本発明の他の実施形態に係るプログラムは、
複数の属性の値のセットと、前記複数の属性の値のうちの特定の一つからなるデータ識別情報とを、一対のデータとして記憶するデータ部と、前記特定の一つ以外の複数の前記属性のそれぞれに対応して、前記属性の値を前記セットに含む前記一対のデータの前記データ識別情報を記憶する複数のインデックスと、を記憶するように構成された、記憶装置に対して発行された問合せを入力し、前記問合せの結果を出力するコンピュータを、
前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性の値に対応する前記インデックスに記憶された前記データ識別情報の個数を算出し、前記個数に基づいて前記属性の値に対応する指標値を算出する指標値算出手段と、
前記指標値に基づいて、前記問合せの処理に使用する前記インデックスを選択する第1のインデックス選択手段と、
して機能させる。
本発明は上述した構成を有するため、適切なインデックスを使用して問合せを効率良く処理することができ、また、事前にインデックス選択の判断材料となる統計情報を収集しておく必要がない。
本発明の第1の実施形態に係るデータベースシステムのブロック図である。 キーバリューストアに格納されるデータ部とインデックスの一例を示す図である。 本発明の第1の実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。 本発明の第1の実施形態に係る情報処理装置が第1の運用フェーズで実行する問合せ処理方法の手順を示すフローチャートである。 本発明の第1の実施形態に係る情報処理装置の指標値計算装置が使用する指標値を計算する式の一例を示す図である。 本発明の第1の実施形態に係る情報処理装置の指標値記憶装置の一例を示す図である。 本発明の第1の実施形態に係る情報処理装置が第2の運用フェーズで実行する問合せ処理方法の手順を示すフローチャートである。 本発明の第1の実施形態に係る情報処理装置が第2の運用フェーズで実行する指標値の推定方法の手順を示すフローチャートである。 本発明の第1の実施形態に係る情報処理装置の第2のインデックス選択手段が使用する指標値の推定値を計算する式の一例を示す図である。 本発明の第1の実施形態の変形例における指標値記憶装置の一例を示す図である。 本発明の第1の実施形態の変形例における指標値計算装置が定期的に実行する指標値メンテナンス処理の手順の一例を示す図である。 本発明の第1の実施形態の変形例におけるデータ部の一例を示す図である。 本発明の第1の実施形態の変形例における指標値計算装置が定期的に実行する指標値メンテナンス処理の手順の一例を示す図である。 本発明の第2の実施形態に係るデータベースシステムのブロック図である。 データベースシステムに対する問合せの一例を示す図である。
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第1の実施形態]
図1を参照すると、本発明の第1の実施形態に係るデータベースシステム100は、情報処理装置110とキーバリューストア120とクライアント装置130とから構成される。
キーバリューストア120は、データ部121とインデックス122とを有するデータベースである。データ部121は、データベースで保存する対象となるデータであり、インデックス122は、データベースに保存されたデータのインデックスである。データ部121は、複数の属性の値のセットと、それら複数の属性の値のうちの特定の一つからなるデータ識別情報とを、一対のデータとして記憶する。また、インデックス122は、上記特定の一つ以外の属性に対応して、その属性の値をセットに含む一対のデータのデータ識別情報を記憶する。キーバリューストア120は、単一のノード(情報処理装置)により構成されていてもよいし、複数のノードにより構成された分散キーバリューストアであってもよい。
図2(A)、(B)、(C)は、データ部121とインデックス122の例を示す。この例のデータ部121とインデックス122は、何れもキーバリュー形式で格納されている。データ部121のバリューには、図2(A)に示すように、複数の属性の値のセットが格納され、キーには、そのうちの特定の一つの属性の値からなるデータ識別情報が格納されている。この例のデータ部121は、図2(D)に示す表形式のデータをキーバリュー形式に変換したものである。例えば、図2(A)のデータ部121の2行目のKVペアのバリューは、図2(D)の表形式データの2行目に格納されている、属性「ユーザID」の値‘1’、属性「名前」の値‘鈴木’、属性「都道府県」の値‘東京都’、属性「商品」の値‘商品’、属性「購入数」の値‘購入数’という5個の属性の値のセットであり、キーは、そのうちの特定の一つである属性「ユーザID」の値‘1’に、複数のデータ部を区別するための修飾語である‘購入履歴’を付加した‘購入履歴−1’になっている。
また、図2(B)に示すインデックス122は、属性「都道府県」に対応するインデックスの例を示す。例えば、インデックス122の2行目のKVペアのキーは、‘埼玉県’であり、バリューは、[2]である。これは、データ部121に格納されているKVデータのうち、属性「都道府県」の値が‘埼玉県’であるKVデータのキーは、‘2’であることを表している。
また、図2(C)に示すインデックス122は、属性「商品」に対応するインデックスの例を示す。例えば、インデックス122の3行目のKVペアのキーは、‘BBB’であり、バリューは、[2,3]である。これは、データ部121に格納されているKVデータのうち、属性「商品」の値が‘BBB’であるKVデータのキーは、‘2’、‘3’であることを表している。
再び図1を参照すると、クライアント装置130は、ユーザの指示により、データベースに対する問合せを発行する装置である。問合せは、例えばSQL言語で記述される。クライアント装置130は、例えばパーソナルコンピュータや携帯端末等で構成される。
情報処理装置110は、クライアント装置130が発行した問合せを受け付け、処理をして結果をクライアント装置130に返却する装置である。情報処理装置110は、第1の運用フェーズ、第2の運用フェーズという2種類の運用フェーズを有する。第1の運用フェーズは、情報収集フェーズとも呼ばれる。情報処理装置110は、第1の運用フェーズでは、クライアント装置130から発行された問合せで指定された検索対象となる属性の値ごとにインデックスの選択指標となる指標値を算出し、この算出した指標値に基づいてインデックスを選択して問合せを処理し、また上記算出した指標値を保存するフェーズである。他方、第2の運用フェーズは、単に運用フェーズとも呼ばれる。情報処理装置110は、第2の運用フェーズでは、クライアント装置130から発行された問合せで指定された検索対象となる属性の値ごとに、その属性の値に対応する指標値を第1の運用フェーズで保存しておいた指標値から取得し、この取得した指標値に基づいてインデックスを選択して問合せを処理するフェーズである。従って、典型的には、情報処理装置110は、最初は第1の運用フェーズで動作し、ある程度の量の指標値を保存する状態に至ると、第1の運用フェーズから第2の運用フェーズに切り替わり、第2の運用フェーズで動作する。
情報処理装置110は、問合せ処理装置111、指標値記憶装置112、指標値計算装置113、第1のインデックス選択装置114、および第2のインデックス選択装置115を有する。
問合せ処理装置111は、運用フェーズの切り替え、問合せの受け付けとその処理など、情報処理装置110の主たる動作を制御する装置である。
指標値計算装置113は、指標値を計算するための装置であり、主として第1の運用フェーズで使用される。指標値計算装置113は、問合せで指定された検索対象となる属性の値ごとに、インデックス122に記憶されたデータ識別情報の個数を算出し、この算出した個数に基づいて当該属性の値に対応する指標値を算出するように構成されている。
第1のインデックス選択装置114は、指標値計算装置113で計算された指標値に基づいて、問合せの処理に使用するインデックス122を選択するための装置であり、主として第1の運用フェーズで使用される。
指標値記憶装置112は、指標値計算装置113で計算された指標値を属性の値に対応付けて記憶する。指標値記憶装置112は、例えば、キーバリューストアで構成される。但し、指標値記憶装置112は、RDBなど他の任意のデータストアであってもよい。
第2のインデックス選択装置115は、指標値記憶装置112に記憶された指標値に基づいて、問合せの処理に使用するインデックス122を選択するための装置であり、主として第2の運用フェーズで使用される。
上述したような情報処理装置110は、例えば図3に示すように、1以上のマイクロプロセッサ等の演算処理部141と、メモリやハードディスク等の記憶部142と、通信部143とを有する情報処理装置140と、プログラム144とで実現することができる。通信部143は、クライアント装置130およびキーバリューストア120との間の通信に使用される。プログラム144は、情報処理装置140の立ち上げ時等に外部のコンピュータ読み取り可能な記録媒体からメモリに読み込まれ、演算処理部141の動作を制御することにより、演算処理部141上に、問合せ処理装置111、指標値記憶装置112、指標値計算装置113、第1のインデックス選択装置114、および第2のインデックス選択装置115を実現する。
次に本実施形態に係る情報処理装置110の動作を説明する。
情報処理装置110は、第1の運用フェーズ(情報収集フェーズ)、第2の運用フェーズ(運用フェーズ)の何れかのフェーズで動作する。問合せ処理装置111は、フェーズの切り替えをシステム管理者の指示に従って行う。システム管理者は、まず第1の運用フェーズで情報処理装置110を起動し、ワークロードを一通り流すなどして、指標値を採取する。そして、ある程度の量の指標値が収集できたら、システム管理者は情報処理装置110を第1の運用フェーズから第2の運用フェーズに切り替える。
以下にそれぞれのフェーズの動作を説明する。
まず、図4を参照して、情報処理装置110の第1の運用フェーズ(情報収集フェーズ)の動作を説明する。
問合せ処理装置111は、クライアント装置130から問合せ(SQL)を受け付けると、その問合せを解析し、使用可能なインデックスの選択肢を判断する(ステップS101)。例えば、図15に示した問合せの場合、問合せ処理装置111は、都道府県インデックスと商品インデックスとの2つの選択肢があることを判断する。
次に、問合せ処理装置111は、キーバリューストア120をアクセスして、選択可能な全てのインデックス122を取得する(ステップS102)。例えば、図15に示した問合せの場合、問合せ処理装置111は、図2(B)の都道府県インデックスから属性値「東京都」のKVペアを取得し、図2(C)の商品インデックスから属性値「AAA」のKVペアを取得する。ここで、KVペアを{キー:バリュー}の表記で表現するとすれば、都道府県インデックスから取得したKVペアは{東京都:[1,3]}、商品インデックスから取得したKVペアは{AAA:[1]}となる。
次に、問合せ処理装置111は、取得したインデックスのKVペアを指標値計算装置113に渡す。指標値計算装置113は、受け取ったKVペアに基づいて、都道府県インデックスの属性値「東京都」に対応する指標値、および商品インデックスの属性値「AAA」に対応する指標値を計算する(ステップS103)。
指標値計算装置113が指標値を計算するための式の例を図5の式1に示す。この例の式1によると、指標値計算装置113は、インデックスのKVペアにおけるキー部が示す属性値に対応する指標値を、バリュー部に含まれる値の数として計算する。例えば、上述した都道府県インデックスから取得したKVペア{東京都:[1,3]}の場合、指標値計算装置113は、バリュー部には‘1’、‘3’という2つの値が含まれるので、東京都に対応する指標値として2を算出する。また、指標値計算装置113は、商品インデックスから取得したKVペア{AAA:[1]}の場合、AAAに対応する指標値として1を算出する。
指標値計算装置113は、算出した指標値を指標値記憶装置112に記憶する(ステップS104)。上述した例では、指標値計算装置113は、都道府県インデックスの属性値「東京都」に対応する指標値「2」と、商品インデックスの属性値「AAA」に対応する指標値「1」とを、指標値記憶装置112に記憶する。
図6は、指標値記憶装置112の内容の一例を示す図である。この例の指標値記憶装置112は、指標値をキーバリュー形式で記憶する。例えば、図6の2行目のKVデータは、キー部に「都道府県−東京都」が、バリュー部に「2」が設定されている。これは、都道府県インデックスの属性値「東京都」に対応する指標値は、2であることを表している。
また指標値計算装置113は、算出した指標値を第1のインデックス選択装置114に渡す。第1のインデックス選択装置114は、受け取った指標値に基づいて、使用するインデックスを選択し、問合せ処理装置111に通知する(ステップS105)。具体的には、第1のインデックス選択装置114は、指標値が最小となるインデックスを選択する。例えば、上述した例では、指標値計算装置113は、都道府県インデックスの属性値「東京都」に対応する指標値は2であり、商品インデックスの属性値「AAA」に対応する指標値は1であるため、商品インデックスを選択する。なお、第1のインデックス選択装置114は、指標値が最小となるインデックスが複数存在する場合、その複数の中の任意の1つのインデックスを選択する。
問合せ処理装置111は、第1のインデックス選択装置114から通知されたインデックスを使用して問合せを処理し、結果をクライアント装置130に返却する(ステップS106)。例えば、問合せ処理装置111は、図15に示す問合せの場合、商品の列のインデックスを使用し、AAAの列を有する全ての行を取得し、その後、取得した行の中から、都道府県の列の値が東京都である行を取得する。
上述した問合せの例は、使用可能なインデックスの選択肢が都道府県インデックスと商品インデックスの2つであった。しかし、本発明は、使用可能なインデックスの選択肢が3以上存在する問合せに対しても同様に処理することによって、選択肢となるインデックスの属性値に対応する指標値を算出して指標値記憶装置に記憶することができる。また、使用可能なインデックスの選択肢が1つだけの問合せに対しても同様に処理することによって、インデックスの属性値に対応する指標値を算出して指標値記憶装置に記憶することができる。
このように第1の運用フェーズでは、情報処理装置110は、問合せの処理でインデックスが利用可能なとき、利用可能な全てのインデックスにアクセスして指標値を算出し、算出した指標値を指標値記憶装置112に記憶すると共に、算出した指標値に基づいて問合せを処理するためのインデックスを選択する。これによって、事前にインデックス選択の判断材料となる統計情報がなくても、適切なインデックスを使用して問合せを効率良く処理することができ、またインデックス選択のための指標値を蓄積していくことができる。
次に、図7を参照して、情報処理装置110の第2の運用フェーズ(運用フェーズ)の動作を説明する。
まず、問合せ処理装置111は、クライアント装置130から問合せ(SQL)を受け付けると、その問合せを解析し、使用可能なインデックスの選択肢を判断する(ステップS111)。例えば、図15に示した問合せの場合、問合せ処理装置111は、都道府県インデックスと商品インデックスとの2つの選択肢があることを判断する。ここまでの動作は第1の運用フェーズと同じである。
次に、問合せ処理装置111は、選択可能なインデックスの情報を第2のインデックス選択装置115に渡し、最適なインデックスの選択を依頼する。例えば、図15に示した問合せの場合、問合せ処理装置111は、インデックスの種別「都道府県」とその属性値「東京都」を1つの選択肢の情報として、また、インデックスの種別「商品」とその属性値「AAA」を他の1つの選択肢の情報として、第2のインデックス選択装置115に渡す。
第2のインデックス選択装置115は、受け取ったインデックスの選択肢の情報に基づいて、指標値記憶装置112から必要な指標値を取得する(ステップS112)。例えば図15に示した問合せの場合、第2のインデックス選択装置115は、インデックスの種別「都道府県」とその属性値「東京都」を有する選択肢の情報に基づいて、キー部に「都道府県−東京都」、バリュー部に「2」が設定されている図6の2行目のKVデータを取得する。また、第2のインデックス選択装置115は、インデックスの種別「商品」とその属性値「AAA」を有する選択肢の情報に基づいて、キー部に「商品−AAA」、バリュー部に「1」が設定されている図6の3行目のKVデータを取得する。
次に、第2のインデックス選択装置115は、インデックスの選択肢の全てについて指標値を取得できたか否かを判断する(ステップS113)。第2のインデックス選択装置115は、インデックスの選択肢の全てについて指標値を取得できた場合、ステップS115の処理へ進む。他方、第2のインデックス選択装置115は、インデックスの選択肢の全てについて指標値を取得できなかった場合、取得できなかった指標値の推定値を算出し(ステップS114)、そして、ステップS115へ進む。
第2のインデックス選択装置115は、ステップS115では、インデックスの選択肢について取得あるいは推定した指標値に基づいて、使用する1つのインデックスを選択し、問合せ処理装置111に通知する。具体的には、第2のインデックス選択装置115は、指標値が最小となるインデックスを選択する。例えば図15に示した問合せの場合、第2のインデックス選択装置115は、取得した2つの指標値、すなわち、都道府県インデックスの属性値「東京都」に対応する指標値2と、商品インデックスの属性値「AAA」に対応する指標値1とのうち、指標値が最小となる商品インデックスを選択する。なお、第2のインデックス選択装置115は、指標値が最小となるインデックスが複数存在する場合、その複数の中の任意の1つのインデックスを選択する。
問合せ処理装置111は、第2のインデックス選択装置115から通知されたインデックスを使用して問合せを処理し、結果をクライアント装置130に返却する(ステップS116)。例えば、問合せ処理装置111は、図15に示す問合せの場合、商品の列のインデックスを使用し、AAAの列を有する全ての行を取得し、その後、取得した行の中から、都道府県の列の値が東京都である行を取得する。
図8は、図7のステップS114の詳細を示すフローチャートである。以下、図8を参照してステップS114の詳細を説明する。
まず第2のインデックス選択装置115は、ステップS112で取得できなかったインデックスの指標値以外の指標値を指標値記憶装置112から取得する(ステップS121)。例えば、取得できなかったインデックスの指標値が、都道府県インデックスの属性値「神奈川県」に対応する指標値であるとする。また、指標値記憶装置112には、都道府県インデックスの属性値に対応する指標値として、図6に示すように「東京都」と「埼玉県」に対応する指標値が記憶されているものとする。この場合、第2のインデックス選択装置115は、取得できなかった都道府県インデックスの属性値「神奈川県」に対応する指標値以外の指標値として、「東京都」の指標値2と埼玉県の指標値「1」とを指標値記憶装置112から取得する。これは、例えば指標値記憶装置112をインデックス名「都道府県」で検索することで行うことができる。
次に第2のインデックス選択装置115は、ステップS121における処理で指標値を取得できたか否かを判断する(ステップS122)。次に第2のインデックス選択装置115は、取得できた場合(ステップS122でYES)、取得できた指標値に基づいて、ステップS112で取得できなかったインデックスの指標値を推定する(ステップS123)。例えば第2のインデックス選択装置115は、図9の式2に示すように、指標値の推定値として、同じインデックス内の他の指標値の平均値を使用する。この式2によれば、第2のインデックス選択装置115は、同じインデックス内の他の指標値として、上述した「東京都」の指標値2と埼玉県の指標値「1」が存在する場合、都道府県インデックスの属性値「神奈川県」に対応する指標値として、1.5を使用する。
また第2のインデックス選択装置115は、同じインデックス内の他の指標値を取得できなかった場合(ステップS122でNO)、ステップS121で取得できなかったインデックスの指標値の推定値として、予め設定された値を使用する(ステップS124)。
このように第2の運用フェーズでは、第1の運用フェーズの期間中に指標値記憶装置112に蓄積した指標値に基づいて、問合せを処理するためのインデックスを選択する。これによって、適切なインデックスを使用して問合せを効率良く処理することができる。
上述したように本実施の形態によれば、表構造を格納したキーバリューストア120に対して、インデックスの選択肢が複数存在する問合せがクライアント装置130から発行された場合、指標値に基づいて効率良く処理し得るインデックスを選択することで、問合せを高速に処理して結果をクライアント装置130に返却することができる。
本実施の形態は、上述した構成および動作を基本とするが、以下のように各種の付加変形が可能である。
<変形例1>
指標値記憶装置112は、指標値とその算出時刻とを記憶する構成を有していてよい。図10は、指標値とその算出時刻とを記憶する指標値記憶装置112の構成例を示す。この例では、バリュー部に、指標値とその算出時刻を記憶している。例えば、図10の2行目のKVデータは、キー部に「都道府県−東京都」が、バリュー部に「[2,20150201]」が設定されている。これは、都道府県インデックスの属性値「東京都」に対応する指標値は2であり、その算出時刻は2015年2月1日であることを表している。
指標値記憶装置112が指標値とその算出時刻とを記憶する構成を有する場合、指標値計算装置113は、図4のステップS103で算出した指標値とその算出時刻とをステップS104で指標値記憶装置112に記憶する。
<変形例2>
また、指標値記憶装置112に記憶された指標値の算出時刻に基づいて、算出時刻から一定時間が経過した指標値を更新或いは削除する以下に例示するようなメンテナンス機能を、情報処理装置110に組み込むようにしてよい。
<指標値のメンテナンス機能1>
指標値計算装置113は、第2の運用フェーズにおいて、定期的に、指標値記憶装置112に記憶された各指標値の算出時刻を確認し、一定時間以上経過していれば更新(再計算)あるいは削除する。
図11は、指標値の再計算機能を有する指標値計算装置113が、定期的に実行する処理の一例を示すフローチャートである。まず、指標値計算装置113は、指標値記憶装置112の1つの指標値に注目する(ステップS131)。次に、指標値計算装置113は、注目する1つの指標値があれば(ステップS132でNO)、注目中の指標値に設定された算出時刻を現在時刻と比較して一定期間以上経過しているか否かを判断する(ステップS133)。次に、指標値計算装置113は、一定期間以上経過していれば(ステップS133でYES)、指標値を再計算する(ステップS134)。例えば、注目中の指標値が図10の2行目の指標値の場合、問合せ処理装置111を通じて都道府県インデックスの属性値「東京都」に対応するKVペアを取得して、それに含まれるデータ識別情報の個数を算出し、この算出した個数に基づいて当該属性の値に対応する指標値を再計算する。次に、指標値計算装置113は、算出した指標値で注目中の指標値を更新する(ステップS135)。このとき、再計算した指標値の算出時刻は現在時刻に更新しておく。そして、指標値計算装置113は、ステップS136へ進む。他方、指標値計算装置113は、注目中の指標値に設定された算出時刻が一定期間以上経過していなければ(ステップS133でNO)、ステップS134、S135をスキップして、ステップS136へ進む。
指標値計算装置113は、ステップS136では、指標値記憶装置112の次の1つの指標値に注目を移し、ステップS132の処理に戻る。こうして、指標値計算装置113は、指標値記憶装置112に記憶されている全ての指標値について注目し処理を終えると、図11の処理を終了する。そして、指標値計算装置113は、その後、一定期間が経過すると、再び図11の処理を実行する。
このように指標値計算装置113は、指標値記憶装置112に記憶された指標値のうち、一定期間以上経過した指標値を再計算する。そのため、キーバリューストア120のデータ部121に新規データの追加や更新が実施され、それに応じてインデックス122が更新された場合に、最新のインデックス122の内容を反映した指標値を指標値記憶装置112に記憶させることができる。
図11では、指標値計算装置113は、一定期間以上経過した指標値を再計算するようにしたが、一定期間以上経過した指標値を指標値記憶装置112から削除するようにしてもよい。
<指標値のメンテナンス機能2>
第2のインデックス選択装置115は、図7のステップS112において、指標値記憶装置112から指標値を取得した際、取得した指標値の算出時刻を確認し、一定時間以上経過していれば、当該指標値を指標値記憶装置112から削除する。
あるいは第2のインデックス選択装置115は、図7のステップS112において、指標値記憶装置112から指標値を取得した際、取得した指標値の算出時刻を確認し、一定時間以上経過していれば、当該指標値の情報を指標値計算装置113に通知して、再計算を依頼する。指標値計算装置113は、依頼を受けると、図11のステップS134、S135と同様の処理を実行することにより、指標値を再計算し、再計算した指標値で指標値記憶装置112の古い指標値を更新する。
また、指標値記憶装置112は、上述したように、指標値とその算出時刻とを記憶する構成を有し、データ部121のKVペアに更新時刻を記憶する構成を有していてよい。図12は、KVペアに更新時刻を記憶するデータ部121の構成例を示す。この例では、バリュー部に、属性値のセットと更新時刻を記憶している。例えば、図12の2行目のKVペアは、更新時刻が20150205であることが記憶されている。
指標値記憶装置112が指標値とその算出時刻とを記憶し、データ部121のKVペアに更新時刻を記憶する構成を有する場合、指標値を更新或いは削除する以下に例示するような仕組みを、情報処理装置110に組み込むようにしてよい。
<指標値のメンテナンス機能3>
指標値計算装置113は、第2の運用フェーズにおいて、定期的に、指標値記憶装置112に記憶された指標値ごとに、その指標値を算出するために参照したインデックス122のバリュー部の値を取得し、この取得した値から辿れるデータ部121のKVペア毎に、その更新時刻と当該指標値の算出時刻とを比較し、指標値の算出時刻より後に更新されたデータ部121のKVペアの数あるいは割合が予め設定した閾値を超える場合、当該指標値を再計算あるいは削除する。
図13は、指標値の再計算機能を有する指標値計算装置113が、定期的に実行する処理の一例を示すフローチャートである。まず、指標値計算装置113は、指標値記憶装置112の1つの指標値に注目する(ステップS141)。次に、指標値計算装置113は、注目する1つの指標値があれば(ステップS142でNO)、注目中の指標値を算出するための参照したインデックスを取得する(ステップS143)。例えば、図10の2行目の都道府県インデックスの属性値「東京都」に対応する指標値の場合、図2(B)の3行目のインデックスを取得する。次に、指標値計算装置113は、取得したインデックスから辿れるデータ部のKVペアごとに、その更新時刻と注目中の指標値の算出時刻とを比較する(ステップS144)。例えば図2(B)の3行目のインデックスから辿れるデータ部のKVペアは、図12の2行目と4行目のKVペアであるため、2行目のKVペアの更新時刻20150205と注目中の指標値の算出時刻20150201とを比較し、また、4行目のKVペアの更新時刻20150107と注目中の指標値の算出時刻20150201とを比較する。
次に、指標値計算装置113は、注目中の指標値の算出時刻の後に更新されたKVペアの数あるいは割合を算出し、それが閾値以上か否かを判定する(ステップS145)。次に、指標値計算装置113は、上記数あるいは割合が閾値以上であれば(ステップS145でYES)、指標値を再計算する(ステップS146)。例えば、注目中の指標値が図10の2行目の指標値の場合、問合せ処理装置111を通じて都道府県インデックスの属性値「東京都」に対応するKVペアを取得して、それに含まれるデータ識別情報の個数を算出し、この算出した個数に基づいて当該属性の値に対応する指標値を再計算する。次に、指標値計算装置113は、算出した指標値で注目中の指標値を更新する(ステップS147)。このとき、再計算した指標値の算出時刻は現在時刻に更新しておく。そして、指標値計算装置113は、ステップS148へ進む。他方、指標値計算装置113は、注目中の指標値の算出時刻の後に更新されたKVペアの数あるいは割合が閾値未満であれば(ステップS145でNO)、ステップS146、S147をスキップして、ステップS148へ進む。
指標値計算装置113は、ステップS148では、指標値記憶装置112の次の1つの指標値に注目を移し、ステップS142の処理に戻る。こうして、指標値計算装置113は、指標値記憶装置112に記憶されている全ての指標値について注目し処理を終えると、図13の処理を終了する。そして、指標値計算装置113は、その後、一定期間が経過すると、再び図13の処理を実行する。
このように指標値計算装置113は、指標値記憶装置112に記憶された指標値のうち、その指標値の算出時刻より後に更新されたデータ部のKVペアの数あるいは割合が閾値以上である指標値を再計算する。そのため、キーバリューストア120のデータ部121に新規データの追加や更新が実施され、それに応じてインデックス122が更新された場合に、最新のインデックス122の内容を反映した指標値を指標値記憶装置112に記憶させることができる。
図13では、指標値計算装置113は、指標値の算出時刻より後に更新されたデータ部のKVペアの数あるいは割合が閾値以上である指標値を再計算するようにしたが、そのような指標値を指標値記憶装置112から削除するようにしてもよい。
<指標値のメンテナンス機能4>
第2のインデックス選択装置115は、図7のステップS112において、指標値記憶装置112から指標値を取得した際、取得した指標値の算出時刻より後に更新されたデータ部のKVペアの数あるいは割合が閾値以上である指標値を指標値記憶装置112から削除する。
あるいは第2のインデックス選択装置115は、図7のステップS112において、指標値記憶装置112から指標値を取得した際、取得した指標値の算出時刻より後に更新されたデータ部のKVペアの数あるいは割合が閾値以上である指標値の情報を指標値計算装置113に通知して、再計算を依頼する。指標値計算装置113は、依頼を受けると、図13のステップS146、S147と同様の処理を実行することにより、指標値を再計算し、再計算した指標値で指標値記憶装置112の古い指標値を更新する。
<変形例3>
指標値計算装置113は、図4のステップS103において、特定の条件が成立すれば、指標値の計算を省略するようにしてもよい。例えば、指標値計算装置113は、ステップS102で取得したインデックスがNULL値などの特定の値であれば、指標値の計算を省略する。これは、多くの場合、NULLは全体のデータ分布のなかで特異な傾向(圧倒的に多かったり或いは少なかったり)を示すので、コスト算出の際に考慮に入れる必要がないことがあるためである。
<変形例4>
第2のインデックス選択装置115は、図8のステップS123の或る指標値の算出では、図9の式(2)に示すような当該指標値以外の他の指標値の全体平均による算出方法でなく、別の方法を使って当該指標値の推定値を算出してもよい。
例えば、第2のインデックス選択装置115は、同じインデックス内の他の指標値のうち、算出時刻が新しい上位n件の平均値(nは予め設定された自然数)あるいは最大値を、当該指標値の推定値としてもよい。
あるいは、第2のインデックス選択装置115は、ランダム値を、当該指標値の推定値としてもよい。ランダム値を指標値の推定値とすることにより、特定のインデックスが集中して使われ、負荷が偏ってしまうことによる性能の低下を引き起こさないようにすることができる。
<変形例5>
第2のインデックス選択装置115は、図7のステップS113において、取得できない指標値が存在すると判断した場合、ステップS114において、取得できなかった指標値について指標値を推定すると共に、当該問合せを第1の運用フェーズ(情報収集フェーズ)で処理するための問合せとして情報処理装置110のメモリに保存しておいてもよい。
情報処理装置110の問合せ処理装置111は、夜間などシステムの負荷が低いときに、第2の運用フェーズから第1の運用フェーズに自動的にシステムを切り替え、第1の運用フェーズで処理するために保存されている問合せを実行する。これにより、図7のステップS113において取得できなかった指標値が当該問合せの実行により指標値計算装置113で算出されて指標値記憶装置112に記憶される(図4のステップS103、S104)。そのため、以降の第2の運用フェーズにおける同様な問合せでは指標値が確実に得られるようになる。
なお、同じ問合せが2度実行され、クライアント装置130に結果が2度返却されることを避けるために、上記保存した問合せの実行により得られた結果はクライアント装置130へ通知しないようにしてよい。或いは、上記問合せを第1の運用フェーズで処理するための問合せとして保存する場合、第2の運用フェーズでは上記保存した問合せの実行により得られた結果はクライアント装置130へ通知しないようにしてよい。
[第2の実施形態]
次に、本発明の第2の実施形態について説明する。本実施形態では、本発明の概要を説明する。
図14を参照すると、本発明の第2の実施形態に係るデータベースシステム200は、情報処理装置210と記憶装置220とから構成される。
記憶装置220は、データ部221と複数のインデックス222とを有する。データ部221は、複数の属性の値のセットと、それら複数の属性の値のうちの特定の一つからなるデータ識別情報とを、一対のデータとして記憶する。インデックス222は、上記特定の一つ以外の複数の属性のそれぞれに対応して存在する。或るインデックス222は、或る属性の値を上記セットに含む一対のデータの上記データ識別情報を記憶する。
情報処理装置210は、図示しないクライアント装置からデータベースシステムに対して発行された問合せを入力し、その問合せを処理し、その問合せの結果を出力する装置である。情報処理装置210は、指標値算出手段211とインデックス選択手段212とを有する。
指標値算出手段211は、問合せで指定された検索対象となる属性の値ごとに、その属性に対応するインデックス222に記憶された上記データ識別情報の個数を算出し、その個数に基づいて当該属性の値に対応する指標値を算出するように構成されている。
また指標値算出手段212は、指標値算出手段211が算出した指標値に基づいて、上記問合せの処理に使用するインデックス222を選択するように構成されている。
このように構成された本実施形態に係るデータベースシステム200は、以下のようにして問合せを処理する。
情報処理装置210は、図示しないクライアント装置からデータベースシステムに対する問合せを入力すると、指標値算出手段211が、問合せで指定された検索対象となる属性の値ごとに、属性に対応するインデックスに記憶されたデータ識別情報の個数を算出し、その個数に基づいて属性の値に対応する指標値を算出する。例えば、図15に示すような問合せの場合、検索対象となる属性の値は、属性「都道府県」の値「東京都」と、属性「商品」の値「AAA」である。そのため、指標値算出手段211は、属性「都道府県」の値「東京都」に対応するインデックス222に記憶されたデータ識別情報の個数を算出し、その個数に基づいて、属性「都道府県」の値「東京都」に対応する指標値を算出する。また、指標値算出手段211は、属性「商品」の値「AAA」に対応するインデックス222に記憶されたデータ識別情報の個数を算出し、その個数に基づいて、属性「商品」の値「AAA」に対応する指標値を算出する。
次に、インデックス選択手段212が、指標値算出手段211によって算出された指標値に基づいて、問合せの処理に使用するインデックスを選択する。例えば、図15に示した上記の例の場合、インデックス選択手段212は、属性「都道府県」の値「東京都」に対応する指標値と、属性「商品」の値「AAA」に対応する指標値とに基づいて、都道府県インデックスと商品インデックスの何れを使用するかを決定する。
次に、情報処理装置210は、インデックス選択手段212で選択されたインデックスを使用して問合せを処理し、問合せの結果を図示しないクライアント装置へ出力する。
このように本実施形態によれば、適切なインデックスを使用して問合せを効率良く処理することができ、また、事前にインデックス選択の判断材料となる統計情報を収集しておく必要がない。
その理由は、問合せで指定された検索対象となる属性の値ごとに、その属性に対応するインデックス222に記憶されたデータ識別情報の個数を算出し、その個数に基づいて当該属性の値に対応する指標値を算出する指標値算出手段211と、この指標値算出手段211が算出した指標値に基づいて、上記問合せの処理に使用するインデックス222を選択する指標値算出手段212とを有するためである。
以上、本発明の実施形態について説明したが、本発明は以上の実施形態にのみ限定されず、本発明の範囲内で各種の付加変更が可能である。
本発明は、データベースに対する問合せの処理に利用でき、特にスケーラビリティとRDBのデータモデルを両立させるためにKVSにリレーショナルデータを格納し、インデックスを定義した構成を採るデータベースシステムにおいて、問合せを高速に処理するのに利用できる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
データベースシステムであって、
複数の属性の値のセットと、前記複数の属性の値のうちの特定の一つからなるデータ識別情報とを、一対のデータとして記憶するデータ部と、前記特定の一つ以外の複数の前記属性のそれぞれに対応して、前記属性の値を前記セットに含む前記一対のデータの前記データ識別情報を記憶する複数のインデックスと、を記憶する記憶装置と、
前記記憶装置に対して発行された問合せを入力し、前記問合せの結果を出力する情報処理装置と、を備え、
前記情報処理装置は、
前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性の値に対応する前記インデックスに記憶された前記データ識別情報の個数を算出し、前記個数に基づいて前記属性の値に対応する指標値を算出する指標値算出手段と、
前記指標値に基づいて、前記問合せの処理に使用する前記インデックスを選択する第1のインデックス選択手段と、を有する、
データベースシステム。
[付記2]
前記情報処理装置は、
前記算出された前記指標値を前記属性の値に対応付けて記憶する指標値記憶手段を有する、
付記1に記載のデータベースシステム。
[付記3]
前記情報処理装置は、
前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性の値に対応する前記指標値を前記指標値記憶手段から取得し、該取得した前記指標値に基づいて、前記問合せの処理に使用する前記インデックスを選択する第2のインデックス選択手段を有し、
前記情報処理装置は、前記指標値算出手段と前記指標値記憶手段と前記第1のインデックス選択手段とを使用して前記問合せを処理する第1の運用フェーズから、前記指標値記憶手段と前記第2のインデックス選択手段とを使用して前記問合せを処理する第2の運用フェーズへ切り替え可能に構成されている、
付記2に記載のデータベースシステム。
[付記4]
前記第2のインデックス選択手段は、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値を前記指標値記憶手段から取得できない場合、前記属性の値以外の前記属性の値に対応する前記指標値を前記指標値記憶手段から取得し、該取得した前記指標値に基づいて、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値の推定値を算出する、
付記3に記載のデータベースシステム。
[付記5]
前記第2のインデックス選択手段は、前記属性の値以外の前記属性の値に対応する前記指標値を前記指標値記憶手段から取得できない場合、予め定められた初期値を、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値の推定値とする、
付記4に記載のデータベースシステム。
[付記6]
前記指標値記憶手段は、前記指標値を前記指標値の算出時刻に対応付けて記憶する、
付記2乃至5の何れかに記載のデータベースシステム。
[付記7]
前記指標値算出手段は、前記指標値記憶手段に記憶された前記算出時刻に基づいて、一定時間以上経過した前記指標値を再計算あるいは無効にする、
付記6に記載のデータベースシステム。
[付記8]
前記指標値記憶手段は、前記指標値を前記指標値の算出時刻に対応付けて記憶し、
前記第2のインデックス選択手段は、前記属性の値に対応する前記指標値を前記指標値記憶手段から取得したときに前記算出時刻に基づいて、一定時間以上経過した前記指標値を再計算あるいは無効にする、
付記3乃至5の何れかに記載のデータベースシステム。
[付記9]
前記指標値算出手段は、前記属性に対応する前記インデックスに記憶された前記データ識別情報の個数が特定の値の場合、前記指標値を算出しない、
付記1乃至8の何れかに記載のデータベースシステム。
[付記10]
前記指標値記憶手段は、前記指標値を前記指標値の算出時刻に対応付けて記憶し、
前記第2のインデックス選択手段は、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値を前記指標値記憶手段から取得できない場合、前記属性の値以外の前記属性の値に対応する前記算出時刻が新しい上位所定個数の前記指標値を前記指標値記憶手段から取得し、該取得した前記指標値に基づいて、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値の推定値を計算する、
付記3に記載のデータベースシステム。
[付記11]
前記第2のインデックス選択手段は、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値を前記指標値記憶手段から取得できない場合、取得できなかった前記指標値の推定値としてランダム値を使用する、
付記3に記載のデータベースシステム。
[付記12]
前記第2のインデックス選択手段は、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値を前記指標値記憶手段から取得できない場合、前記問合せを保存し、
前記指標値算出手段は、保存された前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性の値に対応する前記インデックスに記憶された前記データ識別情報の個数を算出し、前記個数に基づいて前記属性の値に対応する指標値を算出して前記指標値記憶手段に記憶する、
付記3に記載のデータベースシステム。
[付記13]
前記データ記憶部は、キーバリューストアである、
付記1乃至12の何れかに記載のデータベースシステム。
[付記14]
前記データ記憶部は、分散キーバリューストアである、
付記1乃至12の何れかに記載のデータベースシステム。
[付記15]
複数の属性の値のセットと、前記複数の属性の値のうちの特定の一つからなるデータ識別情報とを、一対のデータとして記憶するデータ部と、前記特定の一つ以外の複数の前記属性のそれぞれに対応して、前記属性の値を前記セットに含む前記一対のデータの前記データ識別情報を記憶する複数のインデックスと、を記憶するように構成された、記憶装置に対して発行された問合せを入力し、前記問合せの結果を出力する情報処理装置であって、
前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性の値に対応する前記インデックスに記憶された前記データ識別情報の個数を算出し、前記個数に基づいて前記属性の値に対応する指標値を算出する指標値算出手段と、
前記指標値に基づいて、前記問合せの処理に使用する前記インデックスを選択する第1のインデックス選択手段と、を有する、
情報処理装置。
[付記16]
前記算出された前記指標値を前記属性の値に対応付けて記憶する指標値記憶手段を有する、
付記15に記載の情報処理装置。
[付記17]
前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性の値に対応する前記指標値を前記指標値記憶手段から取得し、該取得した前記指標値に基づいて、前記問合せの処理に使用する前記インデックスを選択する第2のインデックス選択手段、を有し、
前記指標値算出手段と前記指標値記憶手段と前記第1のインデックス選択手段とを使用して前記問合せを処理する第1の運用フェーズから、前記指標値記憶手段と前記第2のインデックス選択手段とを使用して前記問合せを処理する第2の運用フェーズへ切り替え可能に構成されている、
付記16に記載の情報処理装置。
[付記18]
前記第2のインデックス選択手段は、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値を前記指標値記憶手段から取得できない場合、前記属性の値以外の前記属性の値に対応する前記指標値を前記指標値記憶手段から取得し、該取得した前記指標値に基づいて、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値の推定値を計算する、
付記17に記載の情報処理装置。
[付記19]
前記第2のインデックス選択手段は、前記属性の値以外の前記属性の値に対応する前記指標値を前記指標値記憶手段から取得できない場合、予め定められた初期値を、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値の推定値とする、
付記18に記載の情報処理装置。
[付記20]
前記指標値記憶手段は、前記指標値を前記指標値の算出時刻に対応付けて記憶する、
付記16乃至19の何れかに記載の情報処理装置。
[付記21]
前記指標値算出手段は、前記指標値記憶手段に記憶された前記算出時刻に基づいて、一定時間以上経過した前記指標値を再計算あるいは無効にする、
付記20に記載の情報処理装置。
[付記22]
前記指標値記憶手段は、前記指標値を前記指標値の算出時刻に対応付けて記憶し、
前記第2のインデックス選択手段は、前記属性の値に対応する前記指標値を前記指標値記憶手段から取得したときに前記算出時刻に基づいて、一定時間以上経過した前記指標値を再計算あるいは無効にする、
付記17乃至19の何れかに記載の情報処理装置。
[付記23]
前記指標値算出手段は、前記属性に対応する前記インデックスに記憶された前記データ識別情報の個数が特定の値の場合、前記指標値を算出しない、
付記15乃至22の何れかに記載の情報処理装置。
[付記24]
前記指標値記憶手段は、前記指標値を前記指標値の算出時刻に対応付けて記憶し、
前記第2のインデックス選択手段は、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値を前記指標値記憶手段から取得できない場合、前記属性の値以外の前記属性の値に対応する前記算出時刻が新しい上位所定個数の前記指標値を前記指標値記憶手段から取得し、該取得した前記指標値に基づいて、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値の推定値を計算する、
付記17に記載の情報処理装置。
[付記25]
前記第2のインデックス選択手段は、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値を前記指標値記憶手段から取得できない場合、取得できなかった前記指標値の推定値としてランダム値を使用する、
付記17に記載の情報処理装置。
[付記26]
前記第2のインデックス選択手段は、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値を前記指標値記憶手段から取得できない場合、前記問合せを保存し、
前記指標値算出手段は、保存された前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性に対応する前記インデックスに記憶された前記データ識別情報の個数を算出し、前記個数に基づいて前記属性の値に対応する指標値を算出して前記指標値記憶手段に記憶する、
付記17に記載の情報処理装置。
[付記27]
前記データ記憶部は、キーバリューストアである、
付記15乃至26の何れかに記載の情報処理装置。
[付記28]
前記データ記憶部は、分散キーバリューストアである、
付記15至26の何れかに記載の情報処理装置。
[付記29]
複数の属性の値のセットと、前記複数の属性の値のうちの特定の一つからなるデータ識別情報とを、一対のデータとして記憶するデータ部と、前記特定の一つ以外の複数の前記属性のそれぞれに対応して、前記属性の値を前記セットに含む前記一対のデータの前記データ識別情報を記憶する複数のインデックスと、を記憶するように構成された、記憶装置に対して発行された問合せを入力し、前記問合せの結果を出力する情報処理装置が実行する問合せ処理方法であって、
前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性の値に対応する前記インデックスに記憶された前記データ識別情報の個数を算出し、前記個数に基づいて前記属性の値に対応する指標値を算出し、
前記指標値に基づいて、前記問合せの処理に使用する前記インデックスを選択する、
問合せ処理方法。
[付記30]
前記算出された前記指標値を前記属性の値に対応付けて指標値記憶手段に記憶する、
付記29に記載の問合せ処理方法。
[付記31]
前記指標値の算出と前記インデックスの選択と前記指標値の記憶とを含む第1の問合せ処理方法を使用して前記問合せを処理する第1の運用フェーズから、
前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性の値に対応する前記指標値を前記指標値記憶手段から取得し、該取得した前記指標値に基づいて、前記問合せの処理に使用する前記インデックスを選択する第2の問合せ処理方法を使用して前記問合せを処理する第2の運用フェーズへ切り替える、
付記30に記載の問合せ処理方法。
[付記32]
前記第2の運用フェーズにおいて、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値を前記指標値記憶手段から取得できない場合、前記属性の値以外の前記属性の値に対応する前記指標値を前記指標値記憶手段から取得し、該取得した前記指標値に基づいて、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値の推定値を計算する、
付記31に記載の問合せ処理方法。
[付記33]
前記第2の運用フェーズにおいて、前記属性の値以外の前記属性の値に対応する前記指標値を前記指標値記憶手段から取得できない場合、予め定められた初期値を、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値の推定値とする、
付記32に記載の問合せ処理方法。
[付記34]
前記指標値を前記指標値の算出時刻に対応付けて前記指標値記憶手段に記憶する、
付記30乃至33の何れかに記載の問合せ処理方法。
[付記35]
前記第2の運用フェーズにおいて、前記指標値記憶手段に記憶された前記算出時刻に基づいて、一定時間以上経過した前記指標値を再計算あるいは無効にする、
付記34に記載の問合せ処理方法。
[付記36]
前記指標値を前記指標値の算出時刻に対応付けて前記指標値記憶手段に記憶し、
前記第2の運用フェーズにおいて、前記属性の値に対応する前記指標値を前記指標値記憶手段から取得したときに前記算出時刻に基づいて、一定時間以上経過した前記指標値を再計算あるいは無効にする、
付記31乃至33の何れかに記載の問合せ処理方法。
[付記37]
前記第1の運用フェーズにおいて、前記属性に対応する前記インデックスに記憶された前記データ識別情報の個数が特定の値の場合、前記指標値を算出しない、
付記29乃至36の何れかに記載の問合せ処理方法。
[付記38]
前記指標値を前記指標値の算出時刻に対応付けて前記指標値記憶手段に記憶し、
前記第2の運用フェーズにおいて、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値を前記指標値記憶手段から取得できない場合、前記属性の値以外の前記属性の値に対応する前記算出時刻が新しい上位所定個数の前記指標値を前記指標値記憶手段から取得し、該取得した前記指標値に基づいて、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値の推定値を計算する、
付記31に記載の問合せ処理方法。
[付記39]
前記第2の運用フェーズにおいて、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値を前記指標値記憶手段から取得できない場合、取得できなかった前記指標値の推定値としてランダム値を使用する、
付記31に記載の問合せ処理方法。
[付記40]
前記第2の運用フェーズにおいて、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値を前記指標値記憶手段から取得できない場合、前記問合せを保存し、
前記第2の運用フェーズから前記第1の運用フェーズへ切り替え、
前記第1の運用フェーズにおいて、保存された前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性に対応する前記インデックスに記憶された前記データ識別情報の個数を算出し、前記個数に基づいて前記属性の値に対応する指標値を算出して前記指標値記憶手段に記憶する、
付記31に記載の問合せ処理方法。
[付記41]
前記データ記憶部は、キーバリューストアである、
付記29乃至40の何れかに記載の問合せ処理方法。
[付記42]
前記データ記憶部は、分散キーバリューストアである、
付記29乃至40の何れかに記載の問合せ処理方法。
[付記43]
複数の属性の値のセットと、前記複数の属性の値のうちの特定の一つからなるデータ識別情報とを、一対のデータとして記憶するデータ部と、前記特定の一つ以外の複数の前記属性のそれぞれに対応して、前記属性の値を前記セットに含む前記一対のデータの前記データ識別情報を記憶する複数のインデックスと、を記憶するように構成された、記憶装置に対して発行された問合せを入力し、前記問合せの結果を出力するコンピュータを、
前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性の値に対応する前記インデックスに記憶された前記データ識別情報の個数を算出し、前記個数に基づいて前記属性の値に対応する指標値を算出する指標値算出手段と、
前記指標値に基づいて、前記問合せの処理に使用する前記インデックスを選択する第1のインデックス選択手段と、
して機能させるためのプログラム。
100…データベースシステム
110…情報処理装置
111…問合せ処理装置
112…指標値記憶装置
113…指標値計算装置
114…第1のインデックス選択装置
115…第2のインデックス選択装置
120…キーバリューストア
121…データ部
122…インデックス
130…クライアント装置1
140…情報処理装置
141…演算処理部
142…記憶部
143…通信部
144…プログラム
200…データベースシステム
210…情報処理装置
211…指標値算手段
212…インデックス選択手段
220…記憶装置
221…データ部
222…インデックス

Claims (10)

  1. 複数の属性の値のセットと、前記複数の属性の値のうちの特定の一つからなるデータ識別情報とを、一対のデータとして記憶するデータ部と、前記特定の一つ以外の複数の前記属性のそれぞれに対応して、前記属性の値を前記セットに含む前記一対のデータの前記データ識別情報を記憶する複数のインデックスと、を記憶するように構成された、記憶装置に対して発行された問合せを入力し、前記問合せの結果を出力する情報処理装置であって、
    前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性の値に対応する前記インデックスに記憶された前記データ識別情報の個数を算出し、前記個数に基づいて前記属性の値に対応する指標値を算出する指標値算出手段と、
    前記指標値に基づいて、前記問合せの処理に使用する前記インデックスを選択する第1のインデックス選択手段と、を有する、
    情報処理装置。
  2. 前記算出された前記指標値を前記属性の値に対応付けて記憶する指標値記憶手段を有する、
    請求項1に記載の情報処理装置。
  3. 前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性の値に対応する前記指標値を前記指標値記憶手段から取得し、該取得した前記指標値に基づいて、前記問合せの処理に使用する前記インデックスを選択する第2のインデックス選択手段、を有し、
    前記指標値算出手段と前記指標値記憶手段と前記第1のインデックス選択手段とを使用して前記問合せを処理する第1の運用フェーズから、前記指標値記憶手段と前記第2のインデックス選択手段とを使用して前記問合せを処理する第2の運用フェーズへ切り替え可能に構成されている、
    請求項2に記載の情報処理装置。
  4. 前記第2のインデックス選択手段は、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値を前記指標値記憶手段から取得できない場合、前記属性の値以外の前記属性の値に対応する前記指標値を前記指標値記憶手段から取得し、該取得した前記指標値に基づいて、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値の推定値を計算する、
    請求項3に記載の情報処理装置。
  5. 前記第2のインデックス選択手段は、前記属性の値以外の前記属性の値に対応する前記指標値を前記指標値記憶手段から取得できない場合、予め定められた初期値を、前記問合せで指定された検索対象となる前記属性の値に対応する前記指標値の推定値とする、
    請求項4に記載の情報処理装置。
  6. 前記指標値記憶手段は、前記指標値を前記指標値の算出時刻に対応付けて記憶し、
    前記指標値算出手段は、前記第2の運用フェーズにおいて、前記指標値記憶手段に記憶された前記算出時刻に基づいて、一定時間以上経過した前記指標値を再計算あるいは無効にする、
    請求項3乃至5の何れかに記載の情報処理装置。
  7. 前記指標値記憶手段は、前記指標値を前記指標値の算出時刻に対応付けて記憶し、
    前記第2のインデックス選択手段は、前記第2の運用フェーズにおいて、前記属性の値に対応する前記指標値を前記指標値記憶手段から取得したときに前記算出時刻に基づいて、一定時間以上経過した前記指標値を再計算あるいは無効にする、
    請求項3乃至5の何れかに記載の情報処理装置。
  8. 複数の属性の値のセットと、前記複数の属性の値のうちの特定の一つからなるデータ識別情報とを、一対のデータとして記憶するデータ部と、前記特定の一つ以外の複数の前記属性のそれぞれに対応して、前記属性の値を前記セットに含む前記一対のデータの前記データ識別情報を記憶する複数のインデックスと、を記憶するように構成された、記憶装置に対して発行された問合せを入力し、前記問合せの結果を出力する情報処理装置が実行する問合せ処理方法であって、
    前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性の値に対応する前記インデックスに記憶された前記データ識別情報の個数を算出し、前記個数に基づいて前記属性の値に対応する指標値を算出し、
    前記指標値に基づいて、前記問合せの処理に使用する前記インデックスを選択する、
    問合せ処理方法。
  9. 複数の属性の値のセットと、前記複数の属性の値のうちの特定の一つからなるデータ識別情報とを、一対のデータとして記憶するデータ部と、前記特定の一つ以外の複数の前記属性のそれぞれに対応して、前記属性の値を前記セットに含む前記一対のデータの前記データ識別情報を記憶する複数のインデックスと、を記憶するように構成された、記憶装置に対して発行された問合せを入力し、前記問合せの結果を出力するコンピュータを、
    前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性の値に対応する前記インデックスに記憶された前記データ識別情報の個数を算出し、前記個数に基づいて前記属性の値に対応する指標値を算出する指標値算出手段と、
    前記指標値に基づいて、前記問合せの処理に使用する前記インデックスを選択する第1のインデックス選択手段と、
    して機能させるためのプログラム。
  10. データベースシステムであって、
    複数の属性の値のセットと、前記複数の属性の値のうちの特定の一つからなるデータ識別情報とを、一対のデータとして記憶するデータ部と、前記特定の一つ以外の複数の前記属性のそれぞれに対応して、前記属性の値を前記セットに含む前記一対のデータの前記データ識別情報を記憶する複数のインデックスと、を記憶する記憶装置と、
    前記記憶装置に対して発行された問合せを入力し、前記問合せの結果を出力する情報処理装置と、を備え、
    前記情報処理装置は、
    前記問合せで指定された検索対象となる前記属性の値ごとに、前記属性の値に対応する前記インデックスに記憶された前記データ識別情報の個数を算出し、前記個数に基づいて前記属性の値に対応する指標値を算出する指標値算出手段と、
    前記指標値に基づいて、前記問合せの処理に使用する前記インデックスを選択する第1のインデックス選択手段と、を有する、
    データベースシステム。
JP2016023895A 2016-02-10 2016-02-10 データベースシステム Pending JP2017142672A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016023895A JP2017142672A (ja) 2016-02-10 2016-02-10 データベースシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016023895A JP2017142672A (ja) 2016-02-10 2016-02-10 データベースシステム

Publications (1)

Publication Number Publication Date
JP2017142672A true JP2017142672A (ja) 2017-08-17

Family

ID=59627933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016023895A Pending JP2017142672A (ja) 2016-02-10 2016-02-10 データベースシステム

Country Status (1)

Country Link
JP (1) JP2017142672A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102271486B1 (ko) * 2020-10-13 2021-07-02 (주)소만사 데이터베이스에 저장된 개인정보의 보유현황 관리방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102271486B1 (ko) * 2020-10-13 2021-07-02 (주)소만사 데이터베이스에 저장된 개인정보의 보유현황 관리방법 및 장치

Similar Documents

Publication Publication Date Title
JP6870071B2 (ja) テーブルのインクリメンタルクラスタリング保守
US20190303382A1 (en) Distributed database systems and methods with pluggable storage engines
US11461286B2 (en) Fair sampling in a hierarchical filesystem
JP6103037B2 (ja) 計算機システム
JP6281225B2 (ja) 情報処理装置
US8527556B2 (en) Systems and methods to update a content store associated with a search index
US20180293251A1 (en) Method for storing a dataset
Kyrola Drunkardmob: billions of random walks on just a pc
JP2005157933A (ja) ストレージネットワークの性能情報を収集する方法およびプログラム
EP3499388B1 (en) Method and device for processing join query
US10095737B2 (en) Information storage system
Khemmarat et al. Fast top-k path-based relevance query on massive graphs
JP6654654B2 (ja) クエリ生成支援方法及びクエリ生成支援装置
Ying et al. Pensieve: Skewness-aware version switching for efficient graph processing
JP2017142672A (ja) データベースシステム
Firth et al. TAPER: query-aware, partition-enhancement for large, heterogenous graphs
KR101693108B1 (ko) 읽기 성능 개선을 위한 티-트리 인덱스를 이용한 데이터베이스 읽기 방법 및 그 장치
Yang et al. Querying a collection of continuous functions
CN112328587A (zh) ElasticSearch的数据处理方法和装置
KR100496159B1 (ko) 유용성 기반의 질의 결과 캐쉬 관리 방법
JP2018081603A (ja) Kvデータ構造変換装置、kvデータ構造変換方法、および、kvデータ構造変換プログラム
JP6193491B2 (ja) 計算機システム
WO2017017748A1 (ja) 計算機システム及びサンプリング方法
JP6221593B2 (ja) データ管理方法、データ管理プログラム及びデータ管理装置
JP2018041174A (ja) データベース管理装置、データベース管理方法、及びプログラム