JP5953277B2 - データ索引装置、データ索引方法及びプログラム - Google Patents

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

Info

Publication number
JP5953277B2
JP5953277B2 JP2013188835A JP2013188835A JP5953277B2 JP 5953277 B2 JP5953277 B2 JP 5953277B2 JP 2013188835 A JP2013188835 A JP 2013188835A JP 2013188835 A JP2013188835 A JP 2013188835A JP 5953277 B2 JP5953277 B2 JP 5953277B2
Authority
JP
Japan
Prior art keywords
data
attribute
search
node
tree structure
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
JP2013188835A
Other languages
English (en)
Other versions
JP2015056016A (ja
Inventor
豊 荒川
豊 荒川
伸彦 松浦
伸彦 松浦
中村 隆幸
隆幸 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013188835A priority Critical patent/JP5953277B2/ja
Publication of JP2015056016A publication Critical patent/JP2015056016A/ja
Application granted granted Critical
Publication of JP5953277B2 publication Critical patent/JP5953277B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Description

この発明は、木構造索引を用いてデータの挿入及び検索を行うデータ索引装置、データ索引方法及びプログラムに関する。
従来、データベース技術分野において、検索を高速化するための技術としてB-TreeやR-Treeなど木構造をもつ索引技術が種々提案されている。その1つとして、センサの計測データのような情報、すなわちセンサ情報などの多様な属性と属性値の組(key-value pairとも呼ばれる)を1つ以上含むデータに対する索引技術として、UBI-Tree(特許文献1)がある。UBI-Treeを使用すると、例えば「センサID=1、時間=3、温度=20」のようにセンサIDと時間と温度という3つの属性を含むデータと、「センサID=3、時間=7、照度=6、音量=4」のようにセンサIDと時間と照度と音量という4つの属性を含むデータを1つの索引に効率的に索引付けすることができる。
ところで、UBI-Treeにおいては、新規データの索引付けを行う際、つまりUBI-Treeの木構造に対して新規データの挿入を行う際に、他の多くの木構造の索引技術と同様に、ルートノードから、挿入先ノード選択アルゴリズムに基づいて似たデータを保持する子ノードを選択しながらノードを辿り、辿り着いたリーフノードに新規データを保持させる。ここで、似たデータとは、新規データとの間で属性の種類やその属性値が互いに近いデータを指す。
また、UBI-Treeの木構造に新規データを挿入することで、保持するデータの数、あるいは保持する子ノードの数が上限を越えるノードが発生した場合には、ノード分割アルゴリズムに基づいてノードを2つに分割し、この分割された2つのノードにデータまたは子ノードを分配する。このとき、似たデータ同士、あるいは似たデータを下位に保持する子ノード同士を同じノードに分配する。このようにすることで、互いに似たデータを同じリーフノード、あるいは同じ部分木に分類して保持することが可能となる。これにより、検索では類似したデータを取得するための条件が設定されることが多いため、検索条件に合致するデータが1つのリーフノード、あるいは1つの部分木に集まって存在することとなり、データが大量に存在する場合でも、特定のノードだけを辿り、効率的に検索条件に合致するデータを検索することができる。尚、検索条件を表記したものが検索式である。
上記挿入先ノードの選択アルゴリズムとノード分割アルゴリズムは、R-TreeにおいてはそれぞれChoose Subtree、Splitと呼ばれる。また、両アルゴリズムともペナルティと呼ばれる指標を用いる。挿入先ノード選択アルゴリズムは、新規データを挿入した際に、ペナルティの増分が最も少ないノードを選択するアルゴリズムである。またノード分割アルゴリズムは、分割後の2つのノードのペナルティの和が最も小さくなる分割方法を行うアルゴリズムである。
UBI-Treeにおいては、ペナルティとして「当該ノードが検索される確率」や「当該ノードに含まれる属性種類数」、あるいはその組合せが用いられる。「当該ノードが検索される確率」をペナルティとして用いた場合、上記挿入先ノード選択アルゴリズムやノード分割アルゴリズムによってペナルティを小さく抑えることで、検索時に辿るべきノード数を少なくし、検索効率を高めることができる。また、「当該ノードに含まれる属性種類数」をペナルティとして用いた場合、同様にペナルティを小さく抑えることで、検索条件に指定された属性の種類に基づき検索時に辿るべきノード数を小さくし、検索効率を高めることができる。「当該ノードが検索される確率」と「当該ノードに含まれる属性種類数」の組合せをペナルティに用いた場合にも、両者の効果が期待できる。
「当該ノードが検索される確率」は、それまでに挿入されたデータの統計情報から算出する。統計情報は属性表に記録される。属性表には、各属性について、挿入したデータ内での出現頻度や対応する属性値の最大値、最小値が記録されている。新規データを挿入するたびに属性表は更新される。「当該ノードが検索される確率」は、属性表を用いて次式により算出される。
当該ノードが検索される確率=ΣXiYi(全属性集合Aに対しi∈A)
i
…(1)
但し、Xiは属性iで検索された場合に当該ノードが検索される確率、Yiは検索条件に属性iが用いられる確率Yiを示す。
Yiは、次式で算出する。
Yi=Σ(1/(2^Dt−1))/M …(2)

但し、tはそれまでに挿入された属性iを含むデータ、Dtはデータtが含む属性数、Mはそれまでに挿入されたデータ総数を示す。
Yiは、より単純に次式で算出してもよい。
Yi=Fdi/(ΣFdj) …(3)
j
但し、Fdiはそれまでに挿入されたデータ内での属性iの出現頻度である。それまでに挿入されたデータ内での出現頻度の高い属性は検索条件に用いられやすいという考察に基づき、Yiを式(3)で見積もっている。
また、「当該ノードが検索される確率」と「当該ノードに含まれる属性種類数」の組合せがペナルティに用いられる場合には、例えば先ず「当該ノードに含まれる属性種類数」をペナルティとして挿入先ノード選択アルゴリズムを適用し、それでも挿入先ノードを1つに絞り込むことができない場合には、さらに「当該ノードが検索される確率」をペナルティとして挿入先ノード選択アルゴリズムを適用し、複数の候補の中から挿入先ノードを1つに絞り込めばよい。
尚、属性が検索式に用いられる確率とは、属性が検索条件に用いられる確率と同義である。また、特許文献1において「インナーノードエントリ」と称されるものは、あるノードへのポインタを含み、エントリと、当該エントリが含むポインタが指すノードは1対1に対応する。特許文献1において「エントリが検索される確率」、「エントリに含まれるキーに含まれる属性種類数」と称されるものは、それぞれ当該エントリに対応するノードについて、「当該ノードが検索される確率」、「当該ノードに含まれる属性種類数」と同義である。
特開2011−170461号公報
ところが、従来のUBI-Treeにおいては、それまでに挿入されたデータの統計情報から、「当該ノードが検索される確率」の予測値を算出している。予測値は必ずしも真の値と同じではなく、予測値と真の値の間に誤差がある場合がある。このような場合には、検索効率の劣化が発生する。
また、従来のUBI-Treeにおいては、ペナルティとして「当該ノードに含まれる属性種類数」と「当該ノードが検索される確率」が組み合わされて用いられる場合がある。しかし、挿入されたデータの多くが含む属性を検索条件とする検索に対しては、「当該ノードに含まれる属性種類数」をペナルティとして各ノードに含まれる属性種類数を小さくしても、検索条件に指定された属性の種類に基づき検索時に辿るべきノード数を小さくすることができず、検索効率の劣化を招く。
この発明は上記事情に着目してなされたもので、その第1の目的は、検索条件に用いられてきた属性ほど重要視して木構造内でデータを分類できるようにして「当該ノードが検索される確率」を高い精度で予測可能とし、これにより検索効率を高めたデータ索引装置、データ索引方法及びプログラムを提供することにある。
また、この発明の第2の目的は、検索条件に含まれる属性が挿入されたデータの多くに含まれるか否かによって柔軟にペナルティの組み合わせを切り替えることを可能とし、これにより検索効率をさらに高めたデータ索引装置、データ索引方法及びプログラムを提供することにある。
上記第1の目的を達成するためにこの発明の第1の観点は、属性とその属性値とからなる組を少なくとも1つ含むデータの集合を、UBI-Tree構造により記憶し管理するデータ索引装置において、上記データ集合と、上記UBI-Tree構造と、上記データ集合に含まれる属性の各々が検索条件に用いられた頻度を含む検索履歴を少なくとも記憶手段に記憶しておく。そして、上記UBI-Tree構造中に新規データを挿入する際に、当該新規データに含まれる属性の各々が検索条件に用いられる確率を、上記記憶手段に記憶された検索履歴に含まれる頻度を考慮して算出し、当該算出された確率に基づいて上記UBI-Tree構造へのデータ挿入アルゴリズムにおけるペナルティを算出して新規データの挿入処理を行うようにしたものである。
上記データ挿入手段は、新規データに含まれる属性をXとしたとき、当該属性Xが検索条件に用いられる確率を、上記検索履歴に含まれる全属性の頻度の総数に対する上記検索履歴に含まれる属性Xの頻度の割合として算出するとよい。
上記第2の目的を達成するためにこの発明の第2の観点は、上記記憶手段に、上記データ集合に含まれる属性の各々についてその出現頻度と属性値を関連付けた属性表を、さらに記憶する。そして、上記データ挿入手段により、上記UBI-Tree構造中に新規データを挿入する際に、上記記憶手段に記憶された検索履歴及び属性表に基づいて、上記検索条件に用いられた頻度が予め定めたしきい値より高い属性が、挿入されたデータのうち所定数以上に含まれているか否かを判定し、含まれている場合には次元抑制ペナルティを無効化して新規データの挿入処理を行うようにしたものである。
第1の観点によれば、記憶手段に検索履歴を記憶させ、データ挿入手段により新規データに含まれる属性の各々が検索条件に用いられる確率が上記検索履歴に含まれる頻度からそれぞれ算出され、この算出された頻度をもとにペナルティが算出される。このため、過去に検索条件に用いられてきた属性ほど重要視して木構造内でデータを分類することが可能となる。すなわち、「当該ノードが検索される確率」をそれまでに用いられた検索条件の履歴に基づいて高い精度で予測することが可能となり、検索効率の劣化を防止することができる。
また、新規データに含まれる属性をXとしたとき、当該属性Xが検索条件に用いられる確率が、前記検索履歴に含まれる全属性の頻度の総数に対する前記検索履歴に含まれる属性Xの頻度の割合として算出される。したがって、複雑な計算式を用いることなく簡単に算出できる。
第2の観点によれば、新規データを挿入する際に、検索履歴と、属性の各々についてその出現頻度と属性値を関連付けた属性表をもとに、検索条件に用いられた頻度が高い属性が、挿入されたデータの多くに含まれるかどうかが判定され、多くに含まれる場合には次元抑制ペナルティが無効化されて上記新規データの挿入が行われる。ここで、次元抑制ペナルティとは、「当該ノードに含まれる属性種類数」のことであり、これを無効化するとは、「当該ノードが検索される確率」と「当該ノードに含まれる属性種類数」の組合せをペナルティとしている場合に、「当該ノードが検索される確率」だけをペナルティとするよう変更することを意味する。したがって、挿入されたデータの多くに含まれる属性を検索条件とする検索処理が多く行われる場合に、次元抑制ペナルティを無効化すると、「当該ノードが検索される確率」だけをペナルティとしてデータの分類を行うことができ、これにより検索効率の劣化を防ぐことが可能となる。
すなわちこの発明の第1の観点によれば、検索条件に用いられてきた属性ほど重要視して木構造内でデータを分類できるようにして「当該ノードが検索される確率」を高い精度で予測可能とし、これにより検索効率を高めたデータ索引装置、データ索引方法及びプログラムを提供することができる。
また、この発明の第2の観点によれば、検索条件に含まれる属性が挿入されたデータの多くに含まれるか否かによって柔軟にペナルティの組み合わせを切り替えることが可能となり、これにより検索効率をさらに高めたデータ索引装置、データ索引方法及びプログラムを提供することができる。
この発明の一実施形態に係るデータ索引装置の機能構成を示すブロック図。 図1に示したデータ索引装置の記憶ユニットに記憶されるデータの一例を示す図。 図1に示したデータ索引装置の記憶ユニットに記憶される木構造情報の一例を示す図。 図1に示したデータ索引装置の記憶ユニットに記憶される属性表情報の一例を示す図。 図1に示したデータ索引装置の記憶ユニットに記憶される検索履歴の一例を示す図。 図1に示したデータ索引装置の記憶ユニットに記憶される検索履歴有効度の一例を示す図。 図1に示したデータ索引装置の記憶ユニットに記憶される直接法有効度の一例を示す図。 図1に示したデータ索引装置の記憶ユニットに記憶される共通キー判定割合の一例を示す図。 図1に示したデータ索引装置の記憶ユニットに記憶される挿入データ数の一例を示す図で、図2に示したデータ集合を挿入した後の状態を示す図。 新規挿入対象のデータの一例を示す図。 データの新規挿入に伴い更新された属性表情報の一例を示す図。 検索条件の一例を示す図。 図12に示した検索条件により図5に示した検索履歴を更新した後の検索履歴を示す図。
以下、図面を参照してこの発明に係わる実施形態を説明する。
[一実施形態]
(構成)
図1は、この発明の一実施形態に係るデータ索引装置の機能構成を示すブロック図である。
本実施形態のデータ索引装置は、例えばデータベースサーバからなり、制御ユニット1と、通信インタフェースユニット2と、記憶ユニット3を備えている。通信インタフェースユニット2は、ネットワークNWで規定される通信プロトコルに従い、例えば図示しないセンサ群との間でその計測データを受信する機能を有する。
記憶ユニット3は、記憶媒体として例えばHDD(Hard Disc Drive)またはSSD(Solid State Drive)を使用したもので、この発明の一実施形態を実現する上で必要な木構造情報を記憶する記憶領域として、データ集合記憶部31と、木構造記憶部32と、属性表記憶部33と、検索履歴記憶部34と、検索履歴有効度記憶部35と、直接法有効度記憶部36と、共通キー判定割合記憶部37と、挿入データ数記憶部38を備える。
データ集合記憶部31には、上記通信インタフェースユニット2により受信された計測データの集合が記憶される。個々の計測データは、属性とその属性値とからなる組を少なくとも1つ有する。図2の201〜205は計測データの一例を示したものである。例えば、計測データ201は属性として「センサID」、「時間」、「温度」及び「湿度」を有し、その属性値としてそれぞれ「1」、「3」、「20.3」及び「60」を有する。また計測データ202は、属性として「センサID」、「時間」及び「照度」を有し、その属性値としてそれぞれ「3」、「7」及び「6」を有する。すなわち、計測データは、各々1つ以上の属性と属性値との組を持ち、また属性の数と種類はデータ間で異なり得る。
木構造記憶部32には、上記データ集合をUBI-Treeにより索引付けした状態で管理するための木構造が記憶される。UBI-Treeの木構造は、「当該ノードが検索される確率」と「当該ノードに含まれる属性種類数」の組合せをペナルティとして用いる。図3はUBI-Treeの木構造の一例を示すもので、この例では複数のノード301〜306と、複数の計測データ201〜205とから構成される。計測データ201〜205は、図2に示したデータに対応する。
木の根元に位置するノード301はルートノードと呼ばれ、木の葉にあたるノード304〜306はリーフノードと呼ばれる。各ノード301〜306はそれぞれ他のノードあるいはデータへのポインタを保持する。例えば、ルートノード301はノード302へのポインタとノード303へのポインタを保持する。このことを単にノード301は子ノード302を保持すると表現する。ポインタにより接続されたノード間には親子関係があると見なされる。例えばルートノード301に対してノード302は子ノードと呼ばれる。逆に、ノード302に対してルートノード301は親ノードと呼ばれる。また、各ノードが保持する子ノードあるいはデータの数の上限値は「2」に設定されている。
なお、図3では図示を省略しているが、親ノードは各子ノードについて、当該子ノードの下位に存在するデータに関する範囲を表す情報を保持している。例えば、ルートノード301は、子ノード302以下に対し「センサID」が1〜10、「時間」が3〜10、「温度」が20.3〜21.1、「湿度」が60〜90のデータが存在している、という情報を保持している。同様に、ルートノード301は子ノード303以下に存在しているデータの範囲情報も保持している。検索を行う際には、当該範囲情報を用いて、検索条件を満たすノードだけを辿ることにより、検索条件を満たすデータを効率的に発見することが可能である。
属性表記憶部33には、上記データ集合記憶部31に記憶された計測データの集合が持つ属性の出現頻度、最小値及び最大値を表す情報が記憶される。図4はその一例を示すもので、図2に示したデータ集合の属性を表として表した場合を例示している。
検索履歴記憶部34には、ノードの検索履歴を表す情報が記憶される。検索履歴は、属性別の検索頻度により表される。図5はその一例を示すもので、ここでは属性として「時間」が検索条件に用いられた回数が5回、「温度」が検索条件に用いられた回数が3回の場合を示している。
検索履歴有効度記憶部35には、検索履歴の有効度を表す情報が保存される。図6はその一例を示すもので、ここでは有効度が「100」に設定された場合を示している。
直接法有効度記憶部36には、直接法の有効度を表す情報が保存される。図7はその一例を示すもので、ここでは「50」に設定された場合を示している。
共通キー判定割合記憶部37には、共通キーの判定割合を示す情報が保存される。図8はその一例を示すもので、ここでは「50」に設定された場合を示している。
挿入データ数記憶部38には、データ集合の挿入データ数を表す情報が保存される。図9はその一例を示すもので、図2に示したデータ集合を挿入した後の状態を示しており、図2に示すデータ集合の数「5」と等しい値となっている。
尚、上記各記憶部35,36,37に記憶されている検索履歴有効度、直接法有効度及び共通キー判定割合は、外部の保守用端末(図示せず)から書き換え可能としてもよい。このようにすると、データの特性や検索要求の変化に応じて、これらの設定を動的に変化させることが可能となる。
制御ユニット1は、例えばCPU(Central Processing Unit)を備え、この発明の一実施形態を実現するために必要な制御機能として、データ検索部11と、データ挿入部12を有している。なお、これらのデータ検索部11及びデータ挿入部12は、何れも図示しないプログラムメモリに格納されたプログラムを上記CPUに実行させることにより実現される。
データ検索部11は、図示しない検索元の装置から送信されたデータ検索要求がネットワークNWを介して通信インタフェースユニット2で受信された場合に、当該受信されたデータ検索要求により指定された検索条件と、上記木構造記憶部32に記憶された木構造情報、属性表情報及び検索履歴情報に基づいて、ルートノード301から子ノード302,303及びリーフノード304〜306を順次辿って計測データを特定する。そして、この特定された計測データをデータ集合記憶部31から読み出し、この読み出された計測データを通信インタフェース2からネットワークNWを介して要求元の装置へ返送する処理を行う。
データ挿入部12は、図示しないセンサから送信された新規計測データがネットワークNWを介して通信インタフェースユニット2で受信された場合に、上記検索履歴記憶部34に記憶された検索履歴情報、つまり属性別の検索頻度をもとに、上記受信された新規計測データに含まれる各属性が検索条件に用いられる確率を算出し、この算出された確率に基づいてUBI-Treeの挿入アルゴリズムにおけるペナルティを計算する。そして、この計算されたペナルティと、上記木構造記憶部32に記憶された木構造情報に基づいてノードを辿り、上記新規計測データを挿入すべきノードを特定する処理を実行する。
またデータ挿入部12は、新規データを挿入する際に、検索履歴と、属性の各々についてその出現頻度と属性値を関連付けた属性表をもとに、検索条件に用いられた頻度が予め設定したしきい値より高い属性が、挿入されたデータのうち予め設定した数以上のデータに含まれるかどうか、つまり多くのデータに含まれるか否かを判定し、多くに含まれる場合には次元抑制ペナルティを無効化して上記新規データの挿入処理を実行する。
(動作)
次に、以上のように構成されたデータ索引装置IUの動作を説明する。
ここでは、記憶ユニット3のデータ集合記憶部31には図2に示すデータ集合が、木構造記憶部32には図3に示すUBI-Tree構造が、属性表記憶部33には図4に示す属性表が、さらに検索履歴記憶部34には図5に示した検索履歴を表す情報がそれぞれ記憶されているものとして説明を行う。
いま、図示しないセンサから新たな計測データが送信され、この新規計測データがネットワークNWを介して通信インタフェースユニット2で受信されたとする。図10に、このとき受信された新規計測データを示す。
上記新規計測データが受信されると、制御ユニット1はデータ挿入部12を起動し、このデータ挿入部12の制御の下で、木構造及び属性表に対するデータ挿入処理を以下のように実行する。すなわち、先ず上記受信された新規計測データに基づいて、属性表記憶部33に記憶された属性表を更新する。例えば、新規計測データは図10に示したように、属性として「センサID」、「時間」、「湿度」、「照度」、「音量」を含む。このため、図11に示すように、各属性の出現頻度がそれぞれ1増加する。また、属性のうち「時間」、「照度」及び「音量」の各値はこれまで挿入されたデータよりも大きいため、該当する最大値がそれぞれ更新される。さらに、記憶ユニット3の挿入データ数記憶部38に記憶されている挿入データ数(図9に図示)が更新され、“6”となる。
次に、木構造のルートノード301から、挿入先ノード選択アルゴリズムを用いながら挿入先のノードを選択していく。このとき、先ず上記新規計測データに含まれる各属性が検索条件に用いられる確率を算出し、検索条件に用いられる確率が高い属性集合が共通キー集合であるかどうかを判定する。そして、共通キー集合であると判定された場合には、次元抑制ペナルティを無効化して上記新規計測データの挿入を行う。ここで、共通キーとは挿入されたデータの多くに共通して出現する属性を意味し、共通キー集合とは挿入されたデータの多くに共通して出現する属性の集合を意味する。
具体的には、先ず記憶ユニット3の各記憶部33〜38に記憶された検索履歴有効度、直接法有効度、共通キー判定割合、挿入データ数、検索履歴及び属性表を調べ、各属性について、検索条件に当該属性iが用いられる確率Yiを(3)式とは異なる(4)式により求める。
Yi=(Fdi/(ΣFdj))×(100−A)/100
j
+(Fsi/(ΣFsj))×A/100 …(4)
j
但し、Fsiはそれまでに用いられた検索条件内での属性iの出現頻度である。またAは該検索履歴有効度である。
(4)式は(3)式を拡張したものとなっており、それまでに挿入されたデータ内での出現頻度の高い属性は検索条件に用いられ易いという考察に加え、それまでに用いられた検索条件内での出現頻度の高い属性は今後も検索条件に用いられ易いという考察に基づいて確率Yiを見積もるものである。各考察は(4)式の第一項、第二項にそれぞれ対応している。Aは0〜100の範囲の値をとることができるパラメータであり、2種の考察のどちらをどれほど重要視するかを設定することができる。
本実施形態のように100を設定した場合には、(4)式の第一項は0となり、2つ目の考察、すなわち、それまでに検索条件内での出現頻度の高い属性は今後も検索条件に用いられ易いことだけを重要視し、確率Yiの値を見積もるものである。例えば、
Y(時間)=0+(5/(5+3))×100/100=0.625
Y(温度)=0+(3/(5+3))×100/100=0.375
となる。
次に、各確率Yiを値が大きい順に加算していき、記憶ユニット3の直接法有効度記憶部36に記憶されている直接法有効度/100を越えるまで足しこんだYに対応する1つ以上の属性集合を、「検索条件に用いられる確率が高い属性集合」とする。直接法有効度は0〜100の範囲の値をとることができるパラメータであり、どれほど多くの属性を「検索条件に用いられる確率が高い属性集合」に含めるかを設定することができる。
本実施形態においては、直接法有効度は50であり、最もYの値が大きなY(時間)が0.625であり、Y(時間)だけで50/100を超えるため、「検索条件に用いられる確率が高い属性集合」には「時間」のみが含まれる。
次に、「検索条件に用いられる確率が高い属性集合」に含まれる各属性がそれまでに挿入されたデータ内に含まれる割合、すなわち(Fdi/(挿入データ数))の平均値が、記憶ユニット3の共通キー判定割合記憶部37に記憶されている共通キー判定割合/100以上の場合には、「検索条件に用いられる確率が高い属性集合」は共通キー集合であると判定し、次元抑制ペナルティを無効化して該データの挿入を行う。共通キー判定割合は0〜100の範囲の値をとることができるパラメータであり、挿入されたデータのどれほど多くに共通して出現する属性の集合を共通キー集合と判定するかを設定することができる。
本実施形態においては、共通キー判定割合は50、挿入データ数は6であり、「検索条件に用いられる確率が高い属性集合」に含まれる属性は「時間」である。このため、挿入されたデータ内に含まれる属性の割合の平均値は6/6となり、共通キー判定割合/100以上となるため、共通キー集合であると判定する。そして、この場合には次元抑制ペナルティを無効化して新規計測データの挿入処理を行う。
次元抑制ペナルティを無効化して新規計測データの挿入を行う場合は、「当該ノードが検索される確率」だけをペナルティとする。また、「当該ノードが検索される確率」を算出する際には、(4)式により確率Yiを算出する。本実施形態では、検索履歴有効度が100、また検索履歴には「時間」と「温度」の属性が含まれている。このため、(4)式より「時間」と「温度」については確率Yiは正の値をとるが、それ以外の属性については確率Yiは0となる。すなわち、(1)式より、「時間」と「温度」の2つの属性以外の属性は、ペナルティに影響しないこととなる。新規計測データには「センサID」、「時間」、「湿度」、「照度」、「音量」が含まれているが、このうち「時間」のみから「当該ノードが検索される確率」をペナルティとして算出することになる。
ルートノード301において、新規計測データをノード303に挿入すると、中間ノード303に含まれる「時間」の値が元々7〜9であったものが、7〜11に変化する。すなわち、値の範囲は2だけ広がる。一方、新規計測データを中間ノード302に挿入すると、当該中間ノード302に含まれる「時間」の値が元々3〜10であったものが、3〜11に変化する。すなわち、値の範囲は1だけ広がる。「当該ノードが検索される確率」をペナルティとする場合には、値の範囲の広がりが小さい方が挿入先として選択される。すなわち、本実施形態では、「時間」の値の範囲の広がりが小さい中間ノード302を挿入先として選択する。
次に、中間ノード302において、挿入先ノード選択アルゴリズムを用いて挿入先のノードを選択する。同様に、「時間」の値の範囲の広がりが小さい、ノード305を挿入先のノードに選択する。
新規計測データの挿入により、リーフノード305が保持するデータ数は3となる。各ノードが保持する子ノードあるいはデータの上限値は2に設定されているため、ノード分割アルゴリズムによりノード305を分割する。ノードを分割する際にも、挿入先ノード選択アルゴリズムと同様に、該検索履歴有効度と該直接法有効度と該共通キー判定割合と該挿入データ数と該検索履歴と該属性表とを調べ、検索条件に用いられる確率が高い属性集合が共通キー集合であるかどうかを判定する。そして、共通キー集合であると判定された場合には、次元抑制ペナルティを無効化し、また「当該ノードが検索される確率」を算出する際に、(4)式により確率Yiを算出する。
仮に、新規計測データを挿入する際に、ルートノード301の挿入先ノード選択アルゴリズムにおいて、次元抑制ペナルティが無効化されず、「当該ノードに含まれる属性種類数」をペナルティとする場合、ルートノード301において、新規計測データを中間ノード303に挿入すると、当該中間ノード303に含まれる属性が元々「センサID」、「時間」、「照度」、「音量」の4種類であったものが、「センサID」、「時間」、「照度」、「音量」及び「湿度」の5種類となり、属性種類数が1だけ増加する。
これに対し、新規計測データを中間ノード302に挿入すると、中間ノード302に含まれる属性が元々「センサID」、「時間」、「温度」、「湿度」の4種類であったものが、「センサID」、「時間」、「温度」、「湿度」、「照度」、「音量」の6種類となり、属性種類数が2だけ増加する。このため、挿入先として中間ノード303が選択される。挿入先として中間ノード303を選択し、当該中間ノード303以下のノードに新規計測データを挿入すれば、「音量」の属性をもつデータは中間ノード303以下に絞られる。このため、「音量」を検索条件に用いた場合には、中間ノード303以下の部分木のみを検索すればよく、効率がよい。
一方、挿入先として中間ノード302を選択した場合には、「音量」の属性をもつデータが中間ノード302以下と中間ノード303以下に分散してしまう。このため、「音量=0〜10」を検索条件に用いた場合、中間ノード302以下の部分木と中間ノード303以下の部分木の両方を検索しなければならず、効率が悪い。しかしながら、挿入先として中間ノード303を選択した場合、中間ノード302は「時間」の値が3〜10のデータを以下に保持し、中間ノード303は「時間」の値が7〜11のデータを以下に保持することとなる。このため、例えば「時間=10」を検索条件に用いた場合、両方の部分木を検索する必要がでてくる。
これに対し、挿入先として中間ノード302を選択した場合には、「時間=10」という検索条件に対して中間ノード302以下の部分木のみを検索すればよい。このように、「音量=0〜10」のように、挿入された全データのうち、一部のデータだけが保持する属性を検索条件とする場合には、「当該ノードに含まれる属性種類数」をペナルティとすることで検索効率が上がる。しかし、「時間」のように、多くのデータが保持する属性を検索条件とする場合には、「当該ノードに含まれる属性種類数」をペナルティとすることで検索効率が下がってしまう。このため、多くのデータが保持する属性、すなわち共通キーを検索条件とすることが多い場合には、本実施形態のように次元抑制ペナルティを無効化し、「当該ノードに含まれる属性種類数」をペナルティとしないようにする。このようにすることで、検索の効率化を図ることが可能となる。
また、仮に新規計測データを挿入する際に、中間ノード302の挿入先ノード選択アルゴリズムにおいて、従来のように(3)式を用いて確率Yiを算出し、「当該ノードが検索される確率」を算出すると、リーフノード305ではなくリーフノード304を挿入先として選択する。(3)式を用いた場合、それまでに挿入されたデータ内での各属性の出現頻度のみから確率Yiが算出され、「時間」と「温度」の2属性以外の属性もペナルティの大きさに影響するようになる。
挿入先としてリーフノード304を選択し、当該リーフノード304に新規計測データを挿入すれば、「時間」の値の範囲は3〜3から3〜11に増加する(拡大幅:8)ものの、「センサID」は1〜1から1〜2への増加(拡大幅:1)で済み、また「湿度」については値の範囲は増加しないで済み、全体としてペナルティの増加が少ないため、挿入先としてリーフノード304を選択する。
逆に挿入先としてリーフノード305を選択した場合には、「時間」の値の範囲は8〜10から8〜11への増加(拡大幅:1)で済むが、「センサID」や「湿度」の値の範囲の増加が大きい。ルートノードにおける挿入先ノード選択と同様に考えると、例えば「センサID」で検索する場合には、「センサID」の値の幅の拡大が小さいよう、挿入先としてリーフノード304を選択することで検索効率が向上するが、「時間」で検索する場合には、「時間」の値の幅の拡大が小さいよう、挿入先としてリーフノード305を選択することで検索効率が向上する。
一般に、これまで検索条件に用いられた属性は今後も検索条件に用いられる可能性が高い。このため、本実施形態のように検索履歴を記憶ユニット3の検索履歴記憶部34に記憶させる。そして、この記憶された検索履歴に基づいて「当該ノードが検索される確率」を算出する。このようにすることで、検索の効率化を図ることが可能となる。第12図に検索条件の一例を示す。
検索を行う場合、先ず検索条件に基づいて、記憶ユニット3の検索履歴記憶部34に記憶されている検索履歴を更新し、次に従来と同様にUBI-Tree構造を用いて検索条件に合致するデータを探し出す。図13は、上記検索条件により図5に示した検索履歴を更新した後の検索履歴を示す。検索条件は「時間」と「湿度」の属性を含む。このため、図13では「時間」の検索頻度が1増加し、また「湿度」に該当する行が追加されてその検索頻度は1と記述される。
(一実施形態の効果)
以上詳述したように一実施形態では、記憶ユニット3に検索履歴を記憶しておき、データ挿入部12の制御の下、新規計測データに含まれる属性の各々が検索条件に用いられる確率を上記記憶された検索履歴に含まれる頻度をもとに(4)式によりそれぞれ算出し、この算出された頻度をもとにペナルティを算出するようにしている。したがって、過去に検索条件に用いられてきた属性ほど重要視してUBI-Tree構造内でデータを分類することが可能となる。すなわち、「当該ノードが検索される確率」をそれまでに用いられた検索条件の履歴に基づいて高い精度で予測することが可能となり、これにより検索効率の劣化を防ぐことができる。
また、新規データを挿入する際に、検索履歴と属性表をもとに、検索条件に用いられた頻度が高い属性が、挿入されたデータの多くに含まれるかどうかを判定し、多くに含まれる場合には次元抑制ペナルティを無効化した後、上記新規データの挿入を行うようにしている。したがって、挿入されたデータの多くに含まれる属性を検索条件とする検索処理が多く行われる場合において、次元抑制ペナルティを無効化することにより、「当該ノードが検索される確率」だけをペナルティとしてデータの分類を行うことができ、これにより検索効率の劣化を防ぐことが可能となる。
[他の実施形態]
前記一実施形態では、各ノードが保持する子ノードあるいはデータの上限値を2に設定した場合を例にとって説明したが、これに限らず、他の正数値に設定してもよい。
また、前記一実施形態では、データとしてセンサにより得られた温度、湿度、照度、音量等の計測データを取り扱う場合を例にとって説明した。しかし、それに限らず電流や電圧値、流体の流量、物質の濃度、明度、騒音レベル、位置、加速度などの計測データを取り扱ってよく、さらにはセンサ以外の例えばWebやインターネットを経由して取得した情報であってもよい。また、それら値に加えて、センサの特性や状態、計測日時等を示すメタデータを含む情報を取り扱ってもよい。その他、データ索引装置の構成やデータ挿入処理の手順と処理内容等についても、この発明の要旨を逸脱しない範囲で種々変形して実施可能である。
要するにこの発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
IU…データ索引装置、NW…ネットワーク、1…制御ユニット、2…通信インタフェースユニット、3…記憶ユニット、11…データ検索部、12…データ挿入部、31…データ集合記憶部、32…木構造記憶部、33…属性表記憶部、34…検査栗履歴記憶部、35…検索履歴有効度記憶部、36…直接法有効度記憶部、37…共通キー判定割合記憶部、38…挿入データ数記憶部。

Claims (7)

  1. 属性とその属性値とからなる組を少なくとも1つ含むデータの集合を、UBI-Tree構造により記憶し管理するデータ索引装置であって、
    前記データ集合と、前記UBI-Tree構造と、前記データ集合に含まれる属性の各々が検索条件に用いられた頻度を含む検索履歴を少なくとも記憶する記憶手段と、
    前記UBI-Tree構造中に新規データを挿入する際に、当該新規データに含まれる属性の各々が検索条件に用いられる確率を、前記記憶手段に記憶された検索履歴に含まれる頻度を考慮して算出し、当該算出された確率に基づいて前記UBI-Tree構造へのデータ挿入アルゴリズムにおけるペナルティを算出して新規データの挿入処理を行うデータ挿入手段と
    を具備することを特徴とするデータ索引装置。
  2. 前記データ挿入手段は、新規データに含まれる属性をXとしたとき、当該属性Xが検索条件に用いられる確率を、前記検索履歴に含まれる全属性の頻度の総数に対する前記検索履歴に含まれる属性Xの頻度の割合として算出することを特徴とする請求項1記載のデータ索引装置。
  3. 前記記憶手段は、前記データ集合に含まれる属性の各々についてその出現頻度と属性値を関連付けた属性表を、さらに記憶し、
    前記データ挿入手段は、前記UBI-Tree構造中に新規データを挿入する際に、前記記憶手段に記憶された検索履歴及び属性表に基づいて、前記検索条件に用いられた頻度が予め定めたしきい値より高い属性が、挿入されたデータのうち所定数以上に含まれているか否かを判定し、含まれている場合には次元抑制ペナルティを無効化して新規データの挿入処理を行うことを特徴とする請求項1又は2記載のデータ索引装置。
  4. コンピュータ及び記憶手段を備え、属性とその属性値とからなる組を少なくとも1つ含むデータの集合を、UBI-Tree構造により記憶し管理する装置が実行するデータ索引方法であって、
    少なくとも、前記データ集合と、前記UBI-Tree構造と、前記データ集合に含まれる属性の各々が検索条件に用いられた頻度を含む検索履歴を、前記記憶手段に記憶させる過程と、
    前記UBI-Tree構造中に新規データを挿入する際に、当該新規データに含まれる属性の各々が検索条件に用いられる確率を、前記記憶手段に記憶された検索履歴に含まれる頻度を考慮して算出し、当該算出された確率に基づいて前記UBI-Tree構造へのデータ挿入アルゴリズムにおけるペナルティを算出して新規データの挿入処理を行う過程と
    を具備することを特徴とするデータ索引方法。
  5. 前記新規データの挿入処理を行う過程は、新規データに含まれる属性をXとしたとき、当該属性Xが検索条件に用いられる確率を、前記検索履歴に含まれる全属性の頻度の総数に対する前記検索履歴に含まれる属性Xの頻度の割合として算出することを特徴とする請求項4記載のデータ索引方法。
  6. 前記データ集合に含まれる属性の各々についてその出現頻度と属性値を関連付けた属性表を前記記憶手段に記憶させる過程を、さらに備え、
    前記新規データの挿入処理を行う過程は、前記UBI-Tree構造中に新規データを挿入する際に、前記記憶手段に記憶された検索履歴及び属性表に基づいて、前記検索条件に用いられた頻度が予め定めたしきい値より高い属性が、挿入されたデータのうち所定数以上に含まれているか否かを判定し、含まれている場合には次元抑制ペナルティを無効化して新規データの挿入処理を行うことを特徴とする請求項4又は5記載のデータ索引方法。
  7. 請求項1乃至3の何れかに記載のデータ索引装置が具備する各手段の処理を、当該データ索引装置が備えるコンピュータに実行させるプログラム。
JP2013188835A 2013-09-11 2013-09-11 データ索引装置、データ索引方法及びプログラム Active JP5953277B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013188835A JP5953277B2 (ja) 2013-09-11 2013-09-11 データ索引装置、データ索引方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013188835A JP5953277B2 (ja) 2013-09-11 2013-09-11 データ索引装置、データ索引方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2015056016A JP2015056016A (ja) 2015-03-23
JP5953277B2 true JP5953277B2 (ja) 2016-07-20

Family

ID=52820379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013188835A Active JP5953277B2 (ja) 2013-09-11 2013-09-11 データ索引装置、データ索引方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5953277B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5470082B2 (ja) * 2010-02-16 2014-04-16 日本電信電話株式会社 情報蓄積検索方法及び情報蓄積検索プログラム
CN102411591A (zh) * 2010-09-21 2012-04-11 阿里巴巴集团控股有限公司 一种信息处理的方法及设备
JP5678790B2 (ja) * 2011-05-02 2015-03-04 富士通株式会社 インデックス管理方法、インデックス管理プログラムおよびインデックス管理装置

Also Published As

Publication number Publication date
JP2015056016A (ja) 2015-03-23

Similar Documents

Publication Publication Date Title
KR102266756B1 (ko) Kvs 트리
TWI702506B (zh) 用於合併樹廢棄項目指標之系統、機器可讀媒體及機器實施之方法
US9411840B2 (en) Scalable data structures
JP6332264B2 (ja) 類似データ検索装置、類似データ検索方法、及びプログラム
US20160342637A1 (en) Detecting quasi-identifiers in datasets
US8782219B2 (en) Automated discovery of template patterns based on received server requests
CN105989015B (zh) 一种数据库扩容方法和装置以及访问数据库的方法和装置
WO2018036549A1 (zh) 分布式数据库查询方法、装置及管理系统
CN106951179B (zh) 一种数据迁移方法及装置
US20160103858A1 (en) Data management system comprising a trie data structure, integrated circuits and methods therefor
JP2008225575A (ja) 計算機負荷見積システム、計算機負荷見積方法
US20140229496A1 (en) Information processing device, information processing method, and computer program product
JP6982049B2 (ja) インデックスを管理するための方法、装置、設備及び記憶媒体
KR20160011212A (ko) 데이터 운영을 위한 메모리 및 스토리지 공간 관리
JP5731015B2 (ja) データベースシステム及びデータベース管理方法
US8392393B2 (en) Graph searching
Firth et al. TAPER: query-aware, partition-enhancement for large, heterogenous graphs
CN111666302A (zh) 用户排名的查询方法、装置、设备及存储介质
CN117171161A (zh) 数据查询方法及装置
JP6189266B2 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
JP5953277B2 (ja) データ索引装置、データ索引方法及びプログラム
CN106709045B (zh) 分布式文件系统中节点选择方法及装置
JP5953262B2 (ja) データ索引装置、データ索引方法及びプログラム
US11435926B2 (en) Method, device, and computer program product for managing storage system
CN110019783A (zh) 属性词聚类方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150618

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160517

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160613

R150 Certificate of patent or registration of utility model

Ref document number: 5953277

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150