Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6683200B2 - Information processing apparatus, information processing method, and recording medium storing information processing program - Google Patents
[go: Go Back, main page]

JP6683200B2 - Information processing apparatus, information processing method, and recording medium storing information processing program - Google Patents

Information processing apparatus, information processing method, and recording medium storing information processing program Download PDF

Info

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
Application number
JP2017516551A
Other languages
Japanese (ja)
Other versions
JPWO2016178313A1 (en
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 JPWO2016178313A1 publication Critical patent/JPWO2016178313A1/en
Application granted granted Critical
Publication of JP6683200B2 publication Critical patent/JP6683200B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information 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

本発明は、情報処理装置、情報処理方法および情報処理プログラムに関する。   The present invention relates to an information processing device, an information processing method, and an information processing program.

上記技術分野において、非特許文献1には、データを管理するとき、統計処理の際に事前計算したブロックごとの統計値を再利用することで、レコードのスキャンを省いてI/O(Input/Output)量と計算量を削減し、統計処理を高速化する技術が開示されている。   In the above technical field, in Non-Patent Document 1, when managing data, by reusing a statistical value for each block calculated in advance at the time of statistical processing, scan of records is omitted and I / O (Input / Input) A technique for reducing the amount of output and the amount of calculation and speeding up statistical processing is disclosed.

小山田など、「データの部分集約による高速かつ正確なデータ集計処理の実現」、データベース・システム研究会報告2014-DBS-160(19)、 pp.1-7、2015年 (http://ci.nii.ac.jp/naid/110009842514)Oyamada et al., "Achieving High-speed and Accurate Data Aggregation Processing by Partial Aggregation of Data", Database System Research Group Report 2014-DBS-160 (19), pp. 1-7, 2015 (http://ci.nii.ac.jp/naid/110009842514)

しかしながら、上記文献に記載の技術では、事前に設定したブロック単位でなくてはブロック単位で事前に計算した統計値を効率的に再利用することができず、統計処理を高速化することができなかった。   However, in the technique described in the above-mentioned document, it is not possible to efficiently reuse the statistical value calculated in advance in block units unless the preset block unit is set, and the statistical processing can be speeded up. There wasn't.

本発明の目的は、上述の課題を解決する技術を提供することにある。   An object of the present invention is to provide a technique that solves the above problems.

上記目的を達成するため、本発明に係る情報処理装置は、
データの集合へのアクセス頻度を記憶して管理するアクセス頻度管理手段と、
前記アクセス頻度が第1所定値以上の前記集合を少なくとも2つの部分集合に分割する分割手段と、
分割された前記部分集合ごとに統計値を算出する算出手段と、を備えた。
In order to achieve the above object, the information processing apparatus according to the present invention,
Access frequency management means for storing and managing the access frequency to a set of data,
Dividing means for dividing the set having the access frequency equal to or higher than a first predetermined value into at least two subsets;
And a calculating means for calculating a statistical value for each of the divided subsets.

上記目的を達成するため、本発明に係る情報処理方法は、
データの集合へのアクセス頻度を記憶して管理するアクセス頻度管理ステップと、
前記アクセス頻度が第1所定値以上の前記集合を少なくとも2つの部分集合に分割する分割ステップと、
分割された前記部分集合ごとに統計値を算出する算出ステップと、を含む。
In order to achieve the above object, the information processing method according to the present invention,
An access frequency management step of storing and managing the access frequency to a set of data,
A dividing step of dividing the set having the access frequency of a first predetermined value or more into at least two subsets;
A calculation step of calculating a statistical value for each of the divided subsets.

上記目的を達成するため、本発明に係る記録媒体は、
データの集合へのアクセス頻度を記憶して管理するアクセス頻度管理ステップと、
前記アクセス頻度が第1所定値以上の前記集合を少なくとも2つの部分集合に分割する分割ステップと、
分割された前記部分集合ごとに統計値を算出する算出ステップと、をコンピュータに実行させる情報処理プログラムを記憶する。
In order to achieve the above object, the recording medium according to the present invention,
An access frequency management step of storing and managing the access frequency to a set of data,
A dividing step of dividing the set having the access frequency of a first predetermined value or more into at least two subsets;
An information processing program for causing a computer to execute a calculation step of calculating a statistical value for each of the divided subsets is stored.

本発明によれば、事前に算出した統計値を効率的に再利用することができ、統計処理を高速化することができる。   According to the present invention, the statistical value calculated in advance can be efficiently reused, and the statistical processing can be speeded up.

本発明の第1実施形態に係る情報処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the information processing apparatus which concerns on 1st Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置による部分集約木の構築を説明する図である。It is a figure explaining the construction of the partial aggregation tree by the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置による部分集約木におけるリーフノードの分割手順を説明する図である。It is a figure explaining the division | segmentation procedure of the leaf node in the partial aggregation tree by the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置の機能構成を示すブロック図である。It is a block diagram which shows the functional structure of the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置のファイル保持部の保持内容を説明する図である。It is a figure explaining the holding content of the file holding part of the information processor concerning a 2nd embodiment of the present invention. 本発明の第2実施形態に係る情報処理装置の部分集約木保持部の保持内容を説明する図である。It is a figure explaining the holding content of the partial aggregation tree holding part of the information processor concerning a 2nd embodiment of the present invention. 本発明の第2実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置においてデータを入力した際に実行される処理の流れを例示するフローチャートである。It is a flowchart which illustrates the flow of the process performed when inputting data in the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置において問合せ実行時の処理の流れを例示するフローチャートである。It is a flowchart which illustrates the flow of a process at the time of inquiry execution in the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置によるリーフノードの分割処理手順を説明するフローチャートである。It is a flow chart explaining a division processing procedure of a leaf node by an information processor concerning a 2nd embodiment of the present invention. 本発明の第3実施形態に係る情報処理装置による部分集約木におけるリーフノードの併合手順を説明する図である。It is a figure explaining the merge procedure of the leaf node in the partial aggregation tree by the information processing apparatus which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る情報処理装置による部分集約木におけるリーフノードの併合手順を説明する図である。It is a figure explaining the merge procedure of the leaf node in the partial aggregation tree by the information processing apparatus which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る情報処理装置の機能構成を示すブロック図である。It is a block diagram which shows the functional structure of the information processing apparatus which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of the information processing apparatus which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る情報処理装置において問合せの実行時の処理の流れを例示するフローチャートである。It is a flowchart which illustrates the flow of a process at the time of execution of an inquiry in the information processing apparatus which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る情報処理装置による部分集約木におけるリーフノードの併合処理手順を説明するフローチャートである。It is a flowchart explaining the merge processing procedure of the leaf node in the partial aggregation tree by the information processing apparatus which concerns on 3rd Embodiment of this invention.

以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素はあくまで例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。   Embodiments of the present invention will be illustratively described in detail below with reference to the drawings. However, the constituent elements described in the following embodiments are merely examples, and the technical scope of the present invention is not intended to be limited thereto.

[第1実施形態]
本発明の第1実施形態としての情報処理装置100について、図1を用いて説明する。
情報処理装置100は、アクセス頻度管理部101と分割部102と統計値算出部103とを含む。
[First Embodiment]
An information processing apparatus 100 according to the first embodiment of the present invention will be described with reference to FIG.
The information processing apparatus 100 includes an access frequency management unit 101, a division unit 102, and a statistical value calculation unit 103.

アクセス頻度管理部101は、データの集合へのアクセス頻度を記憶して管理する。   The access frequency management unit 101 stores and manages the access frequency to a set of data.

分割部102は、アクセス頻度管理部101が管理するアクセス頻度に基づいて、アクセス頻度が第1所定値以上の集合を少なくとも2つに分割した部分集合を生成する。   The dividing unit 102 generates, based on the access frequency managed by the access frequency managing unit 101, a subset obtained by dividing a set having an access frequency equal to or higher than a first predetermined value into at least two.

統計値算出部103は、分割した部分集合ごとに統計値を算出する。   The statistical value calculation unit 103 calculates a statistical value for each of the divided subsets.

本実施形態によれば、アクセス頻度に応じて分割された部分集合が自動的に生成され、生成された部分集合の統計値が自動的に算出される。これにより、事前に設定したブロック単位(部分集合単位)でなくても、事前に計算した統計値を効率的に再利用することができ、統計処理を高速化することができる。   According to the present embodiment, the subset divided according to the access frequency is automatically generated, and the statistical value of the generated subset is automatically calculated. As a result, the statistical value calculated in advance can be efficiently reused even if it is not a block unit (subset unit) set in advance, and the statistical processing can be speeded up.

[第2実施形態]
次に本発明の第2実施形態に係る情報処理装置について、図2A〜図8Bを参照して説明する。なお、全ての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
[Second Embodiment]
Next, an information processing apparatus according to the second embodiment of the present invention will be described with reference to FIGS. 2A to 8B. In all the drawings, the same constituents will be given the same reference numeral, and the description thereof will not be repeated.

《前提技術》
関係データベースシステム(Relational DataBase Management System)は、関係モデルにもとづく表形式のデータ(以下テーブル)を保持し、ユーザにデータの効率的な検索と更新とを提供する。テーブル内の行はレコードと呼ばれ、ひとつのデータを表わす。データはいくつかの属性を持つことができ、テーブル内の列が各属性に対応する。そのテーブルに含まれる列の<列名、データ型>一覧を、そのテーブルのスキーマと呼ぶ。
<< Prerequisite technology >>
A relational database system (Relational DataBase Management System) holds tabular data (hereinafter referred to as a table) based on a relational model and provides a user with efficient retrieval and updating of data. A row in a table is called a record and represents one piece of data. The data can have several attributes, with a column in the table corresponding to each attribute. The <column name, data type> list of columns included in the table is called the table schema.

関係データベースシステムのユーザは、テーブルに対する検索処理および更新処理をプログラミング言語によって関係データベースシステムに対して指示する。この指示は問合せ(Query)と呼ばれる。問合せを記述するためには、SQL(Structured Query Language)というプログラミング言語が標準的に用いられている。SQLを用いると、テーブルの中から条件にあてはまるレコードを簡便かつ効率的に取り出すことができる。また、列名を指定することで、レコードの中から必要な属性のみを取り出すこともできる。   A user of the relational database system instructs the relational database system by a programming language to perform a search process and an update process for a table. This instruction is called a query. A programming language called SQL (Structured Query Language) is used as a standard to describe a query. By using SQL, it is possible to easily and efficiently retrieve the records that satisfy the conditions from the table. Also, by specifying the column name, you can retrieve only the required attributes from the record.

関係データベースシステムにおいて頻繁におこなわれる処理のひとつに、属性の統計処理がある。属性の統計処理とは、テーブルの所定の属性の値群から何らかの統計値を計算するものであり、統計値の例としては最大値、最小値、平均値、標準偏差などがある。   One of the processes frequently performed in relational database systems is attribute statistical processing. The attribute statistical processing is to calculate a certain statistical value from a value group of a predetermined attribute in the table, and examples of the statistical value include a maximum value, a minimum value, an average value and a standard deviation.

属性の統計処理はテーブル内の全てないし大部分のレコードに関しておこなわれることが多い。そのため、テーブルが巨大であった場合には大量のレコードをスキャンすることとなり、多量のI/O処理と計算処理が発生して処理速度が長大となる。   Attribute statistics are often performed on all or most of the records in a table. Therefore, if the table is huge, a large number of records will be scanned, and a large amount of I / O processing and calculation processing will occur, resulting in a long processing speed.

《本実施形態の説明》
本実施形態では、データの集合を分割し、分割した部分集合ごとに統計値を算出しておき、問合せがあった際に統計値を用いて計算することにより計算速度を高速化している。
また、本実施形態では、分割する際に部分集約木構造を用いている。
<< Description of this embodiment >>
In the present embodiment, a set of data is divided, a statistic value is calculated for each divided subset, and when a query is made, the statistic value is used for calculation to speed up the calculation speed.
Further, in the present embodiment, a partial aggregation tree structure is used when dividing.

図2Aは、例えば年齢(age)、体重(weight)、および身長(height)の3つの属性を持つデータの集合について、年齢(age)をキー属性として高さが1(分割を一段階おこなう意味)の部分集約木を示す図である。図中、楕円は部分集約木のノード201、202、203を表わし、矩形は分割された実際のデータ(部分集合)204、205を表わす。各ノード201、202、203はキー属性の値域を二分割し、最下部のノード202、203(リーフノード)は実際のデータ204、205へのポインタと、その区分に対して計算した統計値を保持する。これにより、部分集合となるデータ204、205とリーフノード202、203とが対応付けられる。また、キー属性となる年齢(age)の値域であるデータが0歳から49歳のデータ204と50歳から100歳のデータ205の二つへ区切られている。また、それぞれの区間において残りの属性(体重:weight、身長:height)の統計値(最大値:max、最小値:min、平均値:mean、合計値:sum、データ数:count)が計算されている。   FIG. 2A shows a set of data having three attributes, for example, age (age), weight (weight), and height (height), with age (age) as a key attribute and a height of 1 (meaning that division is performed in one step). ) Is a diagram showing a partial aggregation tree. In the figure, ellipses represent nodes 201, 202, and 203 of the partial aggregation tree, and rectangles represent actual divided data (subsets) 204 and 205. Each node 201, 202, 203 divides the value range of the key attribute into two, and the nodes 202, 203 (leaf nodes) at the bottom have pointers to the actual data 204, 205 and the statistical values calculated for that section. Hold. As a result, the data 204, 205 that is a subset and the leaf nodes 202, 203 are associated with each other. Further, the data which is the value range of the age as a key attribute is divided into two data, that is, data 0 to 49 years old 204 and data 50 to 100 years old 205. In addition, the statistical values (maximum value: max, minimum value: min, average value: mean, total value: sum, number of data: count) of the remaining attributes (weight: weight, height: height) are calculated in each section. ing.

さらに、アクセス頻度が所定の閾値を超えたリーフノードに対して、リーフノード202、203の分割処理を繰り返しおこなうほど木は成長し、より細かな単位で統計値が計算されてゆく。これによって統計値を再利用できる確率は高まる。つまり、リーフノードの分割処理は、あるリーフノードが担当するキー属性値の領域を二分割し、元のリーフノードの管轄下にあったデータ群を各領域に分配した上で、それらの統計値を再計算し、新たなリーフノードを生成する。例えば図2Aの部分集約木において、[0,49]の年齢を担当するリーフノード202を分割すると、図2Bのように[0,24]の年齢を担当するリーフノード206と、[25,49]の年齢を担当するリーフノード207の二つが生成される。各リーフノード206、207に対応してデータ(部分集合)208、209が生成される。   Furthermore, for a leaf node whose access frequency exceeds a predetermined threshold value, the tree grows as the leaf nodes 202 and 203 are repeatedly divided, and statistical values are calculated in smaller units. This increases the probability that the statistics will be reused. In other words, the leaf node division process divides the area of the key attribute value that a certain leaf node is responsible for into two, distributes the data group under the control of the original leaf node to each area, and then calculates the statistical values of those areas. Is recalculated and a new leaf node is generated. For example, in the partial aggregation tree of FIG. 2A, when the leaf node 202 in charge of the age of [0,49] is divided, the leaf node 206 in charge of the age of [0,24] and [25,49] as shown in FIG. 2B. ], Two leaf nodes 207 in charge of the age are generated. Data (subsets) 208 and 209 are generated corresponding to the leaf nodes 206 and 207, respectively.

なお、図2A、2Bにおいては、アクセス頻度をaccess count [count: x]と表わしている。また、リーフノードを分割した際、新たに生成されたリーフノードのアクセス頻度(access count [count: x])は初期化されて0になる。   2A and 2B, the access frequency is represented as access count [count: x]. Further, when the leaf node is divided, the access frequency (access count [count: x]) of the newly generated leaf node is initialized to 0.

《本実施形態の機能構成》
図3は、本実施形態に係る情報処理装置の機能構成を説明するためのブロック図である。図3において、各ブロックは、ハードウェア単位の構成ではなく、機能単位の構成を表している。
<< Functional configuration of this embodiment >>
FIG. 3 is a block diagram for explaining the functional configuration of the information processing apparatus according to this embodiment. In FIG. 3, each block does not represent a hardware-based configuration but a functional-based configuration.

情報処理装置300は、データ入力部301、ファイル操作部302、ファイル保持部303、部分集約木管理部304、部分集約木保持部305、問合せ受付部306、および問合せ実行部307を有する。以下、それぞれについて説明する。   The information processing device 300 includes a data input unit 301, a file operation unit 302, a file holding unit 303, a partial aggregation tree management unit 304, a partial aggregation tree holding unit 305, an inquiry receiving unit 306, and an inquiry execution unit 307. Each will be described below.

《データ入力部》
データ入力部301は、情報処理装置300の処理対象となるデータを入力する。データ形式の例は、関係データベースシステムにおけるテーブルデータである。テーブルデータは表形式のデータであり、表の行はひとつのレコード(例:職員の情報)、表の各列はレコードの属性値(例:職員の年齢、身長、性別など)となる。
<Data input section>
The data input unit 301 inputs data to be processed by the information processing device 300. An example of the data format is table data in a relational database system. The table data is tabular data, and each row of the table is one record (eg staff information), and each column of the table is an attribute value of the record (eg staff age, height, gender, etc.).

データ入力部301がデータを取得する方法は様々である。例えばデータ入力部301は、外部の装置から入力されるデータを取得する。その他にも例えば、データ入力部301は、手動でデータを入力する。さらにデータ入力部301は、外部の装置に対して通信などによってアクセスして、データを入力してもよい。   There are various methods by which the data input unit 301 acquires data. For example, the data input unit 301 acquires data input from an external device. In addition, for example, the data input unit 301 manually inputs data. Furthermore, the data input unit 301 may access an external device by communication or the like and input data.

《ファイル操作部》
ファイル操作部302は、ファイルの生成処理とファイルの読み込み処理をおこなう。
ファイルの生成処理は、データ入力部301から入力されたデータを主記憶装置や二次記憶装置などの記憶装置に記憶するためにファイル化し、ファイル保持部303へ保持する処理である。ファイル操作部302は、ファイルの読み込み処理において、問合せ実行部307から、データが保持されているファイル名、読み込みを開始するオフセット値、そして読み込むデータのサイズを受け取る。さらに、ファイル操作部302は、ファイル読み込み処理において、対応するデータをファイル保持部303から取得して、問合せ実行部307へ返却する。
<File operation part>
The file operation unit 302 performs file generation processing and file reading processing.
The file generation process is a process of converting the data input from the data input unit 301 into a file for storage in a storage device such as a main storage device or a secondary storage device, and holding the data in the file holding unit 303. In the file reading process, the file operation unit 302 receives from the query execution unit 307 the file name in which the data is held, the offset value to start reading, and the size of the read data. Furthermore, the file operation unit 302 acquires the corresponding data from the file holding unit 303 and returns it to the query execution unit 307 in the file reading process.

《ファイル保持部》
ファイル保持部303は、ファイル操作部302の生成したファイルを記憶装置に保持する。記憶装置は主記憶装置であってもよいし、二次記憶装置であってもよい。
<File holding section>
The file holding unit 303 holds the file generated by the file operation unit 302 in the storage device. The storage device may be a main storage device or a secondary storage device.

《部分集約木保持部》
部分集約木保持部305は、ファイル保持部303が保持するデータに対して部分的に統計値を計算し、その結果を保持する。ここでは統計値の保持につかわれるデータ構造を部分集約木(Partial Aggregation Tree)と称する。部分集約木は二分木(Binary Tree)にもとづくデータ構造であり、非特許文献1に記載の「統計値処理において事前計算した統計値を再利用する処理」を高速化するために用いられる。
<Partially aggregated tree holding unit>
The partial aggregation tree holding unit 305 partially calculates a statistical value for the data held by the file holding unit 303, and holds the result. Here, the data structure used for holding the statistical values is referred to as a partial aggregation tree. The partial aggregation tree is a data structure based on a binary tree, and is used for speeding up the “processing for reusing a statistical value calculated in advance in statistical value processing” described in Non-Patent Document 1.

部分集約木は、少なくとも2つの属性を持つデータ(例:年齢、体重、身長)に対しデータを部分的に区切って統計値を計算した上で、保持するデータ構造である。部分集約木は任意の属性値をデータの分割に利用する。分割に利用される属性値をキー属性と称する。   The partial aggregation tree is a data structure that holds statistical data after partially dividing the data for data having at least two attributes (eg, age, weight, height). The partial aggregation tree uses arbitrary attribute values for data division. The attribute value used for division is called a key attribute.

部分集約木はキー属性の範囲を順に二分割していき、各範囲に対応するデータ群の部分的な統計値を計算して保持する。分割数を増やすこと、すなわち部分集約木の高さを大きくすることによって、より細かく統計値を計算することが可能となり、非特許文献1に記載の技術による統計値の再利用もおこないやすくなる。   The partial aggregation tree divides the range of key attributes into two in order, and calculates and holds partial statistical values of the data group corresponding to each range. By increasing the number of divisions, that is, by increasing the height of the partial aggregation tree, it is possible to calculate the statistical value more finely, and it becomes easy to reuse the statistical value by the technique described in Non-Patent Document 1.

《部分集約木管理部》
部分集約木管理部304は、部分集約木操作部341と分割指示部342とアクセス頻度管理部343とを含む。
<< Partial Aggregation Tree Management Department >>
The partial aggregation tree management unit 304 includes a partial aggregation tree operation unit 341, a division instruction unit 342, and an access frequency management unit 343.

部分集約木操作部341は、データ集合を2つ以上の部分集合に分割し、分割した部分集合ごとにデータの統計値を算出する。   The partial aggregation tree operation unit 341 divides the data set into two or more subsets, and calculates a statistical value of data for each of the divided subsets.

分割指示部342は、アクセス頻度管理部343が管理するアクセス頻度に基づいて、アクセス頻度の高い部分集合に関して、さらに分割した部分集合を生成するように部分集約木操作部341に指示する。   Based on the access frequency managed by the access frequency management unit 343, the division instruction unit 342 instructs the partial aggregation tree operation unit 341 to generate a further divided subset for the subset with high access frequency.

アクセス頻度管理部343は、各部分集合へのアクセス頻度を記憶して管理する。なお、アクセス頻度管理部343が管理するアクセス頻度としては、例えば所定時間内におけるアクセス数がある。   The access frequency management unit 343 stores and manages the access frequency to each subset. The access frequency managed by the access frequency management unit 343 is, for example, the number of accesses within a predetermined time.

部分集約木管理部304は、問合せ実行部307の問合せに基づいて、部分集約木保持部305に保持されている部分集約木の操作を部分集約木操作部341を用いて行なう。
さらに、部分集約木管理部304は、アクセス頻度管理部343を用いて、問合せ実行部307からの問合せ対象となるデータを含む部分集合へのアクセス数を計数してその計数値を管理する。
The partial aggregation tree management unit 304 uses the partial aggregation tree operation unit 341 to operate the partial aggregation tree held in the partial aggregation tree holding unit 305 based on the inquiry from the query execution unit 307.
Further, the partial aggregation tree management unit 304 uses the access frequency management unit 343 to count the number of accesses from the query execution unit 307 to the subset including the data to be inquired and manage the counted value.

部分集約木操作部341が行なう操作には、リーフノードの分割、リーフノードの併合、そして統計処理の実行がある。   The operations performed by the partial aggregation tree operation unit 341 include splitting of leaf nodes, merging of leaf nodes, and execution of statistical processing.

《問合せ受付部》
問合せ受付部306は、ファイル保持部303に保持されているデータに対する処理の指示を取得する。指示の記述に使われる方式の例としては、データに対する問合せを記述するプログラミング言語の一種であるSQL(Structured Query Language)がある。
<< Inquiry reception section >>
The inquiry receiving unit 306 acquires a processing instruction for the data held in the file holding unit 303. As an example of the method used to describe the instruction, there is SQL (Structured Query Language), which is a type of programming language that describes a query for data.

問合せの例としては、データから最大値、最小値、平均値、および標準偏差などの統計値を集計する処理や、関係データベースで用いられる選択、結合、射影処理、およびこれらの処理の組み合わせによる複雑な情報処理などがある。   Examples of queries include processing that aggregates statistical values such as maximum value, minimum value, average value, and standard deviation from data, and selection, join, projection processing, and the combination of these processing that are used in relational databases. Information processing.

《問合せ実行部》
問合せ実行部307は、問合せ受付部306が取得した問合せを実行する。この際、問合せ実行部307は部分集約木管理部304を通じて、問合せの中で事前に計算した統計値が問合せ範囲によっては再利用できるか否かの情報、および再利用可能であった場合は範囲における統計値を取得する。統計値が再利用できない範囲については、ファイル操作部302を通じてファイル保持部303内のデータへアクセスし、統計値を計算する。そして、各範囲の統計値を併合することにより、問合せ実行部307は最終的な問合せ結果を構築する。
<< Inquiry execution unit >>
The inquiry execution unit 307 executes the inquiry acquired by the inquiry reception unit 306. At this time, the query execution unit 307, through the partial aggregation tree management unit 304, information about whether the statistical values calculated in advance in the query can be reused depending on the query range, and the range if reusable. To get the statistical value of. For the range in which the statistical value cannot be reused, the data in the file holding unit 303 is accessed through the file operation unit 302 to calculate the statistical value. Then, the query execution unit 307 constructs the final query result by merging the statistical values of each range.

《ファイル保持部の保持内容》
次に、ファイル保持部303の保持内容について図4を参照して説明する。
<< Contents held by file holding unit >>
Next, the contents held in the file holding unit 303 will be described with reference to FIG.

図4に示すように、ファイル保持部303は例えばテーブル400を保持し、このテーブル400は、個々の要素の識別子(ID:Identifier)401、データ402、および属するブロックの識別子(ID)403を含む。データ402としては、上記の例のように年齢、身長、および体重などのデータを有する。   As shown in FIG. 4, the file holding unit 303 holds, for example, a table 400, and the table 400 includes an identifier (ID: Identifier) 401 of each element, data 402, and an identifier (ID) 403 of a block to which the element belongs. . The data 402 includes data such as age, height, and weight as in the above example.

《部分集約木保持部の保持内容》
次に、部分集約木保持部305の保持内容について図5を参照して説明する。
<< Contents held by the partial aggregation tree holding unit >>
Next, the contents held in the partial aggregation tree holding unit 305 will be described with reference to FIG.

図5に示すように、部分集約木保持部305はテーブル500を保持し、このテーブル500は、ブロックID501、アクティブフラグ502、要素数503、統計値504、高さ(分割レベル)505、親ブロックID506、およびアクセスカウント数507を有する。   As illustrated in FIG. 5, the partial aggregation tree holding unit 305 holds a table 500, and the table 500 includes a block ID 501, an active flag 502, the number of elements 503, a statistical value 504, a height (division level) 505, and a parent block. It has an ID 506 and an access count number 507.

《ハードウェア構成の一例》
次に、本実施形態に係る情報処理装置のハードウェア構成の一例を図6を参照して説明する。
<< Example of hardware configuration >>
Next, an example of the hardware configuration of the information processing apparatus according to the present embodiment will be described with reference to FIG.

図に示すように、情報処理装置300は、CPU(Central Processing Unit)601、ROM(Read Only Memory)602、通信制御部603、およびRAM(Random Access Memory)604を備えている。さらに、情報処理部300は、ストレージ605、出力インタフェース606、表示部607、プリンタ608、および入力部610を備えている。CPU601は中央処理部であって、様々なプログラムを実行することにより情報処理装置300全体を制御する。   As illustrated, the information processing apparatus 300 includes a CPU (Central Processing Unit) 601, a ROM (Read Only Memory) 602, a communication control unit 603, and a RAM (Random Access Memory) 604. Further, the information processing unit 300 includes a storage 605, an output interface 606, a display unit 607, a printer 608, and an input unit 610. The CPU 601 is a central processing unit, and controls the entire information processing apparatus 300 by executing various programs.

ROM602は、リードオンリメモリであり、CPU601が最初に実行すべきブートプログラムの他、各種パラメータ等を記憶している。また、通信制御部603は、ネットワークを介した各種装置との通信を制御する。RAM604は、ランダムアクセスメモリであり、入力データ641、分割対象ブロックノード(集約木)642、分割済みブロック(リーフノード)643、統計値644、問合せ情報645、応答情報646、入出力データ647、および送受信データ648を含む。   The ROM 602 is a read-only memory, and stores a boot program to be executed first by the CPU 601 and various parameters. Further, the communication control unit 603 controls communication with various devices via the network. The RAM 604 is a random access memory, and includes input data 641, division target block node (aggregation tree) 642, divided block (leaf node) 643, statistical value 644, inquiry information 645, response information 646, input / output data 647, and It includes transmission / reception data 648.

また、ストレージ605は、部分集約木保持部305とファイル保持部303とを有している。さらに、ストレージ605は、データ入力モジュール651、問合せ受付モジュール652、アクセス頻度管理モジュール653、およびファイル操作モジュール654を有する。さらにまたストレージ605は、問合せ実行モジュール655、部分集約木操作モジュール656、分割指示モジュール657、およびデータ出力モジュール658等を有している。   Further, the storage 605 has a partial aggregation tree holding unit 305 and a file holding unit 303. Further, the storage 605 has a data input module 651, an inquiry reception module 652, an access frequency management module 653, and a file operation module 654. Furthermore, the storage 605 has a query execution module 655, a partial aggregation tree operation module 656, a division instruction module 657, a data output module 658, and the like.

また、入力部610は、リーダ611、キーパッド612、タッチパネル613およびこれらからの入力をCPU601に渡す入力インタフェース615を含む。ここではリーダ611は、一例としてバーコードリーダとするが、RFID(Radio Frequency Identifier)タグリーダなどでもよい。   The input unit 610 also includes a reader 611, a keypad 612, a touch panel 613, and an input interface 615 that transfers inputs from these to the CPU 601. Here, the reader 611 is, for example, a barcode reader, but may be an RFID (Radio Frequency Identifier) tag reader or the like.

一方、入力部610或いは通信制御部603を介して問合せ受付モジュール652が受け付けた問合せに対する回答は、通信制御部603を介して外部装置に送信される。或いは出力インタフェース606を介して表示部607やプリンタ608に出力される。   On the other hand, the reply to the inquiry received by the inquiry receiving module 652 via the input unit 610 or the communication control unit 603 is transmitted to the external device via the communication control unit 603. Alternatively, it is output to the display unit 607 and the printer 608 via the output interface 606.

なお、データ入力部301は、CPU601、ROM602、通信制御部603、RAM604、入力部610、およびデータ入力モジュール651によって構成される。   The data input unit 301 includes a CPU 601, a ROM 602, a communication control unit 603, a RAM 604, an input unit 610, and a data input module 651.

ファイル操作部302は、CPU601、ROM602、RAM604、およびファイル操作モジュール654によって構成される。   The file operation unit 302 includes a CPU 601, a ROM 602, a RAM 604, and a file operation module 654.

部分集約木管理部304は、CPU601、ROM602、RAM604、アクセス頻度管理モジュール653、部分集約木操作モジュール656、および分割指示モジュール657によって構成される。   The partial aggregation tree management unit 304 includes a CPU 601, a ROM 602, a RAM 604, an access frequency management module 653, a partial aggregation tree operation module 656, and a division instruction module 657.

問合せ受付部306は、CPU601、ROM602、通信制御部603、RAM604、入力部610、および問合せ受付モジュール652によって構成される。   The inquiry receiving unit 306 includes a CPU 601, a ROM 602, a communication control unit 603, a RAM 604, an input unit 610, and an inquiry receiving module 652.

問合せ実行部307は、CPU601、ROM602、RAM604、および問合せ実行モジュール655によって構成される。   The query execution unit 307 includes a CPU 601, a ROM 602, a RAM 604, and a query execution module 655.

《処理の流れ》
図7は、本実施形態の情報処理装置300において、データを入力した際に実行される処理の流れを例示するフローチャートである。ステップS701において、データ入力部301はデータを取得する。ステップS703において、ファイル操作部302はデータをファイル化する。ステップS705においてファイル操作部302はファイル保持部303へファイルを保存する。
<Process flow>
FIG. 7 is a flowchart illustrating the flow of processing executed when data is input in the information processing apparatus 300 of this embodiment. In step S701, the data input unit 301 acquires data. In step S703, the file operation unit 302 converts the data into a file. In step S705, the file operation unit 302 saves the file in the file holding unit 303.

図8Aは、本実施形態の情報処理装置300において、問合せの実行時の処理の流れを例示するフローチャートである。ステップS801において、問合せ受付部306は問合せを取得する。ステップS803において、問合せ受付部306から指示を受けた問合せ実行部307は、部分集約木管理部304を通じて問合せのあった部分集約木を探索する。さらに、ステップS805において、問合せ実行部307は、探索によって得られた部分集約木の統計処理で事前計算した統計値が再利用可能か否かを判定する。   FIG. 8A is a flowchart exemplifying the flow of processing when an inquiry is executed in the information processing apparatus 300 of this embodiment. In step S801, the inquiry reception unit 306 acquires an inquiry. In step S <b> 803, the query execution unit 307, which receives the instruction from the query reception unit 306, searches the partial aggregation tree management unit 304 for the inquired partial aggregation tree. Further, in step S805, the query execution unit 307 determines whether or not the statistical value precalculated by the statistical processing of the partial aggregation tree obtained by the search can be reused.

この判定の結果、もし再利用が可能であれば、ステップS807において、問合せ実行部307は部分集約木保持部305から事前計算した統計値を取得する。もし再利用が可能でなければ、ステップS809において、問合せ実行部307は、今後その問合せで再利用が可能になるように、部分集約木管理部304に指示し、リーフノードを分割して木の成長処理をおこなう。これにより、問合せ実行部307は、このリーフノードに対応するデータ集合を2つ以上の部分集合に分割して木を成長させる。   If the result of this determination is that reuse is possible, in step S807 the query execution unit 307 acquires the precalculated statistical value from the partial aggregation tree holding unit 305. If it cannot be reused, in step S809, the query execution unit 307 instructs the partial aggregation tree management unit 304 to reuse the query in the future, divides the leaf node into trees, and Perform growth process. As a result, the query execution unit 307 divides the data set corresponding to this leaf node into two or more subsets and grows the tree.

こうして問合せ実行部307は、問合せの実行に必要な統計値を取得し終えると、ステップS811において、それらの統計値を統合して問合せ結果を算出する。その後、ステップS813において、問合せ実行部307は部分集約木管理部304を通じて部分集約木のリーフノードに記録されているアクセス頻度を更新する。   In this way, when the query execution unit 307 finishes acquiring the statistical values necessary for executing the query, in step S811, the statistical values are integrated to calculate the query result. After that, in step S813, the query execution unit 307 updates the access frequency recorded in the leaf node of the partial aggregation tree through the partial aggregation tree management unit 304.

次に、ステップS809の処理の詳細を図8Bを参照して説明する。   Next, details of the processing in step S809 will be described with reference to FIG. 8B.

ステップ821において、問合せ実行部307が、リーフノードに対応するデータ集合を2つ以上の部分集合に分割する際、問合せ実行部307はリーフノードのアクセス頻度(アクセス数のカウント値)を取得する。次に、ステップS823において、問合せ実行部307はいずれかのリーフノードのカウント値が所定の閾値αを超えているか否かを判定する。この判定の結果、カウント値が閾値αを超えているときは、ステップS825において、問合せ実行部307はカウント値が閾値αを超えているリーフノードを分割する。次いで、ステップS827において、問合せ実行部307は、分割により新たに生成したリーフノードの統計値を算出し、ステップS811の処理に移行する。   In step 821, when the query execution unit 307 divides the data set corresponding to the leaf node into two or more subsets, the query execution unit 307 acquires the access frequency (count value of the number of accesses) of the leaf node. Next, in step S823, the query execution unit 307 determines whether or not the count value of any leaf node exceeds a predetermined threshold value α. If the result of this determination is that the count value exceeds the threshold value α, then in step S825, the query execution unit 307 divides the leaf nodes whose count value exceeds the threshold value α. Next, in step S827, the query execution unit 307 calculates the statistic value of the leaf node newly generated by the division, and proceeds to the processing of step S811.

また、ステップS823の判定の結果、カウント値が閾値αを超えていないときは、問合せ実行部307は、ステップS811の処理に移行する。   If the result of determination in step S823 is that the count value does not exceed the threshold value α, the query execution unit 307 moves to the processing in step S811.

本実施形態の情報処理装置300によれば、アクセス頻度の高い統計値を有するデータの部分集合を自動的に検出すると共にアクセス頻度の高い部分集合を分割し、分割して得た部分集合ごとに新たに統計値を算出し保持している。このため、統計処理において事前に計算した統計値を再利用できる確率が高まり、統計処理の性能が向上する。さらに、事前に設定したブロック単位すなわち事前に設定したデータの部分集合単位でなくても、事前に自動計算した統計値を再利用することができ、レコードのスキャンを省いてI/O量と計算量を削減し、属性の統計処理を高速化することができる。   According to the information processing device 300 of the present embodiment, a subset of data having a statistical value with a high access frequency is automatically detected, a subset with a high access frequency is divided, and each obtained subset is divided. Statistics are newly calculated and stored. Therefore, the probability that the statistical value calculated in advance in the statistical processing can be reused is increased, and the performance of the statistical processing is improved. Furthermore, even if it is not a preset block unit, that is, a preset subset unit of data, it is possible to reuse the statistical value calculated automatically in advance, omitting the record scan and calculating the I / O amount. The amount can be reduced and the attribute statistical processing can be speeded up.

なお、本実施形態ではデータ集合とこのデータ集合を分割した部分集合とのそれぞれにノードを割り当てた木構造として情報処理を行なったが、これに限定されることはない。
例えば、木構造を用いないで情報処理するようにしても同様の効果を得られることは言うまでもない。
In the present embodiment, information processing is performed as a tree structure in which nodes are assigned to each of the data set and the subset obtained by dividing the data set, but the present invention is not limited to this.
For example, it goes without saying that the same effect can be obtained by processing information without using a tree structure.

また、本実施形態では所定時間内のアクセス数をアクセス頻度とし、アクセス頻度の高い統計値を有する部分集合を分割したが、部分集合へのアクセス数があらかじめ設定した閾値を超えたときにアクセス頻度が高いと判定してこの部分集合を分割してもよい。   Further, in the present embodiment, the number of accesses within a predetermined time is taken as the access frequency, and a subset having a statistical value with a high access frequency is divided, but when the number of accesses to the subset exceeds a preset threshold, the access frequency is May be determined to be high, and this subset may be divided.

また、本実施形態ではアクセス頻度が高い部分集合を二分割するようにしたが、3つ以上に分割するようにしてもよい。   Further, in the present embodiment, the subset with high access frequency is divided into two, but it may be divided into three or more.

[第3実施形態]
次に本発明の第3実施形態に係る情報処理装置について、図9A〜図12Bを参照して説明する。本実施形態に係る情報処理装置は、上記第2実施形態と比べると、アクセス数のカウント値が最小のリーフノードを他のリーフノードと併合する処理を行なう点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
[Third Embodiment]
Next, an information processing apparatus according to the third embodiment of the present invention will be described with reference to FIGS. 9A to 12B. The information processing apparatus according to the present embodiment is different from the above-described second embodiment in that a leaf node having the smallest access count value is merged with another leaf node. Since other configurations and operations are similar to those of the second embodiment, the same configurations and operations are denoted by the same reference numerals and detailed description thereof will be omitted.

例えば第2実施形態と同様に年齢(age)、体重(weight)、および身長(height)の3つの属性を持つデータの集合について、年齢(age)をキー属性として図9Aに示す部分集約木が構築されていたとする。このときアクセス数が最小であるリーフノード904は、アクセス数が最小から2番目のリーフノード903と併合される。つまり、図9Aでは、[0,24]の年齢を担当するリーフノード904と、[25,49]の年齢を担当するリーフノード905と[50,100]の年齢を担当するリーフノード903とが存在する。リーフノード904のアクセス数は8、リーフノード903のアクセス数は10、リーフノード905のアクセス数は50である。したがって、リーフノード904のアクセス数が最小であり、リーフノード903のアクセス数が最小から2番目となる。したがってリーフノード903とリーフノード904とが併合され、図9Bの部分集約木が構築される。なお、リーフノードを併合した際、新たに生成されたリーフノードのアクセス数(access count [count: x])は初期化されて0になる。   For example, for a set of data having three attributes of age (age), weight (weight), and height (height) as in the second embodiment, the partial aggregation tree shown in FIG. It was built. At this time, the leaf node 904 having the smallest access number is merged with the leaf node 903 having the second smallest access number. That is, in FIG. 9A, a leaf node 904 in charge of the age of [0,24], a leaf node 905 in charge of the age of [25,49], and a leaf node 903 in charge of the age of [50,100] are provided. Exists. The leaf node 904 has 8 accesses, the leaf node 903 has 10 accesses, and the leaf node 905 has 50 accesses. Therefore, the leaf node 904 has the smallest number of accesses, and the leaf node 903 has the second largest number of accesses. Therefore, the leaf node 903 and the leaf node 904 are merged, and the partial aggregation tree of FIG. 9B is constructed. When the leaf nodes are merged, the access count (access count [count: x]) of the newly generated leaf node is initialized to 0.

このようにアクセス数(アクセス頻度)が小さいリーフノードを併合することで、統計値の数を減らすことができ、統計値を保持しておく記憶領域(統計値全体の保持サイズ)を減らすことができる。   By merging leaf nodes with a small number of accesses (access frequency) in this way, the number of statistical values can be reduced, and the storage area for storing the statistical values (holding size of the entire statistical values) can be reduced. it can.

《本実施形態の機能構成》
図10は、本実施形態に係る情報処理装置の構成を説明するための機能ブロック図である。本実施形態に係る情報処理装置1000は、上記第2実施形態と比べると、部分集約木操作部1041と併合指示部1044とを備えた部分集約木管理部1001を有する点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
<< Functional configuration of this embodiment >>
FIG. 10 is a functional block diagram for explaining the configuration of the information processing device according to the present embodiment. The information processing apparatus 1000 according to the present embodiment is different from that of the second embodiment in that it includes a partial aggregation tree management unit 1001 including a partial aggregation tree operation unit 1041 and a merge instruction unit 1044. Since other configurations and operations are similar to those of the second embodiment, the same configurations and operations are denoted by the same reference numerals and detailed description thereof will be omitted.

部分集約木操作部1041は、分割指示部342の指示に基づいて、データ集合を2つ以上の部分集合に分割し、分割した部分集合ごとにデータの統計値を算出する。さらに、部分集約木操作部1041は、併合指示部1044の指示に基づいて、2つ以上の部分集合を1つに併合し、併合して得られた部分集合の統計値を算出する。ここでは、リーフノードおよびこのリーフノードのデータを部分集合と称している。   The partial aggregation tree operation unit 1041 divides the data set into two or more subsets based on the instruction of the division instruction unit 342, and calculates a statistical value of data for each divided subset. Further, the partial aggregation tree operation unit 1041 merges two or more subsets into one based on the instruction of the merge instruction unit 1044, and calculates the statistical value of the subset obtained by the merge. Here, the leaf node and the data of this leaf node are called a subset.

併合指示部1044は、アクセス頻度管理部343が管理するアクセス頻度に基づいて、アクセス頻度が最小の部分集合に関して、他のアクセス頻度の低い部分集合と併合した部分集合を生成するように部分集約木操作部1041に指示する。なお、隣接する部分集のどちらもアクセス頻度が低いときはこれらを併合する。また、アクセス頻度が最小の部分集合に隣接する部分集合のアクセス頻度が所定値Rよりも大きい場合、アクセス頻度が最小の部分集合と隣接しない部分集合と併合する。この際、アクセス頻度が最小の部分集合を、アクセス頻度が所定値Q(<R)以下の部分集合と併合する。また、併合する部分集合の数は3つ以上であってもよい。   The merging instructing unit 1044 generates a partial aggregation tree based on the access frequency managed by the access frequency managing unit 343 so as to generate a subset merged with another subset having a low access frequency with respect to the subset having the lowest access frequency. Instruct the operation unit 1041. If both adjacent sub-sets have low access frequency, they are merged. When the access frequency of the subset adjacent to the subset with the lowest access frequency is larger than the predetermined value R, the subset with the lowest access frequency is merged with the non-adjacent subset. At this time, the subset having the lowest access frequency is merged with the subset having the access frequency equal to or lower than the predetermined value Q (<R). Further, the number of merged subsets may be three or more.

《本実施形態のハードウェア構成》
図11は本実施形態に係る情報処理装置1000のハードウェア構成を説明するためのブロック図である。本実施形態に係る情報処理装置1000は、上記第2実施形態と比べると、RAM604に閾値1141を有するとともにストレージ605に併合指示モジュール1151有する点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
<< Hardware configuration of the present embodiment >>
FIG. 11 is a block diagram for explaining the hardware configuration of the information processing apparatus 1000 according to this embodiment. The information processing apparatus 1000 according to the present embodiment is different from the second embodiment in that the RAM 604 has a threshold value 1141 and the storage 605 has a merge instruction module 1151. Since other configurations and operations are similar to those of the second embodiment, the same configurations and operations are denoted by the same reference numerals and detailed description thereof will be omitted.

《処理の流れ》
本実施形態の情報処理装置1000における問合せ受け入れ時の処理は、リーフノードの併合処理が加わる点において第2実施形態と異なる。図12Aに本実施形態における問合せ受け入れ時の処理のフローチャートを示して説明する。なお、第2実施形態における処理と同一部分は同一符号をもって表わし、その説明を省略する。本実施形態の処理と第2実施形態の処理では、ステップS809とステップS811の間にステップS1201、およびS1202の処理が加わった点において異なる。すなわち、ステップS809の処理の後、ステップS1201において、問合せ実行部307は、部分集約木管理部1001を通じて、保持する統計値の数すなわちリーフノードの数が、事前に入力部610を介して設定された許容最大数を超過するか否かを判定する。
<Process flow>
The processing at the time of accepting an inquiry in the information processing apparatus 1000 of this embodiment differs from that of the second embodiment in that leaf node merging processing is added. FIG. 12A will be described with reference to the flowchart of the process at the time of accepting an inquiry in this embodiment. The same parts as those in the second embodiment are represented by the same reference numerals, and the description thereof will be omitted. The process of the present embodiment and the process of the second embodiment are different in that the processes of steps S1201 and S1202 are added between steps S809 and S811. That is, after the processing of step S809, in step S1201, the query execution unit 307 sets the number of statistic values to be held, that is, the number of leaf nodes, in advance via the input unit 610 through the partial aggregation tree management unit 1001. The maximum allowable number is exceeded.

この判定の結果、もし統計値の数が許容最大数以下であれば、ステップS811に移行する。また、ステップS1201の判定の結果、もし統計値の数が許容最大数を超過するようであれば、ステップS1202において、部分集約木管理部1001は、リーフノードに記録されている部分集合へのアクセス頻度を確認し、アクセス頻度が所定値以下のリーフノードを併合する。このようにすることで、統計値の数を減らして許容最大数内に収まるように木を縮退する。ここで、木の縮退とはリーフノードの数を減らすことである。
こうして問合せの実行に必要な統計値を取得し終えると、ステップS811において、問合せ実行部307はそれらの統計値を統合して問合せ結果を算出する。
If the result of this determination is that the number of statistical values is less than or equal to the maximum allowable number, then the flow shifts to step S811. If the result of determination in step S1201 indicates that the number of statistical values exceeds the maximum allowable number, in step S1202 the partial aggregation tree management unit 1001 accesses the subset recorded in the leaf node. Check the frequency, and merge the leaf nodes whose access frequency is less than a predetermined value. By doing so, the number of statistical values is reduced and the tree is degenerated so that it is within the maximum allowable number. Here, degeneracy of the tree means reducing the number of leaf nodes.
When the acquisition of the statistical values required for executing the inquiry is completed in this way, in step S811, the inquiry execution unit 307 integrates the statistical values and calculates the inquiry result.

次に、ステップ1202の処理の詳細を図12Bを参照して説明する。   Next, details of the processing in step 1202 will be described with reference to FIG. 12B.

ステップ1221において、問合せ実行部307が、アクセス数が最小のリーフノードに対応する部分集合を他のリーフノードの部分集合と併合する際、問合せ実行部307はリーフノードのアクセス頻度(アクセス数のカウント値)を取得する。次に、ステップS1223において、問合せ実行部307は、最小のアクセスカウント値のノードを選択する。ステップS1225において、問合せ実行部307は、このカウント値が最小のノードの両隣のノードのカウント値を取得する。さらに、ステップS1227において、問合せ実行部307は、両隣のノードのうちアクセスカウント値が小さい方のノードと併合して新たなリーフノードおよびデータを生成する。次いで、ステップS1229において、問合せ実行部307は、併合によって得られたリーフノードのデータの統計値を算出する。この後、問合せ実行部307は、ステップS1015の処理に移行する。   In step 1221, when the query execution unit 307 merges the subset corresponding to the leaf node with the smallest access count with the subset of another leaf node, the query execution unit 307 determines that the access frequency of the leaf node (count of the access count). Value). Next, in step S1223, the query execution unit 307 selects the node having the minimum access count value. In step S1225, the query execution unit 307 acquires the count values of the nodes on both sides of the node with the smallest count value. Further, in step S1227, the query execution unit 307 merges with the node having the smaller access count value from the nodes on both sides to generate a new leaf node and new data. Next, in step S1229, the query execution unit 307 calculates the statistical value of the leaf node data obtained by the merge. After that, the query execution unit 307 proceeds to the process of step S1015.

上記第2実施形態においては、リーフノードの分割処理を繰り返し行なうほど木は成長し、より細かな単位で統計値が計算されていく。これによって統計値を再利用できる確率は高まる。しかし、データ集合を分割するたびに統計値の数が増えるため、部分集約木のデータサイズが肥大化しうる。そのため、本実施形態では、部分集約木が保持する統計値の最大許容数を設定し、リーフノードの分割後に統計値数がその最大許容数を超えた場合は、適切なリーフノードを併合することで、統計値数がその最大許容数を超えないよう保つようにしている。つまり、あまり参照されないデータ領域を含む部分集合については細かな単位で統計値を保つ必要がない。このため、部分集約木はリーフノードに対応するデータの部分集合に対する利用者のアクセス頻度を記憶し、「最も参照されないリーフノード」に対応するデータの部分集合を、隣接する少なくとも1つの部分集合との併合の対象に選ぶ。この際、併合対象となる2つもしくは3つのアクセス頻度の平均値を算出し、この平均値が所定値以下のときに併合を行なう。これにより、アクセス頻度の低い部分集合と、アクセス頻度の高い部分集合との併合を回避することができる。尚、隣接する部分集合のうちのアクセス頻度が小さい方の部分集合と併合しても良い。また、隣接する部分集合のアクセス頻度が所定の閾値以上であるときは、アクセス頻度が所定の閾値以下であれば、隣接しない部分集合同士を併合しても良い。また、併合する部分集合の数は3つ以上であっても良い。   In the second embodiment, the tree grows as the leaf node division processing is repeated, and the statistical value is calculated in smaller units. This increases the probability that the statistics will be reused. However, since the number of statistical values increases each time the data set is divided, the data size of the partial aggregation tree can be enlarged. Therefore, in the present embodiment, the maximum allowable number of statistic values held by the partial aggregation tree is set, and if the number of statistic values exceeds the maximum allowable number after dividing the leaf node, an appropriate leaf node is merged. So I try to keep the number of stats below the maximum allowed. In other words, it is not necessary to maintain statistical values in small units for a subset that includes data areas that are rarely referenced. Therefore, the partial aggregation tree stores the access frequency of the user to the subset of the data corresponding to the leaf nodes, and the subset of the data corresponding to the “least referenced leaf node” is defined as at least one adjacent subset. Choose to be merged. At this time, an average value of two or three access frequencies to be merged is calculated, and when the average value is less than or equal to a predetermined value, the merge is performed. This makes it possible to avoid merging a subset with low access frequency and a subset with high access frequency. It should be noted that the adjacent subset may be merged with the one with a lower access frequency. Further, when the access frequency of the adjacent subsets is equal to or higher than the predetermined threshold, the non-adjacent subsets may be merged as long as the access frequency is equal to or lower than the predetermined threshold. Further, the number of merged subsets may be three or more.

なお、アクセス頻度の管理には単純なLRU(Least Recently Used)アルゴリズム(http://en.wikipedia.org/wiki/Page_replacement_algorithm#Least_recently_used)を用いてもよい。また、その軽量な代替アルゴリズムであるClock(http://en.wikipedia.org/wiki/Page_replacement_algorithm#Clock)を用いてもよい。   Note that a simple LRU (Least Recently Used) algorithm (http://en.wikipedia.org/wiki/Page_replacement_algorithm#Least_recently_used) may be used to manage the access frequency. Alternatively, Clock (http://en.wikipedia.org/wiki/Page_replacement_algorithm#Clock), which is a lightweight alternative algorithm, may be used.

部分集約木管理部1001におけるリーフノードの併合処理は、同じ親ノードを持つ2つの隣接するリーフノードが担当する領域を併合して新たなリーフノードを生成し、親ノードを新たなリーフノードで置き換える。この際、新たなリーフノードの統計値を計算する必要があるが、これは元々の2つのリーフノードの持つ統計値を併合することで、実施可能である。すなわち、実際のデータをもう一度スキャンして統計値を再計算する必要はない。例えば左のリーフノードが最大値70を有し、右のリーフノードが最大値150を持っていた場合、併合されたリーフノードの最大値はMax(70,150)に基づいて150であることがわかる。   The leaf node merging process in the partial aggregation tree management unit 1001 merges the areas in charge of two adjacent leaf nodes having the same parent node to generate a new leaf node, and replaces the parent node with the new leaf node. . At this time, it is necessary to calculate the statistic value of the new leaf node, but this can be implemented by merging the statistic values of the two original leaf nodes. That is, there is no need to scan the actual data again to recalculate the statistics. For example, if the left leaf node had a maximum value of 70 and the right leaf node had a maximum value of 150, the maximum value of the merged leaf node would be 150 based on Max (70,150). Recognize.

次に、具体的な一例を説明する。ここでは、部分集約木を利用して統計処理をおこなうアルゴリズムについて述べる。まず、次の関数compare(range, query)を考える。
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)」のどれかの値を返す。
Next, a specific example will be described. Here, we describe an algorithm for statistical processing using a partial aggregation tree. First, consider the following function compare (range, query).
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;
}
The function compare (range, query) receives the range [range.min, range.max] of the key attributes of a node and the refinement condition [query.min, query.max] for the key attributes in the query, and then the node. "All data is outside the range of the query (OUTSIDE_QUERY)", "Some data is within the range of the query (PART_DATA_IN_QUERY)", "All data is within the range of the query (ALL_DATA_IN_QUERY)" Returns one of the values.

そして、木の探索関数computeAggregation(node, 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)」のどれになるかを判定する。
Then, the tree search function computeAggregation (node, query) is as follows.
function computeAggregation (node, query) {
// Check if the data under this node is inside or outside the range of query
// Check using the compare function
answer = compare (node.range, query);
if (answer == OUTSIDE_QUERY) {
// The data under node is outside the range of query, so do not search further
return null;
}
if (answer == ALL_DATA_IN_QUERY) {
// All the data under node is within the range of query, so we will use the statistical values calculated in advance
return node.getPrecomputedAggregations ();
}
if (answer == PART_DATA_IN_QUERY) {
if (node instanceof LeafNode) {
// I searched to the leaf node but could not reuse it
// Split the node so that it can be reused in this section in the future
// Read the data from the data holding part and calculate the statistical value
node.split (query);
}
// search to reuse statistics of its own children
var leftAggregations = computeAggregation (node.leftChild, query);
var rightAggregations = computeAggregation (node.leftChild, query);
// Merge and return the stats from both children
return leftAggregations.merge (rightAggregations);
}
}
This function recursively searches the partial aggregation tree, and each node "all data is out of the query range (OUTSIDE_QUERY)", "some data is within the query range (PART_DATA_IN_QUERY)", "all data" Within the range of the query (ALL_DATA_IN_QUERY) ”is determined.

そして、
もし「全てのデータが問合せの範囲外 (OUTSIDE_QUERY)」であれば、そのノード以下のノードは問合せの対象外であり、探索しても無駄であるため、そのノードよりも下位のノードの探索を打ち切る。
And
If "all data is outside the range of the query (OUTSIDE_QUERY)", the nodes below that node are out of the target of the query, and searching is useless. abort.

もし「いくつかのデータが問合せの範囲内 (PART_DATA_IN_QUERY)」であれば、そのノードの粒度では統計値の再利用はできない。しかし、下位のノードはより細粒度に統計値を計算しており再利用できる場合があるため、下位ノードについて再帰的に探索を続ける。そのノードが子供を持たない場合は、将来同じ問合せが来た場合に統計値が再利用できるように、そのノードを分割する。   If "some data is within the range of the query (PART_DATA_IN_QUERY)", the statistical value cannot be reused at the granularity of the node. However, since the lower node calculates the statistical value in a finer granularity and may be reused, the lower node continues the search recursively. If the node has no children, split the node so that statistics can be reused if the same query comes in the future.

もし「全てのデータが問合せの範囲内 (ALL_DATA_IN_QUERY)」であれば、そのノードに関するデータは全て問合せの対象となっているため、事前に計算した統計値を使いまわす、ということをおこなう。あとは、各ノードから統計値が得られていた場合、統計値の統合処理をおこない、最終的な問合せ結果を算出する。   If "all the data is within the range of the query (ALL_DATA_IN_QUERY)", all the data related to the node is subject to the query, and the statistical value calculated in advance is reused. After that, when the statistical value is obtained from each node, the statistical value is integrated and the final inquiry result is calculated.

なお、本実施形態ではデータ集合とこのデータ集合を分割した部分集合とのそれぞれにノードを割り当てた木構造として情報処理を行なった。しかし、これに限定されることはなく、木構造を用いないで情報処理するようにしても同様の効果を得られることは言うまでもない。   In this embodiment, information processing is performed as a tree structure in which nodes are assigned to each of the data set and the subset obtained by dividing the data set. However, the present invention is not limited to this, and it goes without saying that the same effect can be obtained even if information processing is performed without using a tree structure.

また、本実施形態では所定時間内のアクセス数をアクセス頻度とし、アクセス頻度の高い統計値を有する部分集合を分割したが、部分集合へのアクセス数があらかじめ設定した閾値を超えたときにアクセス頻度が高いと判定してこの部分集合を分割してもよい。   Further, in the present embodiment, the number of accesses within a predetermined time is taken as the access frequency, and a subset having a statistical value with a high access frequency is divided, but when the number of accesses to the subset exceeds a preset threshold, the access frequency is May be determined to be high, and this subset may be divided.

また、本実施形態ではアクセス頻度が高い部分集合を二分割するようにしたが、3つ以上に分割するようにしてもよい。   Further, in the present embodiment, the subset with high access frequency is divided into two, but it may be divided into three or more.

本実施形態によれば、統計処理において事前に計算した統計値を再利用できる確率が高まり、統計処理の性能が向上する。さらに、事前に設定した部分集合単位でなくても、事前に自動計算した統計値を再利用することができ、レコードのスキャンを省いてI/O量と計算量を削減し、属性の統計処理を高速化することができる。さらにまた、アクセス頻度が低いデータ領域を含む部分集合は、自動的に隣接する少なくとも1つの部分集合と併合され、統計値の数が常に最大許容数以下に保たれるので、データサイズの肥大化を防止でき、データ検索効率の低下を防止することができる。   According to this embodiment, the probability that the statistical value calculated in advance in the statistical processing can be reused is increased, and the performance of the statistical processing is improved. Furthermore, it is possible to reuse the statistical values that have been automatically calculated in advance without using the preset subset unit, omit the scan of records, reduce the I / O amount and the calculation amount, and perform the statistical processing of attributes. Can be speeded up. Furthermore, a subset including a data area with low access frequency is automatically merged with at least one adjacent subset, and the number of statistics is always kept below the maximum allowable number. Can be prevented, and a decrease in data search efficiency can be prevented.

[他の実施形態]
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
[Other Embodiments]
Although the present invention has been described with reference to the exemplary embodiments, the present invention is not limited to the above exemplary embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention. Further, a system or apparatus in which any combination of different features included in each embodiment is included in the scope of the present invention.

また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。   Further, the present invention may be applied to a system composed of a plurality of devices or may be applied to a single device. Furthermore, the present invention can be applied to a case where an information processing program that realizes the functions of the embodiments is directly or remotely supplied to a system or an apparatus. Therefore, in order to realize the functions of the present invention by a computer, a program installed in the computer, a medium storing the program, and a WWW (World Wide Web) server for downloading the program are also included in the scope of the present invention. . In particular, a non-transitory computer readable medium storing a program that causes a computer to execute at least the processing steps included in the above-described embodiments is included in the scope of the present invention.

[実施形態の他の表現]
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記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つの部分集合に分割する分割ステップと、
分割された前記部分集合ごとに統計値を算出する算出ステップと、
をコンピュータに実行させる情報処理プログラム。
[Other Expressions of Embodiment]
The whole or part of the exemplary embodiments disclosed above can be described as, but not limited to, the following supplementary notes.
(Appendix 1)
Access frequency management means for storing and managing the access frequency to a set of data,
Dividing means for dividing the set having the access frequency equal to or higher than a first predetermined value into at least two subsets;
Calculating means for calculating a statistical value for each of the divided subsets,
Information processing device provided with.
(Appendix 2)
The information processing apparatus according to appendix 1, wherein the dividing unit initializes an access frequency of the divided subset.
(Appendix 3)
3. The information processing apparatus according to appendix 1 or 2, wherein the dividing unit executes the division when the statistical value is accessed.
(Appendix 4)
4. The information processing device according to any one of appendices 1 to 3, further comprising a management unit that manages the statistical values included in the subset as a tree structure.
(Appendix 5)
5. The information processing apparatus according to any one of appendices 1 to 4, further comprising a merging unit that merges at least two of the subsets when the overall size of the statistical value exceeds a predetermined maximum value.
(Appendix 6)
4. The information processing apparatus according to any one of appendices 1 to 3, further comprising a merging unit that merges the subset having the lowest access frequency with at least one subset other than the subset.
(Appendix 7)
5. The information processing apparatus according to appendix 4, wherein the merging unit merges the subset having the lowest access frequency with a subset adjacent to the subset.
(Appendix 8)
6. The information processing apparatus according to attachment 5, wherein the merging unit merges with the adjacent subset with the smaller access frequency when there are two adjacent subsets.
(Appendix 9)
Note 6 wherein the merging unit merges the subset with the lowest access frequency with a subset that is not adjacent to the subset if the access frequency of the subset adjacent to the subset is larger than a second predetermined value. The information processing device according to 1.
(Appendix 10)
7. The information processing apparatus according to appendix 6, wherein the merging unit merges the subset having the minimum access frequency with the subset having the access frequency equal to or lower than a third predetermined value.
(Appendix 11)
11. The information processing apparatus according to appendix 10, wherein the merging unit merges the subset with the smallest access frequency with the next smallest subset with the smallest access frequency.
(Appendix 12)
The information processing apparatus according to appendix 5, further comprising a setting unit that sets the maximum value.
(Appendix 13)
An access frequency management step of storing and managing the access frequency to a set of data,
A dividing step of dividing the set having the access frequency of a first predetermined value or more into at least two subsets;
A calculation step of calculating a statistical value for each of the divided subsets,
Information processing method including.
(Appendix 14)
An access frequency management step of storing and managing the access frequency to a set of data,
A dividing step of dividing the set having the access frequency of a first predetermined value or more into at least two subsets;
A calculation step of calculating a statistical value for each of the divided subsets,
An information processing program that causes a computer to execute.

この出願は、2015年5月7日に出願された日本出願特願2015−094625を基礎とする優先権を主張し、その開示の全てをここに取り込む。   This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2015-094625 for which it applied on May 7, 2015, and takes in those the indications of all here.

Claims (9)

データの集合へのアクセス頻度を記憶して管理するアクセス頻度管理手段と、
前記アクセス頻度が第1所定値以上の前記集合を少なくとも2つの部分集合に分割する分割手段と、
分割された前記部分集合ごとに、当該部分集合に含まれる前記データの統計値を算出する算出手段と、
を備え
前記分割手段は、対象部分集合の統計値の問合せがあったときに、前記対象部分集合の前記統計値が算出されていない場合、前記対象部分集合を包含する前記部分集合を分割することにより前記対象部分集合を生成し、
前記算出手段は、当該対象部分集合の前記統計値を算出する
情報処理装置。
Access frequency management means for storing and managing the access frequency to a set of data,
Dividing means for dividing the set having the access frequency equal to or higher than a first predetermined value into at least two subsets;
For each of the divided subsets, calculation means for calculating a statistical value of the data included in the subset ,
Equipped with
The dividing unit divides the subset including the target subset by dividing the subset including the target subset when the statistical value of the target subset is not calculated when the statistical value of the target subset is inquired. Generate the target subset,
The calculation means is an information processing apparatus for calculating the statistical value of the target subset .
前記分割手段は、分割された前記部分集合のアクセス頻度を初期化する、請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the dividing unit initializes an access frequency of the divided subset. 前記部分集合に含まれる前記統計値を木構造として管理する管理手段をさらに備えた、請求項1又は2に記載の情報処理装置。 The statistics included in the subset further comprising management means for managing as a tree structure, the information processing apparatus according to claim 1 or 2. 前記統計値の全体サイズが所定の最大値を超えた場合に、少なくとも2つの前記部分集合を併合する併合手段をさらに備えた、請求項1乃至のいずれか1項に記載の情報処理装置。 Wherein if the entire length of the statistics value exceeds a predetermined maximum value, further comprising merging means for merging at least two of the subsets, the information processing apparatus according to any one of claims 1 to 3. 前記併合手段は、前記アクセス頻度が最小の部分集合を、該部分集合以外の少なくとも1つの部分集合と併合する、請求項に記載の情報処理装置。 The information processing apparatus according to claim 4 , wherein the merging unit merges the subset having the lowest access frequency with at least one subset other than the subset. 前記併合手段は、前記アクセス頻度が最小の部分集合を、該部分集合に隣接する部分集合と併合する、請求項に記載の情報処理装置。 The information processing apparatus according to claim 5 , wherein the merging unit merges the subset having the minimum access frequency with a subset adjacent to the subset. 前記併合手段は、前記隣接する部分集合が2つある場合、前記アクセス頻度が小さい方の前記隣接する部分集合と併合する、請求項に記載の情報処理装置。 7. The information processing apparatus according to claim 6 , wherein the merging unit merges with the adjacent subset having the smaller access frequency when there are two adjacent subsets. データの集合へのアクセス頻度を記憶して管理し、
前記アクセス頻度が第1所定値以上の前記集合を少なくとも2つの部分集合に分割し、
分割された前記部分集合ごとに、当該部分集合に含まれる前記データの統計値を算出し、
対象部分集合の統計値の問合せがあったときに、前記対象部分集合の前記統計値が算出されていない場合、前記対象部分集合を包含する前記部分集合を分割することにより前記対象部分集合を生成し、
当該対象部分集合の前記統計値を算出する
情報処理方法。
Store and manage the frequency of access to a set of data,
Dividing the set with the access frequency of a first predetermined value or more into at least two subsets,
For each of the divided subsets, calculate the statistical value of the data included in the subset ,
When the statistic value of the target subset is inquired, if the statistic value of the target subset is not calculated, the target subset is generated by dividing the subset including the target subset. Then
An information processing method for calculating the statistical value of the target subset .
データの集合へのアクセス頻度を記憶して管理するアクセス頻度管理処理と、
前記アクセス頻度が第1所定値以上の前記集合を少なくとも2つの部分集合に分割する分割処理と、
分割された前記部分集合ごとに、当該部分集合に含まれる前記データの統計値を算出する算出処理と、
をコンピュータに実行させ
前記分割処理は、対象部分集合の統計値の問合せがあったときに、前記対象部分集合の前記統計値が算出されていない場合、前記対象部分集合を包含する前記部分集合を分割することにより前記対象部分集合を生成し、
前記算出処理は、当該対象部分集合の前記統計値を算出する
情報処理プログラム。
An access frequency management process of storing and managing the access frequency to a set of data,
A division process for dividing the set having the access frequency of a first predetermined value or more into at least two subsets;
For each of the divided subsets, a calculation process of calculating a statistical value of the data included in the subset ,
To the computer ,
In the division processing, when the statistic value of the target subset is inquired, if the statistic value of the target subset has not been calculated, by dividing the subset including the target subset, Generate the target subset,
The calculation process is an information processing program for calculating the statistical value of the target subset .
JP2017516551A 2015-05-07 2016-04-26 Information processing apparatus, information processing method, and recording medium storing information processing program Active JP6683200B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015094625 2015-05-07
JP2015094625 2015-05-07
PCT/JP2016/002184 WO2016178313A1 (en) 2015-05-07 2016-04-26 Information processing device, information processing method, and recording medium that stores information processing program

Publications (2)

Publication Number Publication Date
JPWO2016178313A1 JPWO2016178313A1 (en) 2018-03-15
JP6683200B2 true JP6683200B2 (en) 2020-04-15

Family

ID=57218538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017516551A Active JP6683200B2 (en) 2015-05-07 2016-04-26 Information processing apparatus, information processing method, and recording medium storing information processing program

Country Status (2)

Country Link
JP (1) JP6683200B2 (en)
WO (1) WO2016178313A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7193721B2 (en) * 2019-01-31 2022-12-21 富士通株式会社 Information processing device and database search program

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62296226A (en) * 1986-06-16 1987-12-23 Fujitsu Ltd Index processing system for index sequence arranging file
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 (en) * 2004-10-25 2006-05-11 Hewlett-Packard Development Co Lp Database system and method thereof
JP5678790B2 (en) * 2011-05-02 2015-03-04 富士通株式会社 Index management method, index management program, and index management apparatus

Also Published As

Publication number Publication date
JPWO2016178313A1 (en) 2018-03-15
WO2016178313A1 (en) 2016-11-10

Similar Documents

Publication Publication Date Title
US9519687B2 (en) Minimizing index maintenance costs for database storage regions using hybrid zone maps and indices
CN111563101B (en) Execution plan optimization method, device, equipment and storage medium
US9576011B2 (en) Indexing hierarchical data
KR102368775B1 (en) Method, apparatus, device and storage medium for managing index
CN106294695A (en) A kind of implementation method towards the biggest data search engine
CN110019267A (en) A kind of metadata updates method, apparatus, system, electronic equipment and storage medium
CN111506621A (en) Data statistical method and device
US11675769B2 (en) On-demand, dynamic and optimized indexing in natural language processing
KR102726490B1 (en) System for providing vector database indexing service based on retrieval augmented generation
CN110968579A (en) Execution plan generation and execution method, database engine and storage medium
US11132345B2 (en) Real time indexing
Karras et al. Query optimization in NoSQL databases using an enhanced localized R-tree index
JP6642435B2 (en) Data processing device, data processing method, and program
KR101955376B1 (en) Processing method for a relational query in distributed stream processing engine based on shared-nothing architecture, recording medium and device for performing the method
JP6683200B2 (en) Information processing apparatus, information processing method, and recording medium storing information processing program
US8200673B2 (en) System and method for on-demand indexing
US20260003909A1 (en) Methods and apparatuses for importing graph data online and graph database systems
Roy et al. A proposal for optimization of data node by horizontal scaling of name node using big data tools
US10726013B2 (en) Information processing device, information processing method, and recording medium
CN105740371A (en) Density-based incremental clustering data mining method and system
Chaudhry et al. A hash-based index for processing frequent updates and continuous location-based range queries
CN117093598B (en) Data retrieval method, system, device and storage medium
US12182158B2 (en) Information processing apparatus, method and program
Ren et al. Approximate Sub-graph Matching over Knowledge Graph
Al-Hamodi et al. MapReduce frequent itemsets for mining association rules

Legal Events

Date Code Title Description
A521 Request for written amendment filed

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 Request for written amendment filed

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