(57)【特許請求の範囲】
【請求項１】
複数の情報を列挙したファイルであるチャンクを生成する装置であって、
前記装置は一時プールと第１チャンクとチャンクプールを保持し、
前記一時プールは情報を木構造で管理し、
前記第１チャンクは前記装置が生成しようとするチャンクが含むべき情報の列挙数よりは少ない数の情報を列挙したファイルであり、
前記チャンクプールは個々の前記第１チャンクのデータ範囲と前記第１チャンクの識別情報を示す荷札情報を木構造で管理し、
情報を前記一時プールに登録する機能と、
前記一時プールから木構造で近傍の情報群を取り出し前記第１チャンクを作成する機能と、
前記第１チャンクの荷札情報を生成して前記チャンクプールに登録する機能と、
前記チャンクプールから木構造で近傍の荷札情報群を取り出しそれらの荷札情報が示す前記第１チャンクの含む情報を少なくとも含む第２チャンクを作成する機能と、
を少なくとも有することを特徴とするチャンク生成装置。
【請求項２】
請求項１に記載のチャンク生成装置であって、
前記第２チャンクを作成する機能は、
ｋ個の前記第１チャンクの含む情報から前記第２チャンクを作成する際に、
前記第２チャンクは前記ｋ個の第１チャンク内容のファイル内位置を検索するための索引情報と前記ｋ個の第１チャンク内容の並びをその構成要素として少なくとも含む
ことを特徴とするチャンク生成装置。
【請求項３】
請求項１ないし２に記載のチャンク生成装置であって、
前記一時プール及び前記チャンクプールは、前記木構造としてＵＢＩ−Ｔｒｅｅ検索木アルゴリズムを用い、
前記第１チャンクの前記荷札情報が示す前記第１チャンクのデータ範囲は複数のキーに対する値の集合として表現し、
前記第２チャンクの前記索引情報は複数のキーに対する値の集合から前記第１チャンク内容のファイル内位置を検索するための索引情報である
ことを特徴とするチャンク生成装置。
【請求項４】
チャンクを読み取る装置であって、
請求項２ないし３に記載のチャンク生成装置で作成されたチャンクを入力とし、索引情報を読み取る機能と、
検索条件に合致する索引情報を選択する機能と、
ファイル読み取り位置を索引情報が示すファイル内位置に移動する機能と、
前記移動したファイル内位置から前記第１チャンク内容を読み取る機能と、
を少なくとも有することを特徴とするチャンク読み取り装置。
【請求項５】
一時プールと第１チャンクとチャンクプールを保持し、一時プール登録部と第１チャンク作成部と荷札情報生成部と第２チャンク作成部を備え、複数の情報を列挙したファイルであるチャンクを生成するチャンク生成装置が実行する方法であって、
前記一時プール登録部が、情報を前記一時プールに登録し、前記一時プールが、該情報を木構造で管理する手順と、
前記第１チャンク作成部が、前記一時プールから木構造で近傍の情報群を取り出し、生成しようとするチャンクが含むべき情報の列挙数よりは少ない数の情報を列挙した前記第１チャンクを作成する手順と、
前記荷札情報生成部が、前記第１チャンクの識別情報を示す荷札情報を生成して前記チャンクプールに登録し、前記チャンクプールが、個々の前記第１チャンクのデータ範囲と前記第１チャンクの荷札情報を木構造で管理する手順と、
前記第２チャンク作成部が、前記チャンクプールから木構造で近傍の荷札情報群を取り出し、それらの荷札情報が示す前記第１チャンクの含む情報を少なくとも含む第２チャンクを作成する手順と、
を順に実行するチャンク生成方法。
【請求項６】
請求項５に記載のチャンク生成方法であって、
前記第２チャンク作成部が、
ｋ個の前記第１チャンクの含む情報から前記第２チャンクを作成する際に、
前記第２チャンクに前記ｋ個の第１チャンク内容のファイル内位置を検索するための索引情報と前記ｋ個の第１チャンク内容の並びをその構成要素として少なくとも含める
ことを特徴とするチャンク生成方法。
【請求項７】
請求項５ないし６に記載のチャンク生成方法であって、
前記一時プール及び前記チャンクプールは、前記木構造としてＵＢＩ−Ｔｒｅｅ検索木アルゴリズムを用い、
前記第１チャンクの前記荷札情報が示す前記第１チャンクのデータ範囲は複数のキーに対する値の集合として表現し、
前記第２チャンクの前記索引情報は複数のキーに対する値の集合から前記第１チャンク内容のファイル内位置を検索するための索引情報である
ことを特徴とするチャンク生成方法。
【請求項８】
コンピュータに、一時プールと第１チャンクとチャンクプールを保持させ、
前記一時プールでは、情報を木構造で管理させ、
前記第１チャンクは、生成しようとするチャンクが含むべき情報の列挙数よりは少ない数の情報を列挙したファイルであり、
前記チャンクプールでは、個々の前記第１チャンクのデータ範囲と前記第１チャンクの識別情報を示す荷札情報を木構造で管理させ、
請求項１ないし３のいずれか１項に記載の各機能を実現させるためのチャンク生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサ情報データベースの情報を加工するサーバ構成法に関する。
【背景技術】
【０００２】
従来、センサの計測データのような情報すなわちセンサ情報を扱う情報管理システムとして、ｕＴｕｐｌｅＳｐａｃｅ（例えば、非特許文献１参照。）があった。ｕＴｕｐｌｅＳｐａｃｅの特徴の一つに、センサ情報をｕＴｕｐｌｅ形式という、「キー＝値」の並びにより自由に表現できる点がある。また、ｕＴｕｐｌｅＳｐａｃｅの特徴の一つに、センサ情報を効率的に蓄積し検索転送する手段として、センサデータのチャンクを生成する方法を導入している点がある。
【０００３】
また従来、ｕＴｕｐｌｅ形式のように複数の値を持つ情報をまとめて索引づけするデータ構造として、多次元検索木Ｕｂｉ−ｔｒｅｅ（例えば、非特許文献２参照。）があった。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】「大量スキーマレスデータの蓄積・検索を実現する新しいｕＴｕｐｌｅＳｐａｃｅの設計と実装」、柏木  啓一郎ほか著、マルチメディア，分散，協調とモバイル（ＤＩＣＯＭＯ２０１０）シンポジウム、２０１０年７月
【非特許文献２】「ユビキタスデータのためのインデキシング技術ＵＢＩ−ｔｒｅｅの改良」、荒川  豊ほか著、電子情報通信学会  データ工学研究会技術報告、信学技報，ｖｏｌ．１１０，ｎｏ．１６２，ＤＥ２０１０−２２，ｐｐ．４７−５２，２０１０年８月
【発明の概要】
【発明が解決しようとする課題】
【０００５】
チャンクを生成する方法として、最も単純なのは、蓄積されたセンサ情報のうち、時系列順に古いものから一定個数ずつを、一次ＤＢ（あるいは一時ＤＢ）と呼ばれる最初にセンサ情報が蓄積される領域からチャンクとして別ファイルに移し替えていく方法である。
【０００６】
さらにチャンクの効率を改善するためには、検索結果がチャンク単位で取り扱われることを鑑み、一つの検索式で結果としてまとめられることが多いデータ、すなわち、似た値をもつデータがなるべく同じチャンクに集まるようにするのがよい。そのためには、一時ＤＢにある程度の量のセンサ情報を蓄えておき、何らかの手段でその中で似た値をもつデータを抽出して、それらをチャンクとして別ファイルに移し替えていく方法が考えられる。
【０００７】
さらにその際、似た値を持つデータを抽出する方法として、木構造の特徴を用い、木構造で近くに配置されるノードを選択するという方法が考えられる。またこの際、センサ情報を管理する木構造としてＵｂｉ−ｔｒｅｅを採用するという方法が考えられる。
【０００８】
しかし、上記従来技術から想起されるチャンク生成方式においては、一時ＤＢのサイズを大きく取っておかなければならないという問題があった。すなわち、例えばチャンクの１ファイルに１００万個のセンサ情報をまとめるとする。母集団の中から似たデータを抽出して一つのファイルにまとめようとすると、まとめようとする先のファイルに対して母集団は十分な大きさがなければならない。これが仮に１０００倍のデータ量の中から選択しようとすると、１００万×１０００＝１０億個のセンサ情報を単一の一時ＤＢに蓄積して管理しなければならないということになる。
【０００９】
このような大きなサイズのデータを管理することは、メモリならびに二次記憶装置への負荷が多大なものとなり、かつ、そのような膨大なデータの中から似たデータを抽出するという処理の負荷が多大なものとなるという問題があった。
【００１０】
また従来、非特許文献１で開示されているように、「チャンクはデータ行を並べたテキストファイル形式で保管され」ていた。このようにチャンクがセンサ情報が行ごとに列挙されるテキストファイル形式である場合、アプリケーションプログラムがチャンクのファイルを読み取る処理を容易に作成でき、また、チャンクのファイルの中身は人間にとっても可読であり取り扱いが容易であるという利点があった。その一方で、チャンクのファイルの中から真に必要とするデータ行のみを検索結果として得るためには、チャンクのファイル全体を読み込み全ての行について一致判定処理を行わなければならず、処理負荷が高くなるという問題があった。
【００１１】
あるいは、チャンクのファイル形式として、テキストによるセンサ情報の記述に加え、検索を高速化するための木構造等の索引情報を別途作成し、同一ファイルあるいは別ファイルとして保管するという方法が考えられる。この方法によれば、チャンクのファイルの中から真に必要とするデータ行のみを検索結果として得るために、チャンクのファイルの一部を読み込むだけでよく、全ての行について一致判定処理を行う必要がないという利点がある。その一方で、アプリケーションプログラムがチャンクのファイルを読み取る処理の作成が容易ではなく、また、当該ファイルの中身は人間にとって不可読であり取り扱いが困難であるという問題があった。
【００１２】
すなわち、チャンクの処理の容易性と処理の高速性が両立できないという問題があった。
【課題を解決するための手段】
【００１３】
本願発明に係るチャンク生成装置は、複数の情報を列挙したファイルであるチャンクを生成する装置であって、前記装置は一時プールと第１チャンクとチャンクプールを保持し、前記一時プールは情報を木構造で管理し、前記第１チャンクは前記装置が生成しようとするチャンクが含むべき情報の列挙数よりは少ない数の情報を列挙したファイルであり、前記チャンクプールは個々の前記第１チャンクのデータ範囲と前記第１チャンクの識別情報を示す荷札情報を木構造で管理し、情報を前記一時プールに登録する機能と、前記一時プールから木構造で近傍の情報群を取り出し前記第１チャンクを作成する機能と、前記第１チャンクの荷札情報を生成して前記チャンクプールに登録する機能と、前記チャンクプールから木構造で近傍の荷札情報群を取り出しそれらの荷札情報が示す前記第１チャンクの含む情報を少なくとも含む第２チャンクを作成する機能と、を少なくとも有する。
【００１４】
前記第２チャンクを作成する機能は、ｋ個の前記第１チャンクの含む情報から前記第２チャンクを作成する際に、前記第２チャンクは前記ｋ個の第１チャンク内容のファイル内位置を検索するための索引情報と前記ｋ個の第１チャンク内容の並びをその構成要素として少なくとも含んでもよい。
【００１５】
前記一時プール及び前記チャンクプールは、前記木構造としてＵＢＩ−Ｔｒｅｅ検索木アルゴリズムを用い、前記第１チャンクの前記荷札情報が示す前記第１チャンクのデータ範囲は複数のキーに対する値の集合として表現し、前記第２チャンクの前記索引情報は複数のキーに対する値の集合から前記第１チャンク内容のファイル内位置を検索するための索引情報であってもよい。
【００１６】
本願発明に係るチャンク読み取り装置は、チャンクを読み取る装置であって、チャンク生成装置で作成されたチャンクを入力とし、索引情報を読み取る機能と、検索条件に合致する索引情報を選択する機能と、ファイル読み取り位置を索引情報が示すファイル内位置に移動する機能と、前記移動したファイル内位置から前記第１チャンク内容を読み取る機能と、を少なくとも有する。
【００１７】
本願発明に係るチャンク生成方法は、一時プールと第１チャンクとチャンクプールを保持し、一時プール登録部と第１チャンク作成部と荷札情報生成部と第２チャンク作成部を備え、複数の情報を列挙したファイルであるチャンクを生成するチャンク生成装置が実行する方法であって、前記一時プール登録部が、情報を前記一時プールに登録し、前記一時プールが、該情報を木構造で管理する手順と、前記第１チャンク作成部が、前記一時プールから木構造で近傍の情報群を取り出し、生成しようとするチャンクが含むべき情報の列挙数よりは少ない数の情報を列挙した前記第１チャンクを作成する手順と、前記荷札情報生成部が、前記第１チャンクの識別情報を示す荷札情報を生成して前記チャンクプールに登録し、前記チャンクプールが、個々の前記第１チャンクのデータ範囲と前記第１チャンクの荷札情報を木構造で管理する手順と、前記第２チャンク作成部が、前記チャンクプールから木構造で近傍の荷札情報群を取り出し、それらの荷札情報が示す前記第１チャンクの含む情報を少なくとも含む第２チャンクを作成する手順と、を順に実行する。
【００１８】
本願発明に係るチャンク生成方法は、前記第２チャンク作成部が、ｋ個の前記第１チャンクの含む情報から前記第２チャンクを作成する際に、前記第２チャンクに前記ｋ個の第１チャンク内容のファイル内位置を検索するための索引情報と前記ｋ個の第１チャンク内容の並びをその構成要素として少なくとも含めてもよい。
【００１９】
前記一時プール及び前記チャンクプールは、前記木構造としてＵＢＩ−Ｔｒｅｅ検索木アルゴリズムを用い、前記第１チャンクの前記荷札情報が示す前記第１チャンクのデータ範囲は複数のキーに対する値の集合として表現し、前記第２チャンクの前記索引情報は複数のキーに対する値の集合から前記第１チャンク内容のファイル内位置を検索するための索引情報であってもよい。
【００２０】
本願発明に係るチャンク生成プログラムは、コンピュータに、一時プールと第１チャンクとチャンクプールを保持させ、前記一時プールでは、情報を木構造で管理させ、前記第１チャンクは、生成しようとするチャンクが含むべき情報の列挙数よりは少ない数の情報を列挙したファイルであり、前記チャンクプールでは、個々の前記第１チャンクのデータ範囲と前記第１チャンクの識別情報を示す荷札情報を木構造で管理させ、本願発明に係るチャンク生成装置の各機能を実現させるためのプログラムである。
【発明の効果】
【００２１】
以上述べたように、本発明によれば、チャンクの生成を効率的に行うことができ、生成したチャンクは容易かつ高速に読み取り処理ができるようなチャンク生成装置、チャンク読み取り装置、チャンク生成方法及びチャンク生成プログラムを実現することができる。
【図面の簡単な説明】
【００２２】
【図１】本実施の形態における装置構成を示す。
【図２】一時プール（１０１）が保持するデータ構造を示す。
【図３】一時プール（１０１）が保持するそれぞれのセンサ情報（１０２）の内容を示す。
【図４】新たに一時プール（１０１）への登録処理をしようとするセンサ情報（１０２）の内容を示す。
【図５】登録処理を行った後の一時プール（１０１）が保持するデータ構造を示す。
【図６】一時プール（１０１）から近傍のセンサ情報群を取り出す動作を示す。
【図７】作成されたＳ７というファイル名のＳチャンク（１０４）のファイルの内容を示す。
【図８】Ｓチャンクプール（１０５）が保持するデータ構造を示す。
【図９】Ｓチャンクプール（１０５）が保持する荷札情報（１０６）のうちＳ１とＳ２に対応するＳチャンク（１０４）のファイルの内容を示す。
【図１０】一時プール（１０１）からの近傍のセンサ情報群の取り出しとＳチャンク（１０４）の生成に伴ってＳチャンクプール（１０５）への登録処理をしようとする新たな荷札情報（３０１）の内容を示す。
【図１１】登録処理を行った後のＳチャンクプール（１０５）が保持するデータ構造を示す。
【図１２】Ｓチャンクプール（１０５）から近傍の荷札情報群を取り出す動作を示す。
【図１３】作成されたＬ０３というファイル名のＬチャンク（１０８）のファイルの内容を示す。
【発明を実施するための形態】
【００２３】
本発明の実施の形態の一つを以下に示す。
第１図は本実施の形態における装置構成を示す。
チャンク生成装置（１００）は、ネットワーク（１０９）に接続され、一時プール登録部（１１０）とＳチャンク作成部（１１１）とＳチャンクプール登録部（１１２）とＬチャンク作成部（１１３）を具備する。Ｓチャンクが第１チャンク、Ｌチャンクが第２チャンクに相当する。
【００２４】
さらに、チャンク生成装置（１００）は、データ保持を行う一時プール（１０１）およびＳチャンクプール（１０５）を具備する。一時プール（１０１）は２分木データ構造によりセンサ情報（１０２）を保持し、Ｓチャンクプール（１０５）は２分木データ構造により荷札情報（１０６）を保持する。Ｓチャンクプール（１０５）がチャンクプールに相当する。
【００２５】
さらに、チャンク生成装置（１００）は、Ｓチャンクを保持するＳチャンク記憶装置（１０３）およびＬチャンクを保持するＬチャンク記憶装置（１０７）を具備する。
【００２６】
第２図は一時プール（１０１）が保持するデータ構造を示す。
本図の例では６つのセンサ情報を保持している。例えば「３５：（ア）」という記載は、木の当該ノードが第３図で示す（ア）の情報本体を保持するとともに、該情報本体が含む「３５」という特定の値を主キーとして木構造により管理されることを表す。
【００２７】
２分木構造の既知の特性から、これらのセンサ情報は整列されて格納されている。すなわち、上下軸を無視して左右軸のみに着目した場合、本図の例では主キーが左から順に０→３５→３３３→５９９→２０１７→３７７６と整列されている。このような２分木データ構造の管理（挿入・検索・削除）方式は広く知られている。
【００２８】
なお、本例のように近いデータが近傍に並ぶように整列されて格納されるのは、２分木だけに見られる特徴ではなく、木構造に広く一般的に観測される特徴である。なぜなら、そもそも木構造は検索を高速に行う必要があるために順序づけてデータの索引付けを行うという根本的な理由があるため、格納されているデータが順序づけられ近傍に近いデータが並べられることは、原理上の根本的要請である。
【００２９】
第３図は一時プール（１０１）が保持するそれぞれのセンサ情報（１０２）の内容を示す。
本実施形態におけるセンサ情報とは、個々の情報のデータサイズが比較的小さく、かつ、その内部に複数の値を含むような情報である。そのような特徴を持つセンサ情報に対して本発明は効果的に機能する。特に、本実施の形態においては、それぞれのセンサ情報は「キー＝値」の任意個の並びから構成されるｕＴｕｐｌｅデータ形式によって記述することとする。
【００３０】
なお、本発明のいう情報とは、上記特徴を満たす様々な情報がその対象となるものであって、センサ情報（１０２）に限られない。具体的に一例を挙げると、温度や湿度、電流あるいは電圧値、流体の流量、物質の濃度、明度、騒音、位置、加速度などを含むセンサデバイスが計測した値を取り扱ってよく、またそれに限らず、センサ以外の例えばＷｅｂやインターネットを経由して取得した情報であってもよい。さらに、それら値に加えて、センサの特性や状態、計測日時等を示すメタデータを含む情報であってもよい。
【００３１】
本図の例ではＡ、Ｄ、Ｔという３つのキーに対してそれぞれ数の値を持っており、Ａは高度（ａｌｔｉｔｕｄｅ）、Ｄは日付（ｄａｔｅ）、Ｔは温度（ｔｅｍｐｅｒａｔｕｒｅ）を表している。例えば（ア）のセンサ情報は、高度３５ｍ、日付が２０１１年６月１１日、温度が摂氏２３．５度であることを表し、東京２３区の最も高い山で測定した気温のデータであることを示している。同様に（ウ）のセンサ情報は東京都の最も高い山（標高２０１７ｍ）で測定した気温のデータを、（エ）のセンサ情報は日本の最も高い山（標高３７７６ｍ）で測定した気温のデータを示している。そして、本実施例においては、キー「Ａ」（高度）に対して２分木データ構造を適用することで一時プール（１０１）を管理する。なお、本発明の適用範囲はｕＴｕｐｌｅデータ形式によって記述されるセンサ情報に限るものではなく、上述した特徴を持つセンサ情報一般に適用可能である。
【００３２】
第４図は新たに一時プール（１０１）への登録処理をしようとするセンサ情報（１０２）の内容を示す。
本実施の形態では、本図に示される（キ）というセンサ情報が、ネットワーク（１０９）を通じて新たに一時プール登録部（１０１）に到着し、該情報の登録処理を行う様子を以下に詳述する。
【００３３】
一時プール登録部（１１０）は、該情報を受信し、一時プール（１０１）に対して該情報を挿入することによって、センサ情報（１０２）の一時プール（１０１）への登録処理を行う。該情報のうち主キーはＡ（高度）であるから値は４５である。これを２分木構造に挿入する方法はよく知られており、その結果は次の第５図のようになる。
【００３４】
第５図は登録処理を行った後の一時プール（１０１）が保持するデータ構造を示す。
ここで、チャンク生成装置（１００）は、一時プールからＳチャンクの作成を行う以下の一連の動作を起動する。なお、起動の契機は、前述の一時プール登録部（１１０）によるセンサ情報（１０２）の一時プール（１０１）への登録処理の完了であってもよく、あるいは、該登録処理の完了とは非同期的に、タイマー等の手段によって該動作を起動してもよい。
【００３５】
まず、起動されたＳチャンク作成部（１１１）は、一時プール（１０１）から近傍のセンサ情報群を取り出す。ここで近傍とは、データの値が相互に近いことであり、かつ前述した木構造一般に見られる特性に関する考察に基づくと、木構造上で隣り合って配置されているデータであるとも言える。具体的に例示すると以下のような処理である。
【００３６】
第６図は一時プール（１０１）から近傍のセンサ情報群を取り出す動作を示す。
Ｓチャンク作成部（１１１）が特定のノードを注目点（２６１）として選択し、その近傍にあるデータを選択してそれを取り出し範囲（２６２）と定める。ここでは木構造のデータ数７個に対して、取り出し範囲の含むデータ数を３個とという定数にて動作するものとし、注目点（２６１）として（ア）を選択し、注目点のデータ（ア）およびその部分木を構成するデータ（オ）（キ）を取り出し範囲としている。
【００３７】
なお注目点（２６１）の選択方法は、この例では、日付が最も古いデータを選択している。他にも、最も日付が新しいデータを選択するとか、日付以外の他のキーに対する値（例えば第３図の例ではＤ以外のキーすなわちＡあるいはＴ）が最も大きいあるいは小さいデータを選択するとか、最も頻繁に検索によって取り出されているデータを選択するとか、複数あるいは全ての注目点を選択してみて取り出し範囲の含むデータ全体の値の幅が最も小さくなる候補を選択するといった方法が可能である。
【００３８】
Ｓチャンク作成部（１１１）は、上記により定めた取り出し範囲（２６２）のセンサ情報（１０２）を一時プール（１０１）から読み出し、新しいファイルにその内容を書き込む。該ファイルがＳチャンク（１０４）に相当する。該ファイルはＳチャンク記憶装置（１０３）に格納され、既存のＳチャンク（１０４）と重複しないファイル名を割り付ける。この例では通し番号を付与し、「Ｓ７」というファイル名で該ファイルを作成している。さらに、取り出したセンサ情報（１０２）は、一時プール（１０１）から削除する。
【００３９】
第７図は作成されたＳ７というファイル名のＳチャンク（１０４）のファイルの内容を示す。
取り出し範囲（２６２）が含むセンサ情報（オ）（ア）（キ）のｕＴｕｐｌｅデータ形式
による記述を、主キー（本実施例では「Ａ」）の値順に、テキスト形式で書き出したものとなっている。
【００４０】
次に、上述した新たなＳチャンク（１０４）の作成に伴って、Ｓチャンクプール登録部（１１２）は、Ｓチャンクプール（１０５）に対して該Ｓチャンクに対応する荷札情報（１０６）を新たに登録する処理を行う。この処理内容を示すにあたり、まず、該登録処理以前に保持されているデータの様子を示した後、登録処理の手順について具体的に説明することとする。
【００４１】
第８図はＳチャンクプール（１０５）が保持するデータ構造を示す。
本図の例では６つの荷札情報を保持している。例えば「５０〜８５：Ｓ１」という記載が荷札情報の一例であり、木の当該ノードが第９図で示すＳ１というファイル名の情報本体に対応する荷札情報であることを表す。このように荷札情報には情報本体を含んでおらず、対応する情報本体へのポインタ（ここではファイル名「Ｓ１」）と、検索に用いる主キーの値（ここでは「５０〜８５」）という情報のみが含まれている。
【００４２】
なおこのような範囲情報を主キーとして木構造に格納するにあたっては、Ｓチャンクプール（１０５）が用いる木構造が値範囲あるいは複数の値を索引として直接操作可能なデータ構造であれば、上記例であれば５０および８５という２つの数値を用いて木構造に格納してもよい。あるいは、本実施の形態においては２分木を用いており、単一の値のみを索引として直接操作可能であるため、始値「５０」のみを用いて木構造を構成することとする。すなわち、第８図の６つのノードは、始値に着目すると左から順に４５→５０→６５→８５→３３３→５９９と整列されている。いずれの木構造を用いた場合でも、本例のように近いデータが近傍に並ぶように整列されて格納されることになるのは、既に考察した通りである。
【００４３】
第９図はＳチャンクプール（１０５）が保持する荷札情報（１０６）のうちＳ１とＳ２に対応するＳチャンク（１０４）のファイルの内容を示す。
例えばＳ１というファイル名のＳチャンク（１０４）に関しては、キー「Ａ」の値のファイル内での最小値が５０、最大値が８５である。そこで、このＳチャンクに対応する荷札情報（１０６）は、上記の値範囲「５０〜８５」と、該ファイル名「Ｓ１」を値として有する。同様にＳ２というファイル名のＳチャンク（１０４）に関しては、対応する荷札情報（１０６）は値範囲「４５〜６５」とファイル名「Ｓ２」を値として有する。
【００４４】
以上でＳチャンクプール登録部（１１２）による荷札情報（１０６）の該登録処理の以前に保持されているデータの様子を示したので、以下では該当録処理の手順について述べる。
【００４５】
第１０図は一時プール（１０１）からの近傍のセンサ情報群の取り出しとＳチャンク（１０４）の生成に伴ってＳチャンクプール（１０５）への登録処理をしようとする新たな荷札情報（３０１）の内容を示す。
【００４６】
前記手順で作成されたＳ７というファイル名のＳチャンク（１０４）では、第７図で示したように、キー「Ａ」の値の最小値が０で最大値が４５である。そこで、Ｓチャンクプール登録部（１１２）は、値範囲「０〜４５」およびファイル名「Ｓ７」を値として有するＳ０７の荷札情報（３０１）を該Ｓチャンクに対応して生成する。
【００４７】
次にＳチャンクプール登録部（１１２）は、該生成したＳ７の荷札情報（３０１）をＳチャンクプール（１０５）に対して挿入することによって、荷札情報（１０６）のＳチャンクプール（１０５）への登録処理を行う。本実施の形態では該荷札情報のうち始値「０」を主キーとして２分木構造に挿入する。該挿入方法はよく知られており、その結果は次の第１１図のようになる。
【００４８】
第１１図は登録処理を行った後のＳチャンクプール（１０５）が保持するデータ構造を示す。
ここで、チャンク生成装置（１００）は、ＳチャンクプールからＬチャンクの作成を行う以下の一連の動作を起動する。なお、起動の契機は、前述のＳチャンクプール登録部（１１２）による荷札情報（１０６）のＳチャンクプール（１０５）への登録処理の完了であってもよく、あるいは、該登録処理の完了とは非同期的に、タイマー等の手段によって該動作を起動してもよい。
【００４９】
まず、起動されたＬチャンク作成部（１１３）は、Ｓチャンクプール（１０５）から近傍の荷札情報群を取り出す。ここで近傍とは、データの値が相互に近いことであり、かつ前述した木構造一般に見られる特性に関する考察に基づくと、木構造上で隣り合って配置されているデータであるとも言える。具体的に例示すると以下のような処理である。
【００５０】
第１２図はＳチャンクプール（１０５）から近傍の荷札情報群を取り出す動作を示す。
Ｌチャンク作成部（１１３）が特定のノードを注目点（３２１）として選択し、その近傍にあるデータを選択してそれを取り出し範囲（３２２）と定める。ここでは木構造のデータ数７個に対して、取り出し範囲の含むデータ数を３個という定数にて動作するものとし、注目点（３２１）およびその部分木を構成するデータを取り出し範囲としている。
【００５１】
なお注目点（３２１）の選択方法は、この例では、Ｓチャンクの生成日付が最も古い、すなわち、Ｓチャンクのファイル名が最も若い通し番号をもつデータを選択している。他にも、最も生成日付が新しいデータを選択するとか、Ｓチャンクに格納される個々の行すなわち個々のセンサ情報の任意のキーに対する値が最も大きいあるいは小さいデータを選択するとか、最も頻繁に検索によって取り出されているデータを選択するとか、複数あるいは全ての注目点を選択してみて取り出し範囲の含むデータ全体の値の幅が最も小さくなる候補を選択するといった方法が可能である。
【００５２】
Ｌチャンク作成部（１１３）は、上記により定めた取り出し範囲（３２２）の荷札情報（１０６）をＳチャンクプール（１０５）から読み出し、該読み出された荷札情報（１０６）に対応するＳチャンク（１０４）のファイルをＳチャンク記憶装置（１０３）から読み出し、新しいファイルにその内容を第１３図で示すファイル形式で書き込む。該ファイルがＬチャンク（１０８）に相当する。該ファイルはＬチャンク記憶装置（１０７）に格納され、既存のＬチャンク（１０８）と重複しないファイル名が割り付けられる。この例では通し番号を付与し、「Ｌ０３」というファイル名で該ファイルを作成している。さらに、取り出した荷札情報（１０６）は、Ｓチャンクプール（１０５）から削除する。
【００５３】
なお、チャンク生成装置（１００）は、Ｌチャンク記憶装置（１０７）内に格納されているＬチャンク（１０８）のファイルを、ＮＦＳあるいはＣＩＦＳあるいはＦＴＰあるいはＨＴＴＰあるいはＷｅｂＤＡＶあるいはＧｏｏｇｌｅＦＳあるいはＨａｄｏｏｐ  ＤＦＳのようなファイル共有手段を用いて、ネットワーク（１０９）を介して他の計算機に公開してもよい。
【００５４】
第１３図は作成されたＬ０３というファイル名のＬチャンク（１０８）のファイルの内容を示す。
該ファイルは４つのブロックから構成され、第２〜第４ブロックは、上記手順において読み出したＳチャンク（１０４）のファイル内容をそのまま写し書きしたものである。本例では、取り出し範囲（３２２）はＳ７、Ｓ２、Ｓ１の３つのＳチャンクに対応する荷札情報を示しているので、これらのＳチャンクのファイル内容を順に写し書きし、区切り符号「［ＥＯＢ］」を末尾に付加する。これらのブロックは、センサ情報の情報本体が格納されている。
【００５５】
さらに、該ファイルの先頭ブロックは、後続ブロックの荷札情報を、後続ブロックの個数の行数だけ並べ、最後に区切り符号を付加したものである。ここで荷札情報とは、情報本体を含んでおらず、対応する情報本体へのポインタと、検索に用いる主キーの値という情報のみが含まれているものを意味する。例えば１行目の例では、情報本体へのポインタとして１つ目のＳチャンク本体が格納されているブロック（すなわち第２ブロック）がファイル先頭から何バイト目から始まるかというオフセット情報の１６進数表記と、キー「Ａ」に対して値範囲が「０〜４５」であるという情報が格納されている。
【００５６】
このように、Ｌチャンク（１０８）の先頭ブロックに荷札情報が記載されていることにより、Ｌチャンク（１０８）のファイルの読み取りおよび内部で必要なセンサ情報を探し出す処理が、次のように効率的に実現できる。以下、本発明に係るチャンク読み取り装置の動作について説明する。
【００５７】
ネットワーク（１０９）に接続されたチャンク読み取り装置は、チャンク生成装置（１００）内に生成されたＬチャンクのファイルを、上記のファイル共有手段を用いて転送する。
次に、以下の手順によって該ファイルの内容を読み取り、探索を行う。
【００５８】
説明のため、例えば該チャンク読み取り装置はＬチャンクのファイル「Ｌ０３」を転送してきており、その中から、高度が１０ｍ〜４０ｍの範囲で計測された気温を調査したいとする。
まず、該装置は該ファイルのうち、先頭ブロックのみをメモリ上に読み出す。
次に該装置は、先頭ブロックのそれぞれの行に記載される荷札情報について、主キーの値の範囲と上記調査範囲との重なり集合が空集合でない行を抽出する。この例では、「Ａ＝０〜４５」という範囲の情報と「１０〜４０」という調査範囲とは、重なり集合が１０〜４０という空でない範囲を持つので、この行が抽出される。その他の行は、重なりが空集合になるので、抽出されない。
【００５９】
次いで、該装置は、抽出された行の荷札情報に記載されるポインタに従って、情報本体の位置を特定する。
この例では、１行目の「＿ｏｆｆｓｅｔ＝」という部分に続く１６進数数値が、対応する情報本体が格納されている第２ブロックに対する当該ファイル内での先頭からのオフセット情報である。
【００６０】
次いで、該装置は、該位置から情報本体をメモリ上に読み出す。すなわちファイルのシークを行い、その位置から、区切り符号が出現するまでファイルを読み出す。
【００６１】
次いで、該装置は、メモリ上の読み出した該情報本体の各行を調べ、上記調査範囲に合致する行を抽出する。
この例では、第２ブロックには３行分のセンサ情報が記載されており、その中で高度が１０〜４０という調査範囲に合致するのは「Ａ＝３５，Ｄ＝２０１１１０６１１，Ｔ＝２３．５」という行のみなので、この行が抽出される。これが探索結果となるので、結論として調査したい気温は「摂氏２３．５度」であるという結果を得る。
【００６２】
上記一連の手順において、該Ｌチャンクには合計９個のセンサ情報が格納されているにもかかわらず、実際にセンサ情報本体をファイルからメモリ上に読み取った行数は、３行であった。また、荷札情報まで含めても、３＋３＝６行であった。仮に、９つのセンサ情報がフラットに記載されているファイルを読み取って同様の探索を行うとすると、９行分の情報をファイルからメモリ上に読み取る処理が必要になるはずであるから、それに比べて上記処理は効率的な読み取りおよび探索処理が実現できていると言える。
【００６３】
本実施の形態では、各Ｓチャンクが３個、各Ｌチャンクが３×３＝９個のセンサ情報を含む例で説明したが、これを１００×１００個あるいは１０００×１０００個などとした場合、上記の効率差はさらに拡大し、本実施形態における上記処理の優位性がさらに増す。この効率性は、本実施形態におけるＬチャンクのファイル形式が、それ単独である種の木構造を形成していることに起因している。すなわちＬチャンクは、先頭ブロックが木の１階層目のノード（ルートノード）、第２〜末尾ブロックが木の２階層目のノードとなるような、２階層の木構造を形成している。
【００６４】
本実施の形態の例ではルートノードが３つの後続ブロックを持ち、各後続ブロックは３行分のセンサ情報を含むので、３分木を形成している。このように木構造であるため、木構造の特質を利用した上述のようなチャンク読み取り装置を用いることによって、効率的にＬチャンクの中のセンサ情報を探索することができる。
【００６５】
さらにこのＬチャンクのファイル形式は、木構造を形成していながら、すべてテキスト形式で記述されており、バイナリ形式による可読困難な情報を含む必要がないという利点がある。具体的には、第２ブロック以降がセンサ情報のｕＴｕｐｌｅデータ形式による表記をそのまま並べたものであるため、人間にとって可読性が高く、また、センサ情報全体を読み取るプログラムを極めて簡易に作成することができる。
【００６６】
さらに、第１ブロックについても単純な形式であるため、人間にとって可読性が高く、また、荷札情報を読み取るあるいは読み飛ばすプログラムを簡易に作成することができる。このような取り扱い容易性と、木構造による効率性を、両立している点が本実施形態のＬチャンクのファイル形式の特徴の一つである。
【００６７】
本実施形態を用いれば、このような効率的な読み取り処理を可能とするＬチャンクのファイル形式を、２段階の木構造を用いて効率的に生成することができる。このような本実施形態の方式は、従来手法すなわち１段階の木構造すなわち一時プールのみを用いて、９個のセンサ情報を抽出し、その９個のセンサ情報をさらに並べ替えてＬチャンクの上記ファイル構造を生成する方式よりも、該並べ替えの処理が不要となり、効率的にＬチャンクを生成できる。
【００６８】
さらに、本実施形態の方式では、該１段階の木構造のみを用いる従来手法に比べて、一時プールのサイズを小さく保つことが可能となる。なぜならば、近傍のセンサ情報を効果的に集めて取り出し範囲とするためには、取り出す個数に対して母集団の個数が十分に大きくなければならない。この比率が例えば０．１％すなわち１０００倍の個数が必要だったとして、個々のＬチャンクに例えば１０００×１０００＝１００万個のセンサ情報を格納するとき、従来手法では１０００×１０００×１０００＝１０億個のセンサ情報を一時プールが保持しなければならず、処理負荷が高い。
【００６９】
本実施形態によれば、一時プールからは１０００個ずつ取り出すので１０００×１０００＝１００万個を保持すればよく、またＳチャンクプールも同じく１０００個ずつ取り出すので１０００×１０００＝１００万個を保持すればよいので、大幅に処理負荷を軽減でき、効率的に目的とするＬチャンクを生成することができる。
【００７０】
なお、本実施の形態においては、一時プールおよびＳチャンクプールという２段階の木構造を用いて最終的な目的とするチャンクのファイル（ここではＬチャンク）を生成した。本発明の範囲はこれに限るものではなく、Ｓチャンクに対して行ったのと同様のやり方をＬチャンクに対しても適用して、Ｌチャンクプールを構成し、Ｌチャンクを複数個集めた「ＬＬチャンク」を生成するような、３段階の木構造によるチャンク生成も可能である。さらには、同様に４段階あるいは５段階といったことも可能であるが、前述した処理容易性の利点が薄れていくため、２〜３段階程度が適切である。
【００７１】
本実施の形態において、一時プール（１０１）およびＳチャンクプール（１０５）は２分木データ構造を用いて実現された。本発明の範囲はこれに限るものではなく、これらの片方あるいは両方に対して、ＡＶＬ木、Ｂ木、Ｂ＋木、Ｒ木などを含む任意の木構造が適用可能である。特に、多次元検索木Ｕｂｉ−ｔｒｅｅを適用することができ、その場合は次に述べる顕著な利点を得ることができる。すなわち、Ｕｂｉ−ｔｒｅｅは複数の値ならびに値範囲を一度に索引として処理可能なデータ構造である。
【００７２】
さらに、キーの種類すなわち次元数は数百といった規模で取り扱い可能である。さらに、各データに値を含む次元と含まない次元が共存しても効率的に処理可能である。これらの特徴から、Ｕｂｉ−ｔｒｅｅにはｕＴｕｐｌｅデータ形式で記述されたセンサ情報を直接格納し、探索処理を行うことができる。このようなＵｂｉ−ｔｒｅｅを本実施形態の一時プールならびにＳチャンクプールに用いると、主キーとして全ての値、すなわちｕＴｕｐｌｅデータ全体をそのまま木構造に格納することができる。その結果、全ての値を加味した上で最もよく近傍を形成するセンサ情報あるいは荷札情報の集合を取り出し範囲として得ることができる。
【００７３】
さらに、荷札情報には主キーの範囲を記載するのであるから、全ての値を主キーとして取ることができるＵｂｉ−ｔｒｅｅにおいては、荷札情報に全ての値の範囲を記載することができる。これによって、Ｌチャンクの先頭ブロックに記載される荷札情報には全ての値の範囲が列挙されるため、上記示した例では高度すなわち「Ａ」の範囲条件のみ効率的に探索可能であったが、Ｕｂｉ−ｔｒｅｅを用いれば全ての種類の範囲条件あるいはそれらの組み合わせに対しても効率的なＬチャンク内の探索を可能にできる。なお、この場合、上記で指摘したＬチャンクが形成する「ある種の木構造」とは、自然にＵｂｉ−ｔｒｅｅ構造そのものになっている点を特に指摘しておく。
【００７４】
以上述べたように、本実施形態においてＵｂｉ−ｔｒｅｅを木構造に用いることにより、荷札情報の生成方式ならびにＬチャンクのファイル形式との相乗効果により、顕著な効果を得ることができる。
【００７５】
なお、本発明の装置は、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【産業上の利用可能性】
【００７６】
本発明は情報通信産業に適用することができる。
【符号の説明】
【００７７】
１００：チャンク生成装置
１０１：一時プール
１０２：センサ情報
１０３：Ｓチャンク記憶装置
１０４：Ｓチャンク
１０５：Ｓチャンクプール
１０６：荷札情報
１０７：Ｌチャンク記憶装置
１０８：Ｌチャンク
１１１：Ｓチャンク作成部
１１２：Ｓチャンクプール登録部
１１３：Ｌチャンク作成部
２６１、３２１：注目点
２６２、３２２：取り出し範囲
３０１：Ｓ７の荷札情報
【図１】
0005517263.tif 000002
【図２】
0005517263.tif 000003
【図３】
0005517263.tif 000004
【図４】
0005517263.tif 000005
【図５】
0005517263.tif 000006
【図６】
0005517263.tif 000007
【図７】
0005517263.tif 000008
【図８】
0005517263.tif 000009
【図９】
0005517263.tif 000010
【図１０】
0005517263.tif 000011
【図１１】
0005517263.tif 000012
【図１２】
0005517263.tif 000013
【図１３】
0005517263.tif 000014