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 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 OR CALCULATING; 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
本発明は、情報処理装置、情報処理方法および情報処理プログラムに関する。 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
しかしながら、上記文献に記載の技術では、事前に設定したブロック単位でなくてはブロック単位で事前に計算した統計値を効率的に再利用することができず、統計処理を高速化することができなかった。 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.
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素はあくまで例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。 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
The
アクセス頻度管理部101は、データの集合へのアクセス頻度を記憶して管理する。
The access
分割部102は、アクセス頻度管理部101が管理するアクセス頻度に基づいて、アクセス頻度が第1所定値以上の集合を少なくとも2つに分割した部分集合を生成する。
The dividing
統計値算出部103は、分割した部分集合ごとに統計値を算出する。
The statistical
本実施形態によれば、アクセス頻度に応じて分割された部分集合が自動的に生成され、生成された部分集合の統計値が自動的に算出される。これにより、事前に設定したブロック単位(部分集合単位)でなくても、事前に計算した統計値を効率的に再利用することができ、統計処理を高速化することができる。 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
さらに、アクセス頻度が所定の閾値を超えたリーフノードに対して、リーフノード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
なお、図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
《データ入力部》
データ入力部301は、情報処理装置300の処理対象となるデータを入力する。データ形式の例は、関係データベースシステムにおけるテーブルデータである。テーブルデータは表形式のデータであり、表の行はひとつのレコード(例:職員の情報)、表の各列はレコードの属性値(例:職員の年齢、身長、性別など)となる。<Data input section>
The
データ入力部301がデータを取得する方法は様々である。例えばデータ入力部301は、外部の装置から入力されるデータを取得する。その他にも例えば、データ入力部301は、手動でデータを入力する。さらにデータ入力部301は、外部の装置に対して通信などによってアクセスして、データを入力してもよい。
There are various methods by which the
《ファイル操作部》
ファイル操作部302は、ファイルの生成処理とファイルの読み込み処理をおこなう。
ファイルの生成処理は、データ入力部301から入力されたデータを主記憶装置や二次記憶装置などの記憶装置に記憶するためにファイル化し、ファイル保持部303へ保持する処理である。ファイル操作部302は、ファイルの読み込み処理において、問合せ実行部307から、データが保持されているファイル名、読み込みを開始するオフセット値、そして読み込むデータのサイズを受け取る。さらに、ファイル操作部302は、ファイル読み込み処理において、対応するデータをファイル保持部303から取得して、問合せ実行部307へ返却する。<File operation part>
The
The file generation process is a process of converting the data input from the
《ファイル保持部》
ファイル保持部303は、ファイル操作部302の生成したファイルを記憶装置に保持する。記憶装置は主記憶装置であってもよいし、二次記憶装置であってもよい。<File holding section>
The
《部分集約木保持部》
部分集約木保持部305は、ファイル保持部303が保持するデータに対して部分的に統計値を計算し、その結果を保持する。ここでは統計値の保持につかわれるデータ構造を部分集約木(Partial Aggregation Tree)と称する。部分集約木は二分木(Binary Tree)にもとづくデータ構造であり、非特許文献1に記載の「統計値処理において事前計算した統計値を再利用する処理」を高速化するために用いられる。<Partially aggregated tree holding unit>
The partial aggregation
部分集約木は、少なくとも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
《部分集約木管理部》
部分集約木管理部304は、部分集約木操作部341と分割指示部342とアクセス頻度管理部343とを含む。<< Partial Aggregation Tree Management Department >>
The partial aggregation
部分集約木操作部341は、データ集合を2つ以上の部分集合に分割し、分割した部分集合ごとにデータの統計値を算出する。
The partial aggregation
分割指示部342は、アクセス頻度管理部343が管理するアクセス頻度に基づいて、アクセス頻度の高い部分集合に関して、さらに分割した部分集合を生成するように部分集約木操作部341に指示する。
Based on the access frequency managed by the access
アクセス頻度管理部343は、各部分集合へのアクセス頻度を記憶して管理する。なお、アクセス頻度管理部343が管理するアクセス頻度としては、例えば所定時間内におけるアクセス数がある。
The access
部分集約木管理部304は、問合せ実行部307の問合せに基づいて、部分集約木保持部305に保持されている部分集約木の操作を部分集約木操作部341を用いて行なう。
さらに、部分集約木管理部304は、アクセス頻度管理部343を用いて、問合せ実行部307からの問合せ対象となるデータを含む部分集合へのアクセス数を計数してその計数値を管理する。The partial aggregation
Further, the partial aggregation
部分集約木操作部341が行なう操作には、リーフノードの分割、リーフノードの併合、そして統計処理の実行がある。
The operations performed by the partial aggregation
《問合せ受付部》
問合せ受付部306は、ファイル保持部303に保持されているデータに対する処理の指示を取得する。指示の記述に使われる方式の例としては、データに対する問合せを記述するプログラミング言語の一種であるSQL(Structured Query Language)がある。<< Inquiry reception section >>
The
問合せの例としては、データから最大値、最小値、平均値、および標準偏差などの統計値を集計する処理や、関係データベースで用いられる選択、結合、射影処理、およびこれらの処理の組み合わせによる複雑な情報処理などがある。 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
《ファイル保持部の保持内容》
次に、ファイル保持部303の保持内容について図4を参照して説明する。<< Contents held by file holding unit >>
Next, the contents held in the
図4に示すように、ファイル保持部303は例えばテーブル400を保持し、このテーブル400は、個々の要素の識別子(ID:Identifier)401、データ402、および属するブロックの識別子(ID)403を含む。データ402としては、上記の例のように年齢、身長、および体重などのデータを有する。
As shown in FIG. 4, the
《部分集約木保持部の保持内容》
次に、部分集約木保持部305の保持内容について図5を参照して説明する。<< Contents held by the partial aggregation tree holding unit >>
Next, the contents held in the partial aggregation
図5に示すように、部分集約木保持部305はテーブル500を保持し、このテーブル500は、ブロックID501、アクティブフラグ502、要素数503、統計値504、高さ(分割レベル)505、親ブロックID506、およびアクセスカウント数507を有する。
As illustrated in FIG. 5, the partial aggregation
《ハードウェア構成の一例》
次に、本実施形態に係る情報処理装置のハードウェア構成の一例を図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
ROM602は、リードオンリメモリであり、CPU601が最初に実行すべきブートプログラムの他、各種パラメータ等を記憶している。また、通信制御部603は、ネットワークを介した各種装置との通信を制御する。RAM604は、ランダムアクセスメモリであり、入力データ641、分割対象ブロックノード(集約木)642、分割済みブロック(リーフノード)643、統計値644、問合せ情報645、応答情報646、入出力データ647、および送受信データ648を含む。
The
また、ストレージ605は、部分集約木保持部305とファイル保持部303とを有している。さらに、ストレージ605は、データ入力モジュール651、問合せ受付モジュール652、アクセス頻度管理モジュール653、およびファイル操作モジュール654を有する。さらにまたストレージ605は、問合せ実行モジュール655、部分集約木操作モジュール656、分割指示モジュール657、およびデータ出力モジュール658等を有している。
Further, the
また、入力部610は、リーダ611、キーパッド612、タッチパネル613およびこれらからの入力をCPU601に渡す入力インタフェース615を含む。ここではリーダ611は、一例としてバーコードリーダとするが、RFID(Radio Frequency Identifier)タグリーダなどでもよい。
The
一方、入力部610或いは通信制御部603を介して問合せ受付モジュール652が受け付けた問合せに対する回答は、通信制御部603を介して外部装置に送信される。或いは出力インタフェース606を介して表示部607やプリンタ608に出力される。
On the other hand, the reply to the inquiry received by the
なお、データ入力部301は、CPU601、ROM602、通信制御部603、RAM604、入力部610、およびデータ入力モジュール651によって構成される。
The
ファイル操作部302は、CPU601、ROM602、RAM604、およびファイル操作モジュール654によって構成される。
The
部分集約木管理部304は、CPU601、ROM602、RAM604、アクセス頻度管理モジュール653、部分集約木操作モジュール656、および分割指示モジュール657によって構成される。
The partial aggregation
問合せ受付部306は、CPU601、ROM602、通信制御部603、RAM604、入力部610、および問合せ受付モジュール652によって構成される。
The
問合せ実行部307は、CPU601、ROM602、RAM604、および問合せ実行モジュール655によって構成される。
The
《処理の流れ》
図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
図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
この判定の結果、もし再利用が可能であれば、ステップS807において、問合せ実行部307は部分集約木保持部305から事前計算した統計値を取得する。もし再利用が可能でなければ、ステップS809において、問合せ実行部307は、今後その問合せで再利用が可能になるように、部分集約木管理部304に指示し、リーフノードを分割して木の成長処理をおこなう。これにより、問合せ実行部307は、このリーフノードに対応するデータ集合を2つ以上の部分集合に分割して木を成長させる。
If the result of this determination is that reuse is possible, in step S807 the
こうして問合せ実行部307は、問合せの実行に必要な統計値を取得し終えると、ステップS811において、それらの統計値を統合して問合せ結果を算出する。その後、ステップS813において、問合せ実行部307は部分集約木管理部304を通じて部分集約木のリーフノードに記録されているアクセス頻度を更新する。
In this way, when the
次に、ステップ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
また、ステップS823の判定の結果、カウント値が閾値αを超えていないときは、問合せ実行部307は、ステップS811の処理に移行する。
If the result of determination in step S823 is that the count value does not exceed the threshold value α, the
本実施形態の情報処理装置300によれば、アクセス頻度の高い統計値を有するデータの部分集合を自動的に検出すると共にアクセス頻度の高い部分集合を分割し、分割して得た部分集合ごとに新たに統計値を算出し保持している。このため、統計処理において事前に計算した統計値を再利用できる確率が高まり、統計処理の性能が向上する。さらに、事前に設定したブロック単位すなわち事前に設定したデータの部分集合単位でなくても、事前に自動計算した統計値を再利用することができ、レコードのスキャンを省いてI/O量と計算量を削減し、属性の統計処理を高速化することができる。
According to the
なお、本実施形態ではデータ集合とこのデータ集合を分割した部分集合とのそれぞれにノードを割り当てた木構造として情報処理を行なったが、これに限定されることはない。
例えば、木構造を用いないで情報処理するようにしても同様の効果を得られることは言うまでもない。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
このようにアクセス数(アクセス頻度)が小さいリーフノードを併合することで、統計値の数を減らすことができ、統計値を保持しておく記憶領域(統計値全体の保持サイズ)を減らすことができる。 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
部分集約木操作部1041は、分割指示部342の指示に基づいて、データ集合を2つ以上の部分集合に分割し、分割した部分集合ごとにデータの統計値を算出する。さらに、部分集約木操作部1041は、併合指示部1044の指示に基づいて、2つ以上の部分集合を1つに併合し、併合して得られた部分集合の統計値を算出する。ここでは、リーフノードおよびこのリーフノードのデータを部分集合と称している。
The partial aggregation
併合指示部1044は、アクセス頻度管理部343が管理するアクセス頻度に基づいて、アクセス頻度が最小の部分集合に関して、他のアクセス頻度の低い部分集合と併合した部分集合を生成するように部分集約木操作部1041に指示する。なお、隣接する部分集のどちらもアクセス頻度が低いときはこれらを併合する。また、アクセス頻度が最小の部分集合に隣接する部分集合のアクセス頻度が所定値Rよりも大きい場合、アクセス頻度が最小の部分集合と隣接しない部分集合と併合する。この際、アクセス頻度が最小の部分集合を、アクセス頻度が所定値Q(<R)以下の部分集合と併合する。また、併合する部分集合の数は3つ以上であってもよい。
The merging
《本実施形態のハードウェア構成》
図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
《処理の流れ》
本実施形態の情報処理装置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
この判定の結果、もし統計値の数が許容最大数以下であれば、ステップ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
次に、ステップ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
上記第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 3)
3. The information processing apparatus according to
(Appendix 4)
4. The information processing device according to any one of
(Appendix 5)
5. The information processing apparatus according to any one of
(Appendix 6)
4. The information processing apparatus according to any one of
(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 11)
11. The information processing apparatus according to
(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所定値以上の前記集合を少なくとも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 .
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)
| 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)
| 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 |
-
2016
- 2016-04-26 WO PCT/JP2016/002184 patent/WO2016178313A1/en not_active Ceased
- 2016-04-26 JP JP2017516551A patent/JP6683200B2/en active Active
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 |