JP6683200B2 - 情報処理装置、情報処理方法および情報処理プログラムを記憶する記録媒体 - Google Patents
情報処理装置、情報処理方法および情報処理プログラムを記憶する記録媒体 Download PDFInfo
- Publication number
- JP6683200B2 JP6683200B2 JP2017516551A JP2017516551A JP6683200B2 JP 6683200 B2 JP6683200 B2 JP 6683200B2 JP 2017516551 A JP2017516551 A JP 2017516551A JP 2017516551 A JP2017516551 A JP 2017516551A JP 6683200 B2 JP6683200 B2 JP 6683200B2
- Authority
- JP
- Japan
- Prior art keywords
- subset
- information processing
- data
- access frequency
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
データの集合へのアクセス頻度を記憶して管理するアクセス頻度管理手段と、
前記アクセス頻度が第1所定値以上の前記集合を少なくとも2つの部分集合に分割する分割手段と、
分割された前記部分集合ごとに統計値を算出する算出手段と、を備えた。
データの集合へのアクセス頻度を記憶して管理するアクセス頻度管理ステップと、
前記アクセス頻度が第1所定値以上の前記集合を少なくとも2つの部分集合に分割する分割ステップと、
分割された前記部分集合ごとに統計値を算出する算出ステップと、を含む。
データの集合へのアクセス頻度を記憶して管理するアクセス頻度管理ステップと、
前記アクセス頻度が第1所定値以上の前記集合を少なくとも2つの部分集合に分割する分割ステップと、
分割された前記部分集合ごとに統計値を算出する算出ステップと、をコンピュータに実行させる情報処理プログラムを記憶する。
本発明の第1実施形態としての情報処理装置100について、図1を用いて説明する。
情報処理装置100は、アクセス頻度管理部101と分割部102と統計値算出部103とを含む。
次に本発明の第2実施形態に係る情報処理装置について、図2A〜図8Bを参照して説明する。なお、全ての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
関係データベースシステム(Relational DataBase Management System)は、関係モデルにもとづく表形式のデータ(以下テーブル)を保持し、ユーザにデータの効率的な検索と更新とを提供する。テーブル内の行はレコードと呼ばれ、ひとつのデータを表わす。データはいくつかの属性を持つことができ、テーブル内の列が各属性に対応する。そのテーブルに含まれる列の<列名、データ型>一覧を、そのテーブルのスキーマと呼ぶ。
本実施形態では、データの集合を分割し、分割した部分集合ごとに統計値を算出しておき、問合せがあった際に統計値を用いて計算することにより計算速度を高速化している。
また、本実施形態では、分割する際に部分集約木構造を用いている。
図3は、本実施形態に係る情報処理装置の機能構成を説明するためのブロック図である。図3において、各ブロックは、ハードウェア単位の構成ではなく、機能単位の構成を表している。
データ入力部301は、情報処理装置300の処理対象となるデータを入力する。データ形式の例は、関係データベースシステムにおけるテーブルデータである。テーブルデータは表形式のデータであり、表の行はひとつのレコード(例:職員の情報)、表の各列はレコードの属性値(例:職員の年齢、身長、性別など)となる。
ファイル操作部302は、ファイルの生成処理とファイルの読み込み処理をおこなう。
ファイルの生成処理は、データ入力部301から入力されたデータを主記憶装置や二次記憶装置などの記憶装置に記憶するためにファイル化し、ファイル保持部303へ保持する処理である。ファイル操作部302は、ファイルの読み込み処理において、問合せ実行部307から、データが保持されているファイル名、読み込みを開始するオフセット値、そして読み込むデータのサイズを受け取る。さらに、ファイル操作部302は、ファイル読み込み処理において、対応するデータをファイル保持部303から取得して、問合せ実行部307へ返却する。
ファイル保持部303は、ファイル操作部302の生成したファイルを記憶装置に保持する。記憶装置は主記憶装置であってもよいし、二次記憶装置であってもよい。
部分集約木保持部305は、ファイル保持部303が保持するデータに対して部分的に統計値を計算し、その結果を保持する。ここでは統計値の保持につかわれるデータ構造を部分集約木(Partial Aggregation Tree)と称する。部分集約木は二分木(Binary Tree)にもとづくデータ構造であり、非特許文献1に記載の「統計値処理において事前計算した統計値を再利用する処理」を高速化するために用いられる。
部分集約木管理部304は、部分集約木操作部341と分割指示部342とアクセス頻度管理部343とを含む。
さらに、部分集約木管理部304は、アクセス頻度管理部343を用いて、問合せ実行部307からの問合せ対象となるデータを含む部分集合へのアクセス数を計数してその計数値を管理する。
問合せ受付部306は、ファイル保持部303に保持されているデータに対する処理の指示を取得する。指示の記述に使われる方式の例としては、データに対する問合せを記述するプログラミング言語の一種であるSQL(Structured Query Language)がある。
問合せ実行部307は、問合せ受付部306が取得した問合せを実行する。この際、問合せ実行部307は部分集約木管理部304を通じて、問合せの中で事前に計算した統計値が問合せ範囲によっては再利用できるか否かの情報、および再利用可能であった場合は範囲における統計値を取得する。統計値が再利用できない範囲については、ファイル操作部302を通じてファイル保持部303内のデータへアクセスし、統計値を計算する。そして、各範囲の統計値を併合することにより、問合せ実行部307は最終的な問合せ結果を構築する。
次に、ファイル保持部303の保持内容について図4を参照して説明する。
次に、部分集約木保持部305の保持内容について図5を参照して説明する。
次に、本実施形態に係る情報処理装置のハードウェア構成の一例を図6を参照して説明する。
図7は、本実施形態の情報処理装置300において、データを入力した際に実行される処理の流れを例示するフローチャートである。ステップS701において、データ入力部301はデータを取得する。ステップS703において、ファイル操作部302はデータをファイル化する。ステップS705においてファイル操作部302はファイル保持部303へファイルを保存する。
例えば、木構造を用いないで情報処理するようにしても同様の効果を得られることは言うまでもない。
次に本発明の第3実施形態に係る情報処理装置について、図9A〜図12Bを参照して説明する。本実施形態に係る情報処理装置は、上記第2実施形態と比べると、アクセス数のカウント値が最小のリーフノードを他のリーフノードと併合する処理を行なう点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
図10は、本実施形態に係る情報処理装置の構成を説明するための機能ブロック図である。本実施形態に係る情報処理装置1000は、上記第2実施形態と比べると、部分集約木操作部1041と併合指示部1044とを備えた部分集約木管理部1001を有する点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
図11は本実施形態に係る情報処理装置1000のハードウェア構成を説明するためのブロック図である。本実施形態に係る情報処理装置1000は、上記第2実施形態と比べると、RAM604に閾値1141を有するとともにストレージ605に併合指示モジュール1151有する点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
本実施形態の情報処理装置1000における問合せ受け入れ時の処理は、リーフノードの併合処理が加わる点において第2実施形態と異なる。図12Aに本実施形態における問合せ受け入れ時の処理のフローチャートを示して説明する。なお、第2実施形態における処理と同一部分は同一符号をもって表わし、その説明を省略する。本実施形態の処理と第2実施形態の処理では、ステップS809とステップS811の間にステップS1201、およびS1202の処理が加わった点において異なる。すなわち、ステップS809の処理の後、ステップS1201において、問合せ実行部307は、部分集約木管理部1001を通じて、保持する統計値の数すなわちリーフノードの数が、事前に入力部610を介して設定された許容最大数を超過するか否かを判定する。
こうして問合せの実行に必要な統計値を取得し終えると、ステップS811において、問合せ実行部307はそれらの統計値を統合して問合せ結果を算出する。
function compare(range, query) {
if (query.min < range.min) {
if (query.max < range.min) return OUTSIDE_QUERY;
if (query.max < range.max) return PART_DATA_IN_QUERY;
return ALL_DATA_IN_QUERY;
}
if (query.min === range.min && range.max <= query.max) return ALL_DATA_IN_QUERY;
if (query.min <= range.max) return PART_DATA_IN_QUERY;
return OUTSIDE_QUERY;
}
関数compare(range, query) は、あるノードのキー属性の範囲 [range.min, range.max] と、問合せ内のキー属性に関する絞り込み条件 [query.min, query.max] を受け取ると、そのノードの管理下にあるデータについて、「全てのデータが問合せの範囲外 (OUTSIDE_QUERY)」、「いくつかのデータが問合せの範囲内 (PART_DATA_IN_QUERY)」、「全てのデータが問合せの範囲内 (ALL_DATA_IN_QUERY)」のどれかの値を返す。
function computeAggregation(node, query) {
// この node 下のデータが query の範囲内または範囲外にあるのかを
// compare関数をつかって確認する
answer = compare(node.range, query);
if (answer == OUTSIDE_QUERY) {
// node 下のデータは query の範囲外なので、それ以上の探索はしない
return null;
}
if (answer == ALL_DATA_IN_QUERY) {
// node 下の全てのデータが query の範囲内なので、事前に計算した統計値を使いまわす
return node.getPrecomputedAggregations();
}
if (answer == PART_DATA_IN_QUERY) {
if (node instanceof LeafNode) {
// リーフノードまで探索したが、再利用はできなかった
// 今後、この区間で再利用ができるように、ノードを分割し
// データをデータ保持部から読み込んで統計値を計算
node.split(query);
}
// 自身の子の統計値を再利用するために探索
var leftAggregations = computeAggregation(node.leftChild, query);
var rightAggregations = computeAggregation(node.leftChild, query);
// 両方の子から得た統計値を併合して返却
return leftAggregations.merge(rightAggregations);
}
}
この関数は、部分集約木を再帰的に探索し、各ノードが「全てのデータが問合せの範囲外(OUTSIDE_QUERY)」、「いくつかのデータが問合せの範囲内(PART_DATA_IN_QUERY)」、「全てのデータが問合せの範囲内(ALL_DATA_IN_QUERY)」のどれになるかを判定する。
もし「全てのデータが問合せの範囲外 (OUTSIDE_QUERY)」であれば、そのノード以下のノードは問合せの対象外であり、探索しても無駄であるため、そのノードよりも下位のノードの探索を打ち切る。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
データの集合へのアクセス頻度を記憶して管理するアクセス頻度管理手段と、
前記アクセス頻度が第1所定値以上の前記集合を少なくとも2つの部分集合に分割する分割手段と、
分割された前記部分集合ごとに統計値を算出する算出手段と、
を備えた情報処理装置。
(付記2)
前記分割手段は、分割された前記部分集合のアクセス頻度を初期化する、付記1に記載の情報処理装置。
(付記3)
前記分割手段は、前記統計値にアクセスがあったときに分割を実行する、付記1または2に記載の情報処理装置。
(付記4)
前記部分集合に含まれる前記統計値を木構造として管理する管理手段をさらに備えた、付記1乃至3のいずれか1項に記載の情報処理装置。
(付記5)
前記統計値の全体サイズが所定の最大値を超えた場合に、少なくとも2つの前記部分集合を併合する併合手段をさらに備えた、付記1乃至4のいずれか1項に記載の情報処理装置。
(付記6)
前記アクセス頻度が最小の部分集合を、該部分集合以外の少なくとも1つの部分集合と併合する併合手段をさらに備えた付記1乃至3のいずれか1項に記載の情報処理装置。
(付記7)
前記併合手段は、前記アクセス頻度が最小の部分集合を、該部分集合に隣接する部分集合と併合する、付記4に記載の情報処理装置。
(付記8)
前記併合手段は、前記隣接する部分集合が2つある場合、前記アクセス頻度が小さい方の前記隣接する部分集合と併合する、付記5に記載の情報処理装置。
(付記9)
前記併合手段は、前記アクセス頻度が最小の部分集合を、該部分集合に隣接する部分集合のアクセス頻度が第2所定値よりも大きい場合、該部分集合と隣接しない部分集合と併合する、付記6に記載の情報処理装置。
(付記10)
前記併合手段は、前記アクセス頻度が最小の部分集合を、前記アクセス頻度が第3所定値以下の部分集合と併合する、付記6に記載の情報処理装置。
(付記11)
前記併合手段は、前記アクセス頻度が最小の部分集合を、前記アクセス頻度が最小の次に小さい部分集合と併合する、付記10に記載の情報処理装置。
(付記12)
前記最大値を設定する設定手段をさらに備えた、付記5に記載の情報処理装置。
(付記13)
データの集合へのアクセス頻度を記憶して管理するアクセス頻度管理ステップと、
前記アクセス頻度が第1所定値以上の前記集合を少なくとも2つの部分集合に分割する分割ステップと、
分割された前記部分集合ごとに統計値を算出する算出ステップと、
を含む情報処理方法。
(付記14)
データの集合へのアクセス頻度を記憶して管理するアクセス頻度管理ステップと、
前記アクセス頻度が第1所定値以上の前記集合を少なくとも2つの部分集合に分割する分割ステップと、
分割された前記部分集合ごとに統計値を算出する算出ステップと、
をコンピュータに実行させる情報処理プログラム。
Claims (9)
- データの集合へのアクセス頻度を記憶して管理するアクセス頻度管理手段と、
前記アクセス頻度が第1所定値以上の前記集合を少なくとも2つの部分集合に分割する分割手段と、
分割された前記部分集合ごとに、当該部分集合に含まれる前記データの統計値を算出する算出手段と、
を備え、
前記分割手段は、対象部分集合の統計値の問合せがあったときに、前記対象部分集合の前記統計値が算出されていない場合、前記対象部分集合を包含する前記部分集合を分割することにより前記対象部分集合を生成し、
前記算出手段は、当該対象部分集合の前記統計値を算出する
情報処理装置。 - 前記分割手段は、分割された前記部分集合のアクセス頻度を初期化する、請求項1に記載の情報処理装置。
- 前記部分集合に含まれる前記統計値を木構造として管理する管理手段をさらに備えた、請求項1又は2に記載の情報処理装置。
- 前記統計値の全体サイズが所定の最大値を超えた場合に、少なくとも2つの前記部分集合を併合する併合手段をさらに備えた、請求項1乃至3のいずれか1項に記載の情報処理装置。
- 前記併合手段は、前記アクセス頻度が最小の部分集合を、該部分集合以外の少なくとも1つの部分集合と併合する、請求項4に記載の情報処理装置。
- 前記併合手段は、前記アクセス頻度が最小の部分集合を、該部分集合に隣接する部分集合と併合する、請求項5に記載の情報処理装置。
- 前記併合手段は、前記隣接する部分集合が2つある場合、前記アクセス頻度が小さい方の前記隣接する部分集合と併合する、請求項6に記載の情報処理装置。
- データの集合へのアクセス頻度を記憶して管理し、
前記アクセス頻度が第1所定値以上の前記集合を少なくとも2つの部分集合に分割し、
分割された前記部分集合ごとに、当該部分集合に含まれる前記データの統計値を算出し、
対象部分集合の統計値の問合せがあったときに、前記対象部分集合の前記統計値が算出されていない場合、前記対象部分集合を包含する前記部分集合を分割することにより前記対象部分集合を生成し、
当該対象部分集合の前記統計値を算出する
情報処理方法。 - データの集合へのアクセス頻度を記憶して管理するアクセス頻度管理処理と、
前記アクセス頻度が第1所定値以上の前記集合を少なくとも2つの部分集合に分割する分割処理と、
分割された前記部分集合ごとに、当該部分集合に含まれる前記データの統計値を算出する算出処理と、
をコンピュータに実行させ、
前記分割処理は、対象部分集合の統計値の問合せがあったときに、前記対象部分集合の前記統計値が算出されていない場合、前記対象部分集合を包含する前記部分集合を分割することにより前記対象部分集合を生成し、
前記算出処理は、当該対象部分集合の前記統計値を算出する
情報処理プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015094625 | 2015-05-07 | ||
JP2015094625 | 2015-05-07 | ||
PCT/JP2016/002184 WO2016178313A1 (ja) | 2015-05-07 | 2016-04-26 | 情報処理装置、情報処理方法および情報処理プログラムを記憶する記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2016178313A1 JPWO2016178313A1 (ja) | 2018-03-15 |
JP6683200B2 true JP6683200B2 (ja) | 2020-04-15 |
Family
ID=57218538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017516551A Active JP6683200B2 (ja) | 2015-05-07 | 2016-04-26 | 情報処理装置、情報処理方法および情報処理プログラムを記憶する記録媒体 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6683200B2 (ja) |
WO (1) | WO2016178313A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7193721B2 (ja) * | 2019-01-31 | 2022-12-21 | 富士通株式会社 | 情報処理装置およびデータベース検索プログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62296226A (ja) * | 1986-06-16 | 1987-12-23 | Fujitsu Ltd | インデツクス順編成フアイルのインデツクス処理方式 |
US5257365A (en) * | 1990-03-16 | 1993-10-26 | Powers Frederick A | Database system with multi-dimensional summary search tree nodes for reducing the necessity to access records |
JP2006120056A (ja) * | 2004-10-25 | 2006-05-11 | Hewlett-Packard Development Co Lp | データベースシステムおよびその方法 |
JP5678790B2 (ja) * | 2011-05-02 | 2015-03-04 | 富士通株式会社 | インデックス管理方法、インデックス管理プログラムおよびインデックス管理装置 |
-
2016
- 2016-04-26 WO PCT/JP2016/002184 patent/WO2016178313A1/ja active Application Filing
- 2016-04-26 JP JP2017516551A patent/JP6683200B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JPWO2016178313A1 (ja) | 2018-03-15 |
WO2016178313A1 (ja) | 2016-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10102253B2 (en) | Minimizing index maintenance costs for database storage regions using hybrid zone maps and indices | |
US9576011B2 (en) | Indexing hierarchical data | |
CN111563101B (zh) | 执行计划优化方法、装置、设备及存储介质 | |
US11675769B2 (en) | On-demand, dynamic and optimized indexing in natural language processing | |
CN111506621A (zh) | 一种数据统计方法及装置 | |
KR102368775B1 (ko) | 인덱스 관리 방법, 장치, 기기 및 저장 매체 | |
CN110968579B (zh) | 执行计划的生成与执行方法、数据库引擎及存储介质 | |
US11132345B2 (en) | Real time indexing | |
JP6642435B2 (ja) | データ処理装置、データ処理方法、及び、プログラム | |
KR101955376B1 (ko) | 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
JP6683200B2 (ja) | 情報処理装置、情報処理方法および情報処理プログラムを記憶する記録媒体 | |
US8200673B2 (en) | System and method for on-demand indexing | |
US11531665B2 (en) | Automated database index management | |
Roy et al. | A proposal for optimization of data node by horizontal scaling of name node using big data tools | |
JP6898215B2 (ja) | データベース管理装置、データベース管理方法及びデータベース管理プログラム | |
US10726013B2 (en) | Information processing device, information processing method, and recording medium | |
CN105740997A (zh) | 一种控制任务流程的方法、装置及数据库管理*** | |
Jo et al. | Quadrant-based MBR-tree indexing technique for range query over HBase | |
JP2020134961A (ja) | データベース管理システム、端末装置及び方法 | |
US20230033592A1 (en) | Information processing apparatus, method and program | |
Zaki et al. | Efficient distributed dynamic graph system | |
Shah et al. | Optimum frequent pattern approach for efficient incremental mining on large databases using Map Reduce | |
Ren et al. | Approximate Sub-graph Matching over Knowledge Graph | |
CN117093598A (zh) | 数据检索方法、***、设备以及存储介质 | |
JP2015219672A (ja) | データ管理装置、データ管理方法、及び、そのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171101 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190315 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190806 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191003 |
|
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: 20200225 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200309 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6683200 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |