JP2015055914A - 情報処理装置、情報処理方法及びプログラム - Google Patents
情報処理装置、情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP2015055914A JP2015055914A JP2013187446A JP2013187446A JP2015055914A JP 2015055914 A JP2015055914 A JP 2015055914A JP 2013187446 A JP2013187446 A JP 2013187446A JP 2013187446 A JP2013187446 A JP 2013187446A JP 2015055914 A JP2015055914 A JP 2015055914A
- Authority
- JP
- Japan
- Prior art keywords
- relative coordinate
- coordinate value
- data length
- coordinates
- ordering
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】よりデータ長を削減することを目的とする。
【解決手段】多次元空間に構築された多分木構造データに対して多次元空間上の各子ノードの座標を空間充填曲線により順序付けする順序付け手段と、順序付け手段により順序づけられた順番に従って、親ノード内の各子ノードの位置を特定する座標の各子ノード間の相対座標値を導出する第一の導出手段と、第一の導出手段により導出された相対座標値を基に子ノードの座標情報のデータ長を導出する第二の導出手段と、第二の導出手段によって算出されたデータ長で相対座標値を記憶するデータ記憶手段と、を有することによって課題を解決する。
【選択図】図3
【解決手段】多次元空間に構築された多分木構造データに対して多次元空間上の各子ノードの座標を空間充填曲線により順序付けする順序付け手段と、順序付け手段により順序づけられた順番に従って、親ノード内の各子ノードの位置を特定する座標の各子ノード間の相対座標値を導出する第一の導出手段と、第一の導出手段により導出された相対座標値を基に子ノードの座標情報のデータ長を導出する第二の導出手段と、第二の導出手段によって算出されたデータ長で相対座標値を記憶するデータ記憶手段と、を有することによって課題を解決する。
【選択図】図3
Description
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
従来技術において、空間検索や類似画像検索といった多次元空間のデータを管理する多次元インデックスがある。代表的なものとして、R−Tree(Rectangle−Tree)、SS−Tree(Similarity Search−Tree)、SR−Tree(Sphere/Rectangle−Tree)といった多分木構造のインデックス形式がある。
例えば、R−Treeを使った場合、情報処理装置等は、階層的に入れ子になった相互に重なり合う最小外接矩形(Minimum Bounding Rectangle:以下、MBR)で空間を分割し、その空間の領域(座標情報)を表現する。情報処理装置等が、MBRの形状を表現するには、空間の各軸における夫々の最小座標と最大座標とが必要である。
例えば、R−Treeを使った場合、情報処理装置等は、階層的に入れ子になった相互に重なり合う最小外接矩形(Minimum Bounding Rectangle:以下、MBR)で空間を分割し、その空間の領域(座標情報)を表現する。情報処理装置等が、MBRの形状を表現するには、空間の各軸における夫々の最小座標と最大座標とが必要である。
各MBRを固定データ長によって絶対座標で表現する場合、位置表現のためのデータサイズのコストが高くなる。下層のMBRの情報はファイルシステムのアクセス単位でまとめて格納されており、1アクセス単位に格納できるMBRの情報の個数が限定される。そのため、固定データ長の座標表現を用いるとディスクアクセス数の増大を招くという課題が生じる。そこで、下位のMBRの座標情報を最上位のMBRの座標情報からの相対的な位置で表現して、データ長を削減し、探索の際、少ないディスクアクセスで検索する多次元空間のデータ構造が提案されている(特許文献1参照)。
しかしながら、特許文献1記載の技術によれば、データ長が親ノードの辺の長さとなる。
本発明は、よりデータ長を削減することを目的とする。
本発明は、よりデータ長を削減することを目的とする。
そこで、本発明は、多次元空間に構築された多分木構造データに対して多次元空間上の各子ノードの座標を空間充填曲線により順序付けする順序付け手段と、前記順序付け手段により順序づけられた順番に従って、親ノード内の各子ノードの位置を特定する座標の各子ノード間の相対座標値を導出する第一の導出手段と、前記第一の導出手段により導出された相対座標値を基に子ノードの座標情報のデータ長を導出する第二の導出手段と、前記第二の導出手段によって算出されたデータ長で前記相対座標値を記憶するデータ記憶手段と、を有する。
本発明によれば、よりデータ長を削減することができる。
以下、本発明の実施形態について図面に基づいて説明する。
<実施形態1>
図1は、データ圧縮装置100の構成の一例を示す図である。データ圧縮装置100は、情報処理装置の一例である。
データ圧縮装置100は、ユーザによって利用されるパーソナルコンピュータ(PC)等の装置であり、CPU、入力部、表示部、メモリ、通信部、ローカルI/F、記憶部等のハードウェアが内部バスで接続されている。なお、本実施形態では、データ圧縮装置をPCとして説明するが、これに限定されず、携帯端末やタブレット端末等であってもよい。
CPUは、データ圧縮装置100内の各部を制御する中央処理装置である。入力部は、キーボードやマウス等の操作装置である。表示部は、液晶モニタ等の表示装置である。メモリは、RAM、ROM等の記憶装置である。通信部は、ネットワーク(有線又は無線ネットワーク)に接続するためのインターフェースであり、他のデータ圧縮装置やサーバ等とデータ通信を行うことで、コンテンツデータを送受信することが可能となる。ローカルI/Fは、外部記憶媒体(USBメモリ、SDカード等)との接続に用いられるインターフェースである。記憶部は、ハードディスク等の記憶装置である。
図1は、データ圧縮装置100の構成の一例を示す図である。データ圧縮装置100は、情報処理装置の一例である。
データ圧縮装置100は、ユーザによって利用されるパーソナルコンピュータ(PC)等の装置であり、CPU、入力部、表示部、メモリ、通信部、ローカルI/F、記憶部等のハードウェアが内部バスで接続されている。なお、本実施形態では、データ圧縮装置をPCとして説明するが、これに限定されず、携帯端末やタブレット端末等であってもよい。
CPUは、データ圧縮装置100内の各部を制御する中央処理装置である。入力部は、キーボードやマウス等の操作装置である。表示部は、液晶モニタ等の表示装置である。メモリは、RAM、ROM等の記憶装置である。通信部は、ネットワーク(有線又は無線ネットワーク)に接続するためのインターフェースであり、他のデータ圧縮装置やサーバ等とデータ通信を行うことで、コンテンツデータを送受信することが可能となる。ローカルI/Fは、外部記憶媒体(USBメモリ、SDカード等)との接続に用いられるインターフェースである。記憶部は、ハードディスク等の記憶装置である。
次に、記憶部に格納されるプログラム等について説明を行う。記憶部にはプログラムが記憶されており、CPUがプログラムに基づき処理を実行することにより後述するソフトウェア構成やフローチャートに係る処理等が実現される。但し、以下では説明の簡略化のため、特に言及しない限り、記憶部にソフトウェアが記憶されているように説明すると共に図に記載する。
記憶部には、オペレーティングシステム、ユーザアプリケーション110、多次元インデックス検索エンジン120、データ記憶部130、及び他の機能に関するソフトウェアが記憶されている。以下、本実施形態に関わるもののみを説明する。
ユーザアプリケーション110は、ユーザから入力部を介して入力された指示により検索・登録・更新・削除要求を後述する多次元インデックス検索エンジン120に送る。
記憶部には、オペレーティングシステム、ユーザアプリケーション110、多次元インデックス検索エンジン120、データ記憶部130、及び他の機能に関するソフトウェアが記憶されている。以下、本実施形態に関わるもののみを説明する。
ユーザアプリケーション110は、ユーザから入力部を介して入力された指示により検索・登録・更新・削除要求を後述する多次元インデックス検索エンジン120に送る。
多次元インデックス検索エンジン120は、空間充填曲線順序付け部121、相対座標値算出部122、データ長算出部123を備える。
空間充填曲線順序付け部121は、多次元空間に構築された多分木構造データに対して多次元空間上の各子ノードの座標を空間充填曲線により順序付けする。
相対座標値算出部122は、空間充填曲線順序付け部121によって順序づけられた順番に従って、親ノード内の各子ノードの位置を特定する座標の各子ノード間の相対座標値を算出する。
データ長算出部123は、相対座標値算出部122によって算出された相対座標値を基に子ノードの座標情報のデータ長を算出する。
データ記憶部130は、後述する多次元インデックスの階層構造、後述するノード情報、相対座標値算出部122によって算出された相対座標値、データ長算出部123によって算出されたデータ長等を記憶する。
空間充填曲線順序付け部121は、多次元空間に構築された多分木構造データに対して多次元空間上の各子ノードの座標を空間充填曲線により順序付けする。
相対座標値算出部122は、空間充填曲線順序付け部121によって順序づけられた順番に従って、親ノード内の各子ノードの位置を特定する座標の各子ノード間の相対座標値を算出する。
データ長算出部123は、相対座標値算出部122によって算出された相対座標値を基に子ノードの座標情報のデータ長を算出する。
データ記憶部130は、後述する多次元インデックスの階層構造、後述するノード情報、相対座標値算出部122によって算出された相対座標値、データ長算出部123によって算出されたデータ長等を記憶する。
次に本実施形態で対象とする多次元空間の中にある座標情報を管理する多次元インデックスの階層構造とノード情報とについて説明する。
図2は、二次元座標情報等、多次元情報のインデックス付けに使われるR−Treeの木構造の一例を示す図である。本実施形態はR−Treeに限定されるものではなく、多次元インデックス構造一般に適用できる。
R−Treeでは階層的に入れ子になった相互に重なり合う最小外接矩形(以下、MBRという)により空間を分割する。本例では三階層で管理する場合を例に説明する。親ノードになる一階層目のMBR「N1」で囲まれている空間(範囲)を、子ノードであるMBR「N11」、「N12」で分割している。更に「N11」を「N111」、「N112」、「N113」、「N114」で、「N12」を「N121」、「N122」、「N123」で夫々分割している。データ圧縮装置100は、このようにMBRで分割された空間を階層化して管理する。最下層のノード(葉ノード)にはユーザが登録した領域(空間オブジェクト)が格納されている。
図2は、二次元座標情報等、多次元情報のインデックス付けに使われるR−Treeの木構造の一例を示す図である。本実施形態はR−Treeに限定されるものではなく、多次元インデックス構造一般に適用できる。
R−Treeでは階層的に入れ子になった相互に重なり合う最小外接矩形(以下、MBRという)により空間を分割する。本例では三階層で管理する場合を例に説明する。親ノードになる一階層目のMBR「N1」で囲まれている空間(範囲)を、子ノードであるMBR「N11」、「N12」で分割している。更に「N11」を「N111」、「N112」、「N113」、「N114」で、「N12」を「N121」、「N122」、「N123」で夫々分割している。データ圧縮装置100は、このようにMBRで分割された空間を階層化して管理する。最下層のノード(葉ノード)にはユーザが登録した領域(空間オブジェクト)が格納されている。
各MBRは、識別番号(以下、ノード番号という)と座標とが対応付けられて管理されている。一階層目は親ノードのMBR「N1」のノード番号と座標とが対応付けられている。二階層目には、親ノードMBR「N1」の空間を分割している子ノードMBR「N11」とMBR「N12」とにそれぞれのノード番号と座標とが対応付けられて管理されている。三階層目には、二階層目の子ノードのMBR「N11」の空間に属している子ノード「N111」、「N112」、「N113」、「N114」のそれぞれにノード番号と座標とが対応付けられて管理されている。同じく、二階層目の子ノードMBR「N12」の空間に属している子ノードMBR「N121」、「N122」、「N123」のそれぞれにノード番号と座標とが対応付けられて管理されている。
(検索概要)
上記のように三階層で管理されている親ノードのMBR「N1」の空間(範囲)を多次元インデックス検索エンジン120が検索する場合について説明する。例えば、「現在地から500m以内のコンビニエンスストアを探す」というような場合、多次元インデックス検索エンジン120は次の手順で検索を行う。
1.ユーザからの入力に従い、現在地から500m範囲に相当する矩形を設定し、検索領域とする。
2.検索時に各階層の座標情報をデータ記憶部の記録単位分(親ノードの中に格納されている子ノードの分)読み込み、検索領域と比較する。
3.検索領域と重なる子ノードを最下層のノード(葉ノード)に到達するまで再帰的に読み込んでいく。
4.葉ノード内に格納されているユーザが登録した領域(空間オブジェクト)が検索領域の検索条件(範囲検索、交差検索、包含検索)に合致するか否かを判定する。
5.検索条件に合致した空間オブジェクトを検索結果としてユーザアプリケーション110に返す。
上記のように三階層で管理されている親ノードのMBR「N1」の空間(範囲)を多次元インデックス検索エンジン120が検索する場合について説明する。例えば、「現在地から500m以内のコンビニエンスストアを探す」というような場合、多次元インデックス検索エンジン120は次の手順で検索を行う。
1.ユーザからの入力に従い、現在地から500m範囲に相当する矩形を設定し、検索領域とする。
2.検索時に各階層の座標情報をデータ記憶部の記録単位分(親ノードの中に格納されている子ノードの分)読み込み、検索領域と比較する。
3.検索領域と重なる子ノードを最下層のノード(葉ノード)に到達するまで再帰的に読み込んでいく。
4.葉ノード内に格納されているユーザが登録した領域(空間オブジェクト)が検索領域の検索条件(範囲検索、交差検索、包含検索)に合致するか否かを判定する。
5.検索条件に合致した空間オブジェクトを検索結果としてユーザアプリケーション110に返す。
図3は、データ圧縮装置100のソフトウェア構成の一例を示す図である。
データ圧縮装置100のソフトウェア構成は、ユーザアプリケーション110と、多次元インデックス検索エンジン120と、データ記憶部130と、を含む。
ユーザアプリケーション110は、ユーザからの指示により検索・登録・更新・削除要求を多次元インデックス検索エンジン120に送る。例えば、検索要求であれば、ユーザアプリケーション110は、検索範囲を指定した領域(R−Treeであれば矩形)の座標を多次元インデックス検索エンジン120に送る。登録、更新系であれば、ユーザアプリケーション110は、登録、更新を行う領域(以下、空間オブジェクトという)のID番号と座標情報とを多次元インデックス検索エンジン120に送る。ID番号は空間オブジェクトを特定する一意な番号であり、座標情報は空間オブジェクトの領域を定義する値である(R−Treeの場合は最小座標の座標値及び最大座標の座標値)。削除要求であれば、ユーザアプリケーション110は、IDを指定することで、対象の空間オブジェクトを削除する。
データ圧縮装置100のソフトウェア構成は、ユーザアプリケーション110と、多次元インデックス検索エンジン120と、データ記憶部130と、を含む。
ユーザアプリケーション110は、ユーザからの指示により検索・登録・更新・削除要求を多次元インデックス検索エンジン120に送る。例えば、検索要求であれば、ユーザアプリケーション110は、検索範囲を指定した領域(R−Treeであれば矩形)の座標を多次元インデックス検索エンジン120に送る。登録、更新系であれば、ユーザアプリケーション110は、登録、更新を行う領域(以下、空間オブジェクトという)のID番号と座標情報とを多次元インデックス検索エンジン120に送る。ID番号は空間オブジェクトを特定する一意な番号であり、座標情報は空間オブジェクトの領域を定義する値である(R−Treeの場合は最小座標の座標値及び最大座標の座標値)。削除要求であれば、ユーザアプリケーション110は、IDを指定することで、対象の空間オブジェクトを削除する。
多次元インデックス検索エンジン120は、所定の方式、例えばR−Treeの検索・登録・更新・削除アルゴリズムで要求を実行するため、データ記憶部130に構築されたインデックスにアクセスし、その結果をユーザアプリケーション110に返す。
データ記憶部130(例えば、関係データベースやKVS(Key Value Store)やファイルシステム)には、多次元インデックスの情報として親ノードと子ノードとが対応付けられて記憶され、多次元インデックスの階層構造を表現している。
データ記憶部130には、図3に例示するように、親ノードを識別する「ノード番号」とその親ノードに含まれている1つ以上の子ノードの「子ノード番号」と各子ノードの「座標情報」(「座標値1」、「座標値2」・・・)とが対応づけて記憶されている。親ノードと子ノードとの対応付けは、データ記憶部130の1記憶単位(関係データベースであれば1ページサイズ、ファイルシステムであれば1クラスタ)に格納されており、データ長は固定長である。
データ記憶部130(例えば、関係データベースやKVS(Key Value Store)やファイルシステム)には、多次元インデックスの情報として親ノードと子ノードとが対応付けられて記憶され、多次元インデックスの階層構造を表現している。
データ記憶部130には、図3に例示するように、親ノードを識別する「ノード番号」とその親ノードに含まれている1つ以上の子ノードの「子ノード番号」と各子ノードの「座標情報」(「座標値1」、「座標値2」・・・)とが対応づけて記憶されている。親ノードと子ノードとの対応付けは、データ記憶部130の1記憶単位(関係データベースであれば1ページサイズ、ファイルシステムであれば1クラスタ)に格納されており、データ長は固定長である。
図4は、データ記憶部130における多次元インデックスのデータ格納構造の一例を示す図である。1つの親ノードに含まれる子ノードの座標情報を格納する領域を概念的に示したものである。データ記憶部130で規定される1記憶単位(関係データベースであれば1ページサイズ、ファイルシステムであれば1クラスタ)を示しており、データ長は固定長である。
図4の例では、先頭の2Byteに親ノードの位置する階層数、次の2Byteに親ノードに格納される子ノードの数が格納される。これに続いて、子ノードの個数に応じた領域情報がデータ記憶部130の1記憶単位で規定されるデータ長(固定長)まで順次格納される。
領域情報は、先頭8Byteに子ノードを特定するノード番号が格納され、次に、次元数に応じた子ノードの座標値が格納される。本実施形態は二次元であり、各子ノードの座標値を格納する領域には4Byteで表現される4つの座標(計16Byte)、即ち、X座標、Y座標の最小値と最大値と(Xmin、Xmax、Ymin、Ymax)が格納される。例えば、三次元の場合は、更にZ座標の最小値と最大値と(Zmin、Zmax)が追加されるというように、次元数に応じた値が格納される。
図4の例では、先頭の2Byteに親ノードの位置する階層数、次の2Byteに親ノードに格納される子ノードの数が格納される。これに続いて、子ノードの個数に応じた領域情報がデータ記憶部130の1記憶単位で規定されるデータ長(固定長)まで順次格納される。
領域情報は、先頭8Byteに子ノードを特定するノード番号が格納され、次に、次元数に応じた子ノードの座標値が格納される。本実施形態は二次元であり、各子ノードの座標値を格納する領域には4Byteで表現される4つの座標(計16Byte)、即ち、X座標、Y座標の最小値と最大値と(Xmin、Xmax、Ymin、Ymax)が格納される。例えば、三次元の場合は、更にZ座標の最小値と最大値と(Zmin、Zmax)が追加されるというように、次元数に応じた値が格納される。
多次元インデックス検索エンジン120は、多次元インデックスの検索時は、図2に示す上位階層から順に各ノードが検索範囲に含まれるかどうかを判定していく。この際、多次元インデックス検索エンジン120は、1階層下のノードを参照する際にノード格納領域にアクセスする。
この検索を高速化するには、多次元インデックス検索エンジン120によるノード格納領域の読み込みの回数を減らし、I/Oへのアクセス回数を削減可能とすることが必要である。そのために、ノード格納領域により多くの子ノード情報を格納し、一度に多くの子ノードの情報を参照できるようにすることが有用である。しかし、ノード格納領域はデータ記憶部130で規定されるので、データ長は固定であり、このノード格納領域により多くの子ノードの情報を格納するには子ノードの持つ情報(座標値等)を圧縮することが必要である。
そこで、本実施形態は、親ノード内の子ノード座標を表現するのに必要な最小限のデータ長(以下、最小データ長という)を算出し、算出した最小データ長で子ノードの座標情報(Xmin、Xmax、Ymin、Ymax)を表現する。即ち、データ長を圧縮することで、ノード格納領域に格納できる子ノード数が増加させて、同じ子ノード数を参照する際のI/O回数を削減可能としている。
この検索を高速化するには、多次元インデックス検索エンジン120によるノード格納領域の読み込みの回数を減らし、I/Oへのアクセス回数を削減可能とすることが必要である。そのために、ノード格納領域により多くの子ノード情報を格納し、一度に多くの子ノードの情報を参照できるようにすることが有用である。しかし、ノード格納領域はデータ記憶部130で規定されるので、データ長は固定であり、このノード格納領域により多くの子ノードの情報を格納するには子ノードの持つ情報(座標値等)を圧縮することが必要である。
そこで、本実施形態は、親ノード内の子ノード座標を表現するのに必要な最小限のデータ長(以下、最小データ長という)を算出し、算出した最小データ長で子ノードの座標情報(Xmin、Xmax、Ymin、Ymax)を表現する。即ち、データ長を圧縮することで、ノード格納領域に格納できる子ノード数が増加させて、同じ子ノード数を参照する際のI/O回数を削減可能としている。
より具体的には、本実施形態では、親ノードに含まれる子ノードについて、子ノード間の最小座標を相対座標によって表現することにより、子ノードの座標を表現するためのデータ長を削減(圧縮)している。
本実施形態では、各子ノードのある内部座標を子ノード間の相対座標で順番に表現する。内部座標はノードの領域形状を表す座標を指し、本実施形態で示すR−Treeインデックス方式ではX、Y座標それぞれの軸の最小値を示す最小座標と最大値を示す最大座標とがある。本実施形態では、R−Tree、子ノード間相対座標で表現する座標に最小座標を採用する。なお、採用する内部座標は絶対座標に復元でき、各子ノードで同じ種類のものを採用すればよく、最大座標を採用してもよい。また、内部座標の表現は直交座標だけでなく一般化座標による表現でもよい。
本実施形態では、各子ノードのある内部座標を子ノード間の相対座標で順番に表現する。内部座標はノードの領域形状を表す座標を指し、本実施形態で示すR−Treeインデックス方式ではX、Y座標それぞれの軸の最小値を示す最小座標と最大値を示す最大座標とがある。本実施形態では、R−Tree、子ノード間相対座標で表現する座標に最小座標を採用する。なお、採用する内部座標は絶対座標に復元でき、各子ノードで同じ種類のものを採用すればよく、最大座標を採用してもよい。また、内部座標の表現は直交座標だけでなく一般化座標による表現でもよい。
図5は、二次元の座標空間のノードの木構造の一例を示す図である。各子ノードの最小座標を用いて、子ノード間の相対座標を表現した場合の一例であり、親ノードのMBR「M0」に子ノードのMBRとしてM1、M2、M3、M4、M5が登録されている。各子ノードの内部座標、ここでは最小座標をx1、x2、x3、x4、x5とし、各最小座標間の相対座標(R1、R2、R3、R4)として説明する。
このような場合、格納する子ノードのデータ長を短くする(圧縮する)には、各子ノードの内部座標間の距離が短くなる順序で相対座標を計算する必要がある。本実施形態では、子ノードの(内部座標の)順序付けには、曲線上の距離が近いほど実空間での距離も近くなる性質を持つ空間充填(充満)曲線によって得られた順序で子ノードの並び替えを行う。なお、空間充填(充満)曲線については、参考文献参照。
参考文献:H.ザーガン著、H.Sagan原著、鎌田 清一郎 翻訳、「空間充填曲線とフラクタル」、シュプリンガー・フェアラーク東京、1998年12月
このような場合、格納する子ノードのデータ長を短くする(圧縮する)には、各子ノードの内部座標間の距離が短くなる順序で相対座標を計算する必要がある。本実施形態では、子ノードの(内部座標の)順序付けには、曲線上の距離が近いほど実空間での距離も近くなる性質を持つ空間充填(充満)曲線によって得られた順序で子ノードの並び替えを行う。なお、空間充填(充満)曲線については、参考文献参照。
参考文献:H.ザーガン著、H.Sagan原著、鎌田 清一郎 翻訳、「空間充填曲線とフラクタル」、シュプリンガー・フェアラーク東京、1998年12月
図6は、図5に示す二次元のデータに対し、空間充填曲線の1つであるHilbert曲線を用いて内部座標の順序付けの一例を示した図である。
まず、多次元インデックス検索エンジン120は、親ノードM0内の空間を空間充填曲線の次数に応じてブロックに分割する(図6では次数を4とした場合のHilbert曲線でM0の領域を16×16ブロックに分割)。ここで空間充填曲線の次数は領域の分割の細かさに相当し、次数が高くなるにしたがって分割が細かくなる。
なお、多次元インデックス検索エンジン120は、空間充填曲線の次数として、計算コスト、圧縮率、実測値等を基に最適な次数を選択する。
親ノードM0内の空間を分割した後、多次元インデックス検索エンジン120は、各子ノードの内部座標を空間充填曲線で分割した16×16内の各ブロックに対応付けて、この内部座標(x1〜x5)の空間充填曲線値(曲線の長さ)を計算する。
その後、多次元インデックス検索エンジン120は、各内部座標(x1〜x5)を空間充填曲線値(曲線の長さ)に基づいて並び替える。
多次元インデックス検索エンジン120は、並び替えた順番(x1、x2、x3、x4、x5の順序)で内部座標の相対座標値Rijを、数式1を用いて順次計算し、その相対座標値群(R1、R2、R3、R4)をメモリ上の一時領域に格納する。
子ノード間相対座標Rij(j=x,y)
Rij=xi+1j−xij (数式1)
まず、多次元インデックス検索エンジン120は、親ノードM0内の空間を空間充填曲線の次数に応じてブロックに分割する(図6では次数を4とした場合のHilbert曲線でM0の領域を16×16ブロックに分割)。ここで空間充填曲線の次数は領域の分割の細かさに相当し、次数が高くなるにしたがって分割が細かくなる。
なお、多次元インデックス検索エンジン120は、空間充填曲線の次数として、計算コスト、圧縮率、実測値等を基に最適な次数を選択する。
親ノードM0内の空間を分割した後、多次元インデックス検索エンジン120は、各子ノードの内部座標を空間充填曲線で分割した16×16内の各ブロックに対応付けて、この内部座標(x1〜x5)の空間充填曲線値(曲線の長さ)を計算する。
その後、多次元インデックス検索エンジン120は、各内部座標(x1〜x5)を空間充填曲線値(曲線の長さ)に基づいて並び替える。
多次元インデックス検索エンジン120は、並び替えた順番(x1、x2、x3、x4、x5の順序)で内部座標の相対座標値Rijを、数式1を用いて順次計算し、その相対座標値群(R1、R2、R3、R4)をメモリ上の一時領域に格納する。
子ノード間相対座標Rij(j=x,y)
Rij=xi+1j−xij (数式1)
多次元インデックス検索エンジン120は、この相対座標値の計算を行うと共に、数式2を用いて、全相対座標値(R1、R2、R3、R4)を精度の低下なく復元することが可能な最小のデータ長Ljを計算する。
データ長Lj(j=x,y 単位:bit)
Lj=maxlog2(|Rij|+1) (数式2)
i
データ長Lj(j=x,y 単位:bit)
Lj=maxlog2(|Rij|+1) (数式2)
i
そして、多次元インデックス検索エンジン120は、図3で示すデータ記憶部130に対して、最小データ長Ljの値と、このデータ長Ljで表現した全ての子ノードの相対座標値(R1、R2、R3、R4)と、を書き込む。多次元インデックス検索エンジン120は、データ記憶部130に対する書き込みは、数式1で計算した順番で書き込む。
例えば、関係データベースの場合、多次元インデックス検索エンジン120は、親ノードのノード番号を主キーとして各子ノードのノード番号と相対座標値群(R1、R2、R3、R4)とをまとめてバイナリデータとして1レコードで書き込む。
例えば、関係データベースの場合、多次元インデックス検索エンジン120は、親ノードのノード番号を主キーとして各子ノードのノード番号と相対座標値群(R1、R2、R3、R4)とをまとめてバイナリデータとして1レコードで書き込む。
図7は、実施形態1におけるデータ圧縮処理の一例を示すフローチャートである。
空間充填曲線順序付け部121は、上述した多次元インデックスの親ノード内の空間を空間充填曲線の次数に応じてブロックに分割する(ステップS101)。
空間充填曲線順序付け部121は、ステップS101で分割した各ブロックに子ノードの位置を特定する内部座標を対応付ける(ステップS102)。なお、空間充填曲線順序付け部121は、本ステップの処理を、子ノードの数だけ繰り返す。
空間充填曲線順序付け部121は、各子ノードの内部座標の空間充填曲線値を算出し、各子ノードの内部座標に各ブロックに対応付けた空間充填曲線値を割り当てる(ステップS103)。なお、空間充填曲線順序付け部121は、本ステップの処理を、子ノードの数だけ繰り返す。
空間充填曲線順序付け部121は、上述した多次元インデックスの親ノード内の空間を空間充填曲線の次数に応じてブロックに分割する(ステップS101)。
空間充填曲線順序付け部121は、ステップS101で分割した各ブロックに子ノードの位置を特定する内部座標を対応付ける(ステップS102)。なお、空間充填曲線順序付け部121は、本ステップの処理を、子ノードの数だけ繰り返す。
空間充填曲線順序付け部121は、各子ノードの内部座標の空間充填曲線値を算出し、各子ノードの内部座標に各ブロックに対応付けた空間充填曲線値を割り当てる(ステップS103)。なお、空間充填曲線順序付け部121は、本ステップの処理を、子ノードの数だけ繰り返す。
空間充填曲線順序付け部121は、ステップS103で各子ノードに割り当てた空間充填曲線値に基づいて、子ノードをソート(順序付け)する(ステップS104)。
ステップS105において、相対座標値算出部122は、ステップS104で順序付けされた子ノードの順番(順列)に従って、2つの子ノード(順序付けの前後の子ノード)の内部座標間の相対座標値(第一の相対座標値)を算出する(第一の導出)。その後、データ長算出部123は、相対座標値算出部122によって算出された相対座標値Rijからデータ長Lj(第一のデータ長)を算出する(第二の導出)。なお、相対座標値算出部122及びデータ長算出部123は、本ステップの処理を、子ノードの数だけ繰り返す。
データ記憶部130は、ステップS105で算出された相対座標値RijをステップS105で算出されたデータ長Ljで表現し、記憶する(ステップS106)。なお、データ記憶部130は、本ステップの処理を、子ノードの数だけ繰り返す。
ステップS106の処理終了後、多次元インデックス検索エンジン120は、図7に示す処理を終了する。
ステップS105において、相対座標値算出部122は、ステップS104で順序付けされた子ノードの順番(順列)に従って、2つの子ノード(順序付けの前後の子ノード)の内部座標間の相対座標値(第一の相対座標値)を算出する(第一の導出)。その後、データ長算出部123は、相対座標値算出部122によって算出された相対座標値Rijからデータ長Lj(第一のデータ長)を算出する(第二の導出)。なお、相対座標値算出部122及びデータ長算出部123は、本ステップの処理を、子ノードの数だけ繰り返す。
データ記憶部130は、ステップS105で算出された相対座標値RijをステップS105で算出されたデータ長Ljで表現し、記憶する(ステップS106)。なお、データ記憶部130は、本ステップの処理を、子ノードの数だけ繰り返す。
ステップS106の処理終了後、多次元インデックス検索エンジン120は、図7に示す処理を終了する。
(多次元インデックスのデータ圧縮(削減)の概念図)
図8は、座標値のデータ長の圧縮前(1)と圧縮後(2)とのノード格納領域の概念図である。
図8の(1)は、図4で示した圧縮前のデータを格納した状態を示しており、各子ノードのX座標、Y座標の最小値と最大値と(Xmin、Xmax、Ymin、Ymax)の4つの座標を4Byte(計16Byte)で表現して格納される。
図8の(2)は、上述した相対座標値群(R1、R2、R3、R4)を最小のデータ長Ljで表現して格納した状態を示す。ここでは、X座標の値XminをRix、Y座標の値YminをRiyで表現することでデータ長を圧縮して格納できるため、圧縮前よりも多くの子ノードの座標情報を格納することができる。
また、データ記憶部130は、データ検索時に座標情報を復元するためにデータ長格納領域を設けてある。多次元インデックス検索エンジン120は、データ長格納領域に、各次元の圧縮後のデータ長(ここではX座標、Y座標のデータ長)を記憶しておく(データ長記憶)。
図8は、座標値のデータ長の圧縮前(1)と圧縮後(2)とのノード格納領域の概念図である。
図8の(1)は、図4で示した圧縮前のデータを格納した状態を示しており、各子ノードのX座標、Y座標の最小値と最大値と(Xmin、Xmax、Ymin、Ymax)の4つの座標を4Byte(計16Byte)で表現して格納される。
図8の(2)は、上述した相対座標値群(R1、R2、R3、R4)を最小のデータ長Ljで表現して格納した状態を示す。ここでは、X座標の値XminをRix、Y座標の値YminをRiyで表現することでデータ長を圧縮して格納できるため、圧縮前よりも多くの子ノードの座標情報を格納することができる。
また、データ記憶部130は、データ検索時に座標情報を復元するためにデータ長格納領域を設けてある。多次元インデックス検索エンジン120は、データ長格納領域に、各次元の圧縮後のデータ長(ここではX座標、Y座標のデータ長)を記憶しておく(データ長記憶)。
(検索時)
多次元インデックス検索エンジン120は、多次元インデックス検索時は、図8の(2)に示すデータ長格納領域から各軸(x軸、y軸)のデータ長値を取得し、そのデータ長で順次、子ノードの相対座標を読み込む。そして、多次元インデックス検索エンジン120は、子ノードの相対座標を読み込みながら順次、絶対座標に復元していく。
多次元インデックス検索エンジン120は、多次元インデックス検索時は、図8の(2)に示すデータ長格納領域から各軸(x軸、y軸)のデータ長値を取得し、そのデータ長で順次、子ノードの相対座標を読み込む。そして、多次元インデックス検索エンジン120は、子ノードの相対座標を読み込みながら順次、絶対座標に復元していく。
他の木(Tree)構造のインデックス形式においても、子ノード位置を特定する内部座標であれば、最小座標以外の内部座標を採用してもよい。
実施形態1によれば、親ノード(1記憶単位)に格納する子ノードの座標情報のデータ長を圧縮することで、格納可能な子ノード数が増加し、それに伴い、データ記憶部への一回のアクセスで取得できる子ノードの数が増加する。その結果I/Oアクセス数が減少し、検索時間が短縮される。また、データ長が圧縮されるので、記憶装置に記録するデータ量が削減される。
実施形態1によれば、親ノード(1記憶単位)に格納する子ノードの座標情報のデータ長を圧縮することで、格納可能な子ノード数が増加し、それに伴い、データ記憶部への一回のアクセスで取得できる子ノードの数が増加する。その結果I/Oアクセス数が減少し、検索時間が短縮される。また、データ長が圧縮されるので、記憶装置に記録するデータ量が削減される。
<実施形態2>
実施形態1は、親ノードに含まれる子ノードについて、子ノード間の最小座標を相対座標によって表現する例について説明した。本実施形態では、各子ノード自身の内部座標間の値を相対値で表現する例を説明する。これによれば、子ノードの座標を表現するためのデータ長を削減(圧縮)することができる。
なお、システム構成等は実施形態1と同じであり、主に実施形態1と異なる点について説明を行う。
図9は、各子ノード自身の内部座標間の値を相対値で表現する一例を示す図である。上述した図5と同じデータ構造であり、親ノードのMBR「M0」に子ノードのMBRとしてM1、M2、M3、M4、M5が登録されている。各子ノードの内部座標で、最小座標をx1〜x5とし、実施形態1で説明した子ノード間の順序付けに使用しなかった内部座標、ここでは各子ノードの最大座標X1〜X5を、最小座標x1〜x5からの相対座標をr1〜r5として説明する。
本実施形態では、各子ノード自身の各内部座標を内部座標間(最小座標と最大座標との間)の相対座標で表現することで、絶対座標表現よりもデータ長を短く(圧縮)して座標値を記録することができる。なお、相対座標で表現する際に用いる内部座標のうちの一つは絶対座標に復元できることが必要であるため、本実施形態では、最小座標値を絶対座標に復元できる場合を例に説明する。実施形態1と同様、内部座標の表現は直交座標だけでなく一般化座標による表現でもよい。
実施形態1は、親ノードに含まれる子ノードについて、子ノード間の最小座標を相対座標によって表現する例について説明した。本実施形態では、各子ノード自身の内部座標間の値を相対値で表現する例を説明する。これによれば、子ノードの座標を表現するためのデータ長を削減(圧縮)することができる。
なお、システム構成等は実施形態1と同じであり、主に実施形態1と異なる点について説明を行う。
図9は、各子ノード自身の内部座標間の値を相対値で表現する一例を示す図である。上述した図5と同じデータ構造であり、親ノードのMBR「M0」に子ノードのMBRとしてM1、M2、M3、M4、M5が登録されている。各子ノードの内部座標で、最小座標をx1〜x5とし、実施形態1で説明した子ノード間の順序付けに使用しなかった内部座標、ここでは各子ノードの最大座標X1〜X5を、最小座標x1〜x5からの相対座標をr1〜r5として説明する。
本実施形態では、各子ノード自身の各内部座標を内部座標間(最小座標と最大座標との間)の相対座標で表現することで、絶対座標表現よりもデータ長を短く(圧縮)して座標値を記録することができる。なお、相対座標で表現する際に用いる内部座標のうちの一つは絶対座標に復元できることが必要であるため、本実施形態では、最小座標値を絶対座標に復元できる場合を例に説明する。実施形態1と同様、内部座標の表現は直交座標だけでなく一般化座標による表現でもよい。
まず、多次元インデックス検索エンジン120は、子ノード内の相対座標を表現できる子ノード内相対座標rij(j=x,y)を数式3によって算出する。
子ノード内相対座標rij(j=x,y)
rij=xi+j−xij (数式3)
子ノード内相対座標rij(j=x,y)
rij=xi+j−xij (数式3)
多次元インデックス検索エンジン120は、この子ノード内相対座標の計算を行うと共に、数式4を用いて、全相対座標r1、r2、r3、r4を精度の低下なく復元可能とするために必要な最小のデータ長ljを算出する。
データ長lj(j=x,y 単位:bit)
lj=maxlog2(|rij|+1) (数式4)
i
データ長lj(j=x,y 単位:bit)
lj=maxlog2(|rij|+1) (数式4)
i
そして、多次元インデックス検索エンジン120は、図3で示すデータ記憶部130に対して、最小データ長ljの値と、このデータ長ljで表現した全ての子ノードの相対座標値(R1、R2、R3、R4)と、を書き込む。
図10は、実施形態2におけるデータ圧縮処理の一例を示すフローチャートである。
ステップS201〜ステップS204の処理は、実施形態1で説明した図7のステップS101〜ステップS104の処理と同様であるため、説明を省略する。
相対座標値算出部122は、順序付けに使った各子ノードの内部座標以外の内部座標と夫々の子ノードの順序付けに使った内部座標との相対座標値(第二の相対座標値)を算出する。その後、データ長算出部123は、相対座標値算出部122によって算出された相対座標値rijからデータ長lj(第二のデータ長)を算出する(ステップS205)。なお、相対座標値算出部122及びデータ長算出部123は、本ステップの処理を、子ノードの数だけ繰り返す。
データ記憶部130は、ステップS205で算出された相対座標値rijをステップS205で算出されたデータ長ljで表現し、記憶する(ステップS206)。なお、データ記憶部130は、本ステップの処理を、子ノードの数だけ繰り返す。
ステップS206の処理終了後、多次元インデックス検索エンジン120は、図10に示す処理を終了する。
ステップS201〜ステップS204の処理は、実施形態1で説明した図7のステップS101〜ステップS104の処理と同様であるため、説明を省略する。
相対座標値算出部122は、順序付けに使った各子ノードの内部座標以外の内部座標と夫々の子ノードの順序付けに使った内部座標との相対座標値(第二の相対座標値)を算出する。その後、データ長算出部123は、相対座標値算出部122によって算出された相対座標値rijからデータ長lj(第二のデータ長)を算出する(ステップS205)。なお、相対座標値算出部122及びデータ長算出部123は、本ステップの処理を、子ノードの数だけ繰り返す。
データ記憶部130は、ステップS205で算出された相対座標値rijをステップS205で算出されたデータ長ljで表現し、記憶する(ステップS206)。なお、データ記憶部130は、本ステップの処理を、子ノードの数だけ繰り返す。
ステップS206の処理終了後、多次元インデックス検索エンジン120は、図10に示す処理を終了する。
なお、本実施形態において、ステップS203及びステップS204の処理(子ノードの順序付けに関する処理)は必須ではないため、省略可能である。
その場合、ステップS205において、相対座標値算出部122は、各子ノードの内部座標間(例:最小座標と最大座標との間)の相対座標を算出する。
その後、データ長算出部123は、相対座標値算出部122によって算出された相対座標値rijからデータ長ljを算出する。
その場合、ステップS205において、相対座標値算出部122は、各子ノードの内部座標間(例:最小座標と最大座標との間)の相対座標を算出する。
その後、データ長算出部123は、相対座標値算出部122によって算出された相対座標値rijからデータ長ljを算出する。
(多次元インデックスのデータ圧縮(削減)の概念図)
図11は、座標値のデータ長の圧縮前(1)と圧縮後(2)とのノード格納領域の概念図である。
図11の(1)は、図4で示した圧縮前のデータを格納した状態を示しており、各子ノードのX座標、Y座標の最小値と最大値と(Xmin、Xmax、Ymin、Ymax)の4つの座標を4Byte(計16Byte)で表現して格納される。
図11の(2)は、上述した相対座標値群(R1、R2、R3、R4)を最小のデータ長Ljで表現して格納した状態を示す。ここでは、X座標の値Xmaxをrix、Y座標の値Ymaxをriyで表現することでデータ長を圧縮して格納できるため、圧縮前よりも多くの子ノードの座標情報を格納することができる。
また、データ検索時に座標情報を復元するためにデータ長値格納領域を設けてある。多次元インデックス検索エンジン120は、データ長格納領域に、圧縮後の各次元のデータ長(ここではx座標、Y座標のデータ長)を記憶しておく。
図11は、座標値のデータ長の圧縮前(1)と圧縮後(2)とのノード格納領域の概念図である。
図11の(1)は、図4で示した圧縮前のデータを格納した状態を示しており、各子ノードのX座標、Y座標の最小値と最大値と(Xmin、Xmax、Ymin、Ymax)の4つの座標を4Byte(計16Byte)で表現して格納される。
図11の(2)は、上述した相対座標値群(R1、R2、R3、R4)を最小のデータ長Ljで表現して格納した状態を示す。ここでは、X座標の値Xmaxをrix、Y座標の値Ymaxをriyで表現することでデータ長を圧縮して格納できるため、圧縮前よりも多くの子ノードの座標情報を格納することができる。
また、データ検索時に座標情報を復元するためにデータ長値格納領域を設けてある。多次元インデックス検索エンジン120は、データ長格納領域に、圧縮後の各次元のデータ長(ここではx座標、Y座標のデータ長)を記憶しておく。
(検索時)
多次元インデックス検索エンジン120は、多次元インデックス検索時は、図11の(2)に示すデータ長値格納領域から各軸(X軸、Y軸)のデータ長値を取得し、そのデータ長で順次、子ノードの相対座標を読み込む。そして、多次元インデックス検索エンジン120は、子ノードの相対座標を読み込みながら順次、絶対座標に復元していく。
多次元インデックス検索エンジン120は、多次元インデックス検索時は、図11の(2)に示すデータ長値格納領域から各軸(X軸、Y軸)のデータ長値を取得し、そのデータ長で順次、子ノードの相対座標を読み込む。そして、多次元インデックス検索エンジン120は、子ノードの相対座標を読み込みながら順次、絶対座標に復元していく。
他の木(Tree)構造のインデックス形式においても、子ノード位置を特定する内部座標であれば、最小座標以外の内部座標を採用してもよい。
実施形態1と同様、親ノード(1記憶単位)に格納する子ノードの座標情報のデータ長を圧縮することで、格納可能な子ノード数が増加し、それに伴い、データ記憶部への一回のアクセスで取得できる子ノードの数が増加する。その結果I/Oアクセス数が減少し、検索時間が短縮される。また、データ長が圧縮されるので、記憶装置に記録するデータ量が削減される。
実施形態1と同様、親ノード(1記憶単位)に格納する子ノードの座標情報のデータ長を圧縮することで、格納可能な子ノード数が増加し、それに伴い、データ記憶部への一回のアクセスで取得できる子ノードの数が増加する。その結果I/Oアクセス数が減少し、検索時間が短縮される。また、データ長が圧縮されるので、記憶装置に記録するデータ量が削減される。
<実施形態3>
また、上述した実施形態1と実施形態2とを組み合わせて、更にデータ長を圧縮することもできる。
図12は、実施形態1と実施形態2とを組み合わせて圧縮した場合の概念図である。(1)に圧縮前のデータ格納状態、(2)に子ノード間相対座標による圧縮したときのデータ格納状態(実施形態1)、(3)に子ノード内相対座標による圧縮したときのデータ格納状態(実施形態2)を示している。
実施形態1と実施形態2とのデータ圧縮方法を組み合わせることにより、圧縮前の子ノードの座標情報(Xmin、Xmax、Ymin、Ymax)を夫々の、圧縮して表現した座標情報(Rix、rix、Riy、riy)で表現可能となる。よって、座標値のデータ長が更に短くなる(圧縮される)ので、1つの親ノードに格納できる子ノードの数を更に増加させることができる。
また、上述した実施形態1と実施形態2とを組み合わせて、更にデータ長を圧縮することもできる。
図12は、実施形態1と実施形態2とを組み合わせて圧縮した場合の概念図である。(1)に圧縮前のデータ格納状態、(2)に子ノード間相対座標による圧縮したときのデータ格納状態(実施形態1)、(3)に子ノード内相対座標による圧縮したときのデータ格納状態(実施形態2)を示している。
実施形態1と実施形態2とのデータ圧縮方法を組み合わせることにより、圧縮前の子ノードの座標情報(Xmin、Xmax、Ymin、Ymax)を夫々の、圧縮して表現した座標情報(Rix、rix、Riy、riy)で表現可能となる。よって、座標値のデータ長が更に短くなる(圧縮される)ので、1つの親ノードに格納できる子ノードの数を更に増加させることができる。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
以上、上述した各実施形態によれば、1つの親ノードに格納できる子ノードの数を増加させることで、データ記憶部への一回のアクセスで取得できる子ノードの数を増やし、データ記憶部のアクセス回数を減少させ、検索を高速化することができる。
また、従来の技術よりデータ長を削減することができる。
また、従来の技術よりデータ長を削減することができる。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
上述した実施形態1のデータ圧縮方法と実施形態2のデータ圧縮方法とは、それぞれ個別に用いた場合であっても圧縮効果を得ることができる。例えば、実施形態1のデータ圧縮方法はSS−Treeのインデックス形式に適用することができる。また、実施形態2のデータ圧縮方法は、R−Tree及びその派生形のインデックス形式全般に適用することができる。
図1で説明した各機能部に対応するプログラムを書き換え可能な記憶部に記憶すると説明した。しかし、これに限定されず、書き換え不可能な記憶部(ROM等)に各機能部に対応するプログラムを記憶するようにしてもよい。
また、データ圧縮装置100内のデータ記憶部130に各種データを記憶すると説明したが、これに限定されず、データ圧縮装置100以外の装置(例えば、サーバやクラウド上の記憶装置)が有するデータ記憶部に各種データを記憶してもよい。
上述した実施形態1のデータ圧縮方法と実施形態2のデータ圧縮方法とは、それぞれ個別に用いた場合であっても圧縮効果を得ることができる。例えば、実施形態1のデータ圧縮方法はSS−Treeのインデックス形式に適用することができる。また、実施形態2のデータ圧縮方法は、R−Tree及びその派生形のインデックス形式全般に適用することができる。
図1で説明した各機能部に対応するプログラムを書き換え可能な記憶部に記憶すると説明した。しかし、これに限定されず、書き換え不可能な記憶部(ROM等)に各機能部に対応するプログラムを記憶するようにしてもよい。
また、データ圧縮装置100内のデータ記憶部130に各種データを記憶すると説明したが、これに限定されず、データ圧縮装置100以外の装置(例えば、サーバやクラウド上の記憶装置)が有するデータ記憶部に各種データを記憶してもよい。
100 データ圧縮装置、110 ユーザアプリケーション、120 多次元インデックス検索エンジン、121 空間充填曲線順序付け部、122 相対座標値算出部、123 データ長算出部、130 データ記憶部
Claims (9)
- 多次元空間に構築された多分木構造データに対して多次元空間上の各子ノードの座標を空間充填曲線により順序付けする順序付け手段と、
前記順序付け手段により順序づけられた順番に従って、親ノード内の各子ノードの位置を特定する座標の各子ノード間の相対座標値を導出する第一の導出手段と、
前記第一の導出手段により導出された相対座標値を基に子ノードの座標情報のデータ長を導出する第二の導出手段と、
前記第二の導出手段によって算出されたデータ長で前記相対座標値を記憶するデータ記憶手段と、
を有する情報処理装置。 - 前記第一の導出手段は、前記順序付け手段により順序付けされた子ノードの順番に従って、順序付けされた子ノードの前後の子ノードの内部座標間の相対座標値を導出する請求項1記載の情報処理装置。
- 前記第二の導出手段は、前記第一の導出手段により導出された前記相対座標値を基に全ての子ノード間の前記相対座標値を格納可能な前記データ長を導出する請求項2記載の情報処理装置。
- 前記第一の導出手段は、前記順序付け手段により順序付けされた子ノードの順番に従って前記順序付け手段で使用された各子ノードの内部座標以外の内部座標と各々の子ノードの前記順序付け手段で使用された内部座標とに基づき相対座標値を導出する請求項1記載の情報処理装置。
- 前記第二の導出手段は、前記第一の導出手段により導出された前記相対座標値を基に全ての子ノード内の全ての内部座標の前記相対座標値を格納可能なデータ長を導出する請求項4記載の情報処理装置。
- 前記第一の導出手段は、前記順序付け手段により順序付けされた子ノードの順番に従って、順序付けされた子ノードの前後の子ノードの内部座標間の第一の相対座標値を導出すると共に、前記順序付け手段により順序付けされた子ノードの順番に従って前記順序付け手段で使用された各子ノードの内部座標以外の内部座標と前記順序付け手段で使用された各子ノードの内部座標とに基づき第二の相対座標値を導出し、
前記第二の導出手段は、前記第一の導出手段により導出された前記第一の相対座標値を基に全ての子ノード間の前記第一の相対座標値を格納可能な第一のデータ長を導出すると共に、前記第一の導出手段により導出された前記第二の相対座標値を基に全ての子ノード内の全ての内部座標の前記第二の相対座標値を格納可能な第二のデータ長を導出し、
前記データ記憶手段は、前記第一のデータ長で前記第一の相対座標値を記憶し、前記第二のデータ長で前記第二の相対座標値を記憶する請求項1記載の情報処理装置。 - 前記第二の導出手段により導出された各次元のデータ長を圧縮した圧縮後のデータ長をデータ長格納領域に記憶するデータ長記憶手段を更に有する請求項1乃至6何れか1項記載の情報処理装置。
- 情報処理装置が実行する情報処理方法であって、
多次元空間に構築された多分木構造データに対して多次元空間上の各子ノードの座標を空間充填曲線により順序付けする順序付けステップと、
前記順序付けステップにより順序づけられた順番に従って、親ノード内の各子ノードの位置を特定する座標の各子ノード間の相対座標値を導出する第一の導出ステップと、
前記第一の導出ステップにより導出された相対座標値を基に子ノードの座標情報のデータ長を導出する第二の導出ステップと、
前記第二の導出ステップによって算出されたデータ長で前記相対座標値を記憶するデータ記憶ステップと、
を含む情報処理方法。 - コンピュータに、
多次元空間に構築された多分木構造データに対して多次元空間上の各子ノードの座標を空間充填曲線により順序付けする順序付けステップと、
前記順序付けステップにより順序づけられた順番に従って、親ノード内の各子ノードの位置を特定する座標の各子ノード間の相対座標値を導出する第一の導出ステップと、
前記第一の導出ステップにより導出された相対座標値を基に子ノードの座標情報のデータ長を導出する第二の導出ステップと、
前記第二の導出ステップによって算出されたデータ長で前記相対座標値を記憶するデータ記憶ステップと、
を実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013187446A JP2015055914A (ja) | 2013-09-10 | 2013-09-10 | 情報処理装置、情報処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013187446A JP2015055914A (ja) | 2013-09-10 | 2013-09-10 | 情報処理装置、情報処理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015055914A true JP2015055914A (ja) | 2015-03-23 |
Family
ID=52820298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013187446A Pending JP2015055914A (ja) | 2013-09-10 | 2013-09-10 | 情報処理装置、情報処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015055914A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019531543A (ja) * | 2016-08-25 | 2019-10-31 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 空間データの保存又は取り出しのためのシステム、方法及び媒体 |
US11995059B2 (en) | 2018-11-27 | 2024-05-28 | Alibaba Group Holding Limited | Database index and database query processing method, apparatus, and device |
-
2013
- 2013-09-10 JP JP2013187446A patent/JP2015055914A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019531543A (ja) * | 2016-08-25 | 2019-10-31 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 空間データの保存又は取り出しのためのシステム、方法及び媒体 |
JP7189867B2 (ja) | 2016-08-25 | 2022-12-14 | コーニンクレッカ フィリップス エヌ ヴェ | 空間データの保存又は取り出しのためのシステム、方法、コンピュータ・プログラム及び記録媒体 |
US11995059B2 (en) | 2018-11-27 | 2024-05-28 | Alibaba Group Holding Limited | Database index and database query processing method, apparatus, and device |
JP7539884B2 (ja) | 2018-11-27 | 2024-08-26 | アリババ・グループ・ホールディング・リミテッド | データベースインデックスおよびデータベースクエリ処理方法、装置、およびデバイス |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8065484B2 (en) | Enhanced access to data available in a cache | |
CN105701104B (zh) | 一种基于地理信息的三维数据引擎系统 | |
WO2015124042A1 (zh) | 分布式文件系统列式存储的元数据更新方法、装置、主机 | |
CN111291016A (zh) | 一种海量遥感影像数据分层混合存储与索引方法 | |
US11663207B2 (en) | Translation of tenant identifiers | |
CN111241108A (zh) | 基于键值对kv系统的索引方法、装置、电子设备和介质 | |
Jing et al. | An improved distributed storage and query for remote sensing data | |
US20230252012A1 (en) | Method for indexing data | |
CN115918110A (zh) | 使用键值存储库的空间搜索 | |
US20180075074A1 (en) | Apparatus and method to correct index tree data added to existing index tree data | |
CN114297196A (zh) | 元数据存储方法、装置、电子设备及存储介质 | |
EP3123360A1 (en) | Partition filtering using smart index in memory | |
JP2015055914A (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN117608476A (zh) | 矢量数据分块存储方法、装置、电子设备及介质 | |
WO2024016789A1 (zh) | 日志数据查询方法、装置、设备和介质 | |
KR102354343B1 (ko) | 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치 | |
Zhong et al. | A novel method to manage very large raster data on distributed key-value storage system | |
CN112889039B (zh) | 用于克隆后租户标识符转换的记录的标识 | |
KR101693108B1 (ko) | 읽기 성능 개선을 위한 티-트리 인덱스를 이용한 데이터베이스 읽기 방법 및 그 장치 | |
CN110727672A (zh) | 数据映射关系查询方法、装置、电子设备及可读介质 | |
JP7105718B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP2018136663A (ja) | 地図データベース作成装置及び地図データベース作成方法並びに地図データベース作成プログラム | |
JP7105717B2 (ja) | 情報処理装置、抽出方法、およびプログラム | |
CN114647630A (zh) | 文件同步、信息生成方法、装置、计算机设备和存储介质 | |
US20230252005A1 (en) | Method And Apparatus For Managing Meta Information In Schema Level |