信息管理装置、信息管理方法和信息管理程序与流程

文档序号:22400363发布日期:2020-09-29 18:12阅读:145来源:国知局
信息管理装置、信息管理方法和信息管理程序与流程

本发明涉及信息管理装置、信息管理方法以及信息管理程序。



背景技术:

随着iot(internetofthings,物联网)时代的到来,由iot设备取得的数据经由网络被进行多种使用方式。在该iot设备是车辆、无人机、智能手机等移动设备的情况下,实际的取得数据与时间信息以及位置信息(时空间信息)对应,所以数据量庞大。因此,处理iot设备的数据的运营商要求一种数据库系统,其能够适当地存储庞大的量的数据,并且能够使用时空间信息从这些数据中高效且高速地检索数据。

因此,以往提出了一种关系数据库管理系统(rdbms),其利用表的形式来管理所保存的数据,包含空间的范围检索,能够应对通用的检索(rdbms)(参照非专利文献1)。

另外,作为其他的数据库技术,提出了将大量的数据分散地存储在多个节点中,对于有限的检索条件能够高速地检索的分布键值(key-value)存储(参照非专利文献2)。并且,为了缓和分布键值存储中的检索条件的限制,提出了通过在一个键(key)中存储多个值(value)来构建辅助索引(secondaryindex)的技术(参照非专利文献3)。另外,作为处理时空间信息的技术,提出了将时空间信息转换为一维的比特串,高效地进行存储以及检索的技术(参照非专利文献4)。

在先技术文献

非专利文献

【非专利文献1】リレーショナルデータベースとは[online],[平成30年2月2日检索],因特网<url:https://aws.amazon.com/jp/relational-database>

【非专利文献2】iotに適したnosql·分散key-valueストア,[online],[平成30年2月2日检索],因特网<url:https://thinkit.co.jp/story/2014/09/25/5280?page=0%2c1>

【非专利文献3】redis,[online],[平成30年2月2日检索],因特网<url:https://redis.io/topics/indexes>

【非专利文献4】stcode:thetextencodingalgorithmforlatitude/longitude/time,[online],[平成30年2月2日检索],因特网<url:https://link.springer.com/chapter/10.1007%2f978-3-319-03611-3_10>



技术实现要素:

[发明要解决的问题]

在rdbms中存储时空间信息的情况下,每当存储或删除数据时都需要更新索引。但是,在rdbms中,由于产生用于索引更新的时间,所以在处理庞大的量的数据的情况下,存在其更新时间也变得庞大的问题。

此外,即使在分布键值存储中使用辅助索引将时空间信息转换为一维比特串的情况下,也难以进行基于时空间信息这样的多维信息的范围检索,难以进行使用时空间信息的高效且高速的数据检索。

此外,在使用辅助索引的情况下,如果在一个键中存储了大量的值,则处理负荷在构成数据存储部的节点之间发生偏斜,并且性能有可能大幅降低。

本发明是鉴于上述问题而完成的,其目的在于提供一种能够适当地分散地存储包含有时空间信息的大量数据,并且能够使用时空间信息高效且高速地检索数据的信息管理装置、信息管理方法以及信息管理程序。

[解决问题的手段]

根据本发明的一个方面,提供了一种信息管理装置,其将包含时间信息及位置信息的时空间信息和与该时空间信息对应的对应数据分散到作为键值存储部的多个节点来进行管理,其特征在于,所述信息管理装置具有:保存部,其将保存对象的信息中的时空间信息转换为一维比特串,将转换后的一维比特串分割为前部比特串及后部比特串,至少将分割后的前部比特串保存于键中,将分割后的后部比特串及对应数据保存于该键的值中,从而保存在保存目的地的节点;以及检索部,其将检索对象的时空间信息的范围条件转换为一维比特串,将转换后的一维比特串分割为前部比特串及后部比特串,至少使用分割后的前部比特从检索目的地的节点中检索键,从检索到的键的值中检索与分割后的后部比特串对应的值,将检索到的值中包含的对应数据作为检索结果输出。

[发明的效果]

根据本发明,能够适当地分散地存储包含有时空间信息的大量的数据,并且能够使用时空间信息高效且高速地检索数据。

附图说明

图1是表示实施方式1的信息管理系统的结构的一例的图。

图2是表示图1所示的数据发送设备发送的取得数据的数据结构的一例的图。

图3是表示图1所示的节点存储的数据的数据结构的一例的图。

图4是表示图1所示的终端装置发送的检索请求的数据结构的一例的图。

图5是表示图1所示的时空间信息管理装置输出的检索结果的数据结构的一例的图。

图6是表示图1所示的时空间信息管理装置的结构的一例的图。

图7是说明图1所示的保存部的处理流程的图。

图8是说明图1所示的数据存储系统内的数据保持形式的图。

图9是说明图1所示的检索部的处理流程的图。

图10是说明图1所示的数据存储系统内的数据保持形式的图。

图11是表示图6所示的时空间信息管理装置的信息的保存处理的处理过程的流程图。

图12是表示图6所示的时空间信息管理装置的信息的检索处理的处理过程的流程图。

图13是示出了以往的数据库系统的数据分散的图。

图14是说明本实施方式1的时空间信息管理装置进行的数据分散的图。

图15是说明以往的数据库系统的数据分散的图。

图16是说明本实施方式1的时空间信息管理装置进行的数据分散的图。

图17是表示实施方式1的变形例的时空间信息管理装置的结构的一例的图。

图18是表示分散目的地节点组合信息的数据结构的一例的图。

图19是表示图17所示的时空间信息管理装置的信息保存处理的处理过程的流程图。

图20是表示图17所示的时空间信息管理装置的信息检索处理的处理过程的流程图。

图21是表示图17所示的时空间信息管理装置可选择的节点的组合的图。

图22是表示实施方式2的信息管理系统的结构的一例的图。

图23是表示图22所示的数据存储系统存储的数据的数据结构的一例的图。

图24是表示图22所示的时空间信息管理装置的结构的一例的图。

图25是说明图24所示的保存部的处理流程的图。

图26是说明图22所示的数据存储系统内的数据保持形式的图。

图27是说明图24所示的检索部的处理流程的图。

图28是说明图22所示的数据存储系统内的数据保持形式的图。

图29是表示图24所示的时空间信息管理装置的信息保存处理的处理过程的流程图。

图30是表示图24所示的时空间信息管理装置的信息检索处理的处理过程的流程图。

图31是表示通过执行程序来实现时空间信息管理装置的计算机的一例的图。

具体实施方式

以下,参照附图详细说明本发明的一实施方式。另外,本发明并不限定于该实施方式。另外,在附图的记载中,对同一部分标注同一标号进行表示。

[实施方式1]

对本发明的实施方式1进行说明。图1是表示实施方式1中的信息管理系统的结构的一例的图。

如图1所示,实施方式1的信息管理系统1具有数据发送设备10、时空间信息管理装置20(信息管理装置)、数据存储系统30以及终端装置40。时空间信息管理装置20通过网络等与数据发送设备10、数据存储系统30以及终端装置40连接。

数据发送设备10是iot设备。数据发送设备10例如是车辆、无人机或智能手机等移动设备。数据发送设备10将在移动的同时获取的数据发送到时空间信息管理装置20。数据发送设备10向时空间信息管理装置20发送取得数据,所述取得数据是将包含时间信息及位置信息的时空间信息与对应于该时空间信息的对应数据相关联而得到的。数据发送设备10可以是一台,也可以是多台。

图2是表示图1所示的数据发送设备10发送的取得数据的数据结构的一例的图。如图2的列表l1所示,数据发送设备10发送的取得数据具有使表示数据取得时刻的时间信息和表示经度及纬度的位置信息与数据发送设备10取得的各种数据(数据部)相关联的结构。例如,数据发送设备10将在时刻“2017/1/110:15:30”、在经度“27.1984°”和纬度“-15.2958°”的位置取得的“data1”与时间信息和位置信息相关联起来而发送到时空间信息管理装置20。

回到图1,将描述时空间信息管理装置20的概要。时空间信息管理装置20通过将由数据发送设备10发送的取得数据分散地保存在作为键值存储部的多个节点1~n中来进行管理。时空间信息管理装置20从存储在节点1~n中的数据中输出与检索对象的时空间信息的范围条件对应的对应数据作为检索结果。时空间信息管理装置20作为主要部分具有保存部24和检索部25。时空间信息管理装置20也可以是组装在数据发送设备10或应用41中的结构。

保存部24将取得数据分散地保存在节点1~n中。保存部24将存储对象的信息中的时空间信息转换为一维比特串,将转换后的一维比特串分割为前部比特串及后部比特串。然后,保存部24将分割后的前部比特串存储在键中,在该键的值中,将分割后的后部比特串和对应数据保存在保存目的地的节点中。如后所述,保存部24即使在数据偏向某个时间、某个地域的情况下,也针对各个数据将不同的节点设定为保存目的地,所以能够使保存目的地分散。

检索部25输出与检索对象的时空间信息的范围条件对应的对应数据作为检索结果。检索部25将检索对象的时空间信息的范围条件转换为一维比特串,将转换后的一维比特串分割为前部比特串及后部比特串。并且,检索部25使用分割后的前部比特从检索目的地的节点中检索键,从检索到的键的值中检索与分割后的后部比特串对应的值,将检索到的值中包含的对应数据作为检索结果来输出。如后所述,由于检索部25缩小检索目的地的节点的台数来进行检索,所以检索不会集中在1台节点上,能够降低检索的负荷,并且由于不对所有节点进行检索,所以能够实现检索处理的高速化。

数据存储系统30具有作为键值存储部的多个节点1~n。节点1~n例如是具有存储装置(storage)、执行针对存储装置的数据输入输出的服务器,各个服务器联动地进行与数据输入输出有关的动作。

图3是表示图1所示的节点1~n存储的数据的数据结构的一例的图。如图3的列表l2所示,假定存储在节点1~n中的数据的数据结构是具有辅助索引部的键值类型。

具体地,如列表l2所示,节点1~n以具有节点的标识信息、键和值的项的结构来存储数据。如列表l2所示,值具有辅助索引部和存储对应数据的数据部。如后所述,在键中存储对时空间信息进行比特串转换时的前部比特串。此外,在值的辅助索引(secondaryindex)中存储对时空间信息进行比特串转换之后的后部比特串。

更具体地,在列表l2中,例如,节点n1表示在存储“前部比特串1”的键的值中将“后部比特串1”存储在辅助索引部中,将“data1”存储在数据部中。

返回图1,对终端装置40进行说明。终端装置40是用户拥有的智能手机等,具有应用41。应用41具有向时空间信息管理装置20请求用于路线引导或故障地点通知等的检索的功能。例如,终端装置40将检索对象的时空间信息的范围条件作为检索条件,向时空间信息管理装置20发送检索请求。

图4是表示图1所示的终端装置40发送的检索请求的数据结构的一例的图。如图4的列表l3所示,检索请求数据具有将表示检索对象的时空间信息的开始端的数据串和成为结束端的数据串关联起来的数据结构。在列表l3中,针对表示检索对象的时空间信息的范围的开始端和结束端分别示出时刻、经度和纬度。在列表l3的示例中,终端装置40请求时刻从“2017/1/109:00:00”到“2017/1/109:15:00”的范围、经度从“27°”到“28°”、纬度从“-16°”到“-15°”的范围作为检索对象的时空间信息的范围条件。

图5是表示图1所示的时空间信息管理装置20输出的检索结果的数据结构的一例的图。时空间信息管理装置20根据图3所示的检索条件检索节点1~n的数据。并且,时空间信息管理装置20例如将图5所示的列表l4作为检索结果返回到终端装置40。时空间信息管理装置20如列表l4所示,返回“data1”作为与检索条件相应的相应值。

[时空间信息管理装置的结构]

下面说明时空间信息管理装置20的结构。图6是表示图1所示的时空间信息管理装置20的结构的一例的图。如图6所示,时空间信息管理装置20具有通信部21、存储部22和控制部23。时空间信息管理装置20可以是物理服务器,也可以是在物理服务器上展开的虚拟服务器。

通信部21是在与经由网络2等连接的其他装置之间收发各种信息的通信接口。通信部21由nic(networkinterfacecard,网络接口卡)等实现,进行经由lan(localareanetwork)或因特网等电气通信线路的与其他装置和控制部23(后述)之间的通信。

存储部22是hdd(harddiskdrive,硬盘驱动器)、ssd(solidstatedrive,固态驱动器)、光盘等存储装置。另外,存储部22也可以是ram(randomaccessmemory,随机存储存储器)、闪存、nvsram(nonvolatilestaticrandomaccessmemory,非易失性静态随机存取存储器)等可改写数据的半导体存储器。存储部22存储由时空间信息管理装置20执行的操作系统(os)和各种程序。此外,存储部22存储用于执行程序的各种信息。

控制部23控制时空间信息管理装置20整体。控制部23例如是cpu(centralprocessingunit,中央处理单元)、mpu(microprocessingunit,微处理单元)等电子电路、asic(applicationspecificintegratedcircuit,特定应用集成电路)、fpga(fieldprogrammablegatearray,场可编程门阵列)等集成电路。另外,控制部23具有用于存储规定了各种处理过程的程序、控制数据的内部存储器,使用内部存储器来执行各处理。另外,控制部23通过各种程序工作而作为各种处理部发挥功能。控制部23具有保存部24和检索部25。

[保存部的结构]

保存部24具有保存受理部241、第1转换部242、第1分割部243、第1哈希值计算部244、保存目的地节点计算部245(保存目的地节点选择部)、键设定部246、值设定部247和保存指示部248。

保存受理部241将从数据发送设备10发送的取得数据作为保存对象的数据来接受输入。如上所述,取得数据是将包含时间信息和位置信息的时空间信息与对应于该时空间的对应数据相关联起来的数据。具体而言,取得数据具有时刻、经度、纬度、数据部。

第1转换部242将被接受了输入的取得数据中的时空间信息转换为一维比特串。即,第1转换部242将时刻、经度、纬度转换为一维比特串。

第1分割部243将由第1转换部242转换后的一维比特串分割为前部比特串和后部比特串。然后,第1哈希值计算部244计算由第1转换部242转换后的前部比特串的哈希值。

保存目的地节点计算部245基于第1哈希值计算部244计算出的哈希值,选择保存目的地的节点。具体地,保存目的地节点计算部245使用式(1)计算保存目的地的节点编号,并选择作为计算结果而获得的编号的节点作为保存目的地的节点。另外,在式(1)中,设定分散目的地的节点数量,算出1个节点的编号作为解。

[式1]

w=(h(key)+(rand()%d))%n…(1)

w:保存目的地节点编号

h(key):键(key)的哈希值

rand():随机32比特整数值

d:分散目的地的节点数

n:全部节点数

键设定部246进行将第1分割部243所分割的前部比特串保存在保存目的地的节点的键中的设定。然后,值设定部247执行设定,以将由第1分割部243分割后的后部比特串和对应数据保存到保存目的地节点的键中的由键设定部246设定的键的值中。保存指示部248根据键设定部246和值设定部247的设定,将数据保存在保存目的地的节点中。

这样,保存部24通过使用式(1),根据各键的不同,选择不同的节点作为保存目的地。因此,即使是相同时间或相同地域的数据,保存部24也分为多个节点进行保存,使保存目的地分散,可以降低对节点的存储负荷。另外,保存部24使用一维比特串转换法来转换时空间信息,并将转换为一维比特串后的时空间信息中的前部比特作为键来使用。这样,保存部24使用作为比较简单的转换处理的一维比特串转换法来生成键,所以可以缩短生成键所需要的时间。

[检索部的结构]

接着,对检索部25进行说明。检索部25具有检索受理部251、第2转换部252、第2分割部253、第2哈希值计算部254、检索目的地节点计算部255(检索目的地节点取得部)、键检索部256、后部比特串检索部257以及值返回部258(输出部)。

检索受理部251受理从终端装置40发送来的检索条件的输入。检索条件是用于路线引导或故障地点通知等的、检索对象的时空间信息的范围条件。具体地说,如图4的列表l3所示,检索信息是表示时刻、经度、纬度的开始端以及结束端的信息。

第2转换部252将接受检索的检索对象的时空间信息的范围条件转换为一维比特串。第2分割部253将第2转换部252转换后的一维比特串分割为前部比特串及后部比特串。第2哈希值计算部254计算第2分割部253分割后的前部比特串的哈希值。

检索目的地节点计算部255根据第2哈希值计算部254计算出的哈希值,求出检索目的地的节点。具体地,检索目的地节点计算部255使用式(2)来计算检索目的地的节点编号,并且将作为计算结果而获得的编号的节点设定为检索时的节点。在式(2)中,当在式(1)中设定了多台分散目的地的节点数d的情况下,得到在式(1)中设定的台数个的解。

[式2]

rd=(h(key)+(d-1))%n…(2)

r:检索目的地节点编号

h(key):键(key)的哈希值

d:1,2,…,d

n:全部节点数

键检索部256从检索目的地节点中检索与第2分割部253分割后的前部比特串一致的键。然后,后部比特串检索部257从键检索部256所检索到的键的值中,检索与由第2分割部分割后的后部比特串相比前部一致的值。

值返回部258将由后部比特串检索部257检索到的值中包含的对应数据作为检索结果输出。换言之,值返回部258将后部比特串检索部257检索到的值中包含的对应数据返回给终端装置40。

检索部25通过使用式(2),缩小检索目的地的节点的台数来执行检索处理。因此,在实施方式1中,检索不会集中于1台节点,能够降低检索的负荷,并且也不会对全部节点进行检索,所以能够实现检索处理的高速化。

[保存部的处理流程]

接着,参照图7,具体说明保存部24的处理流程。图7是说明图1所示的保存部24的处理流程的图。

说明如图7所示,例如,保存受理部241接受“时刻(unix_timestamp):1483196400,经度:40.7212905884,纬度:-73.8441925049,数据部:“test_data1″”的数据的输入的情况。

在这种情况下,第1转换部242使用三维z曲线将时刻“1483196400”、经度“40.7212905884”和纬度“-73.8441925049”转换成一维比特串(例如:96比特)。所得到的一维比特串是“101010101101111001010110100110111010110010100010001000100011101001110111000100110011001000011011”。

随后,第1分割部243将一维比特串分割为前部比特串(例如:45比特)、后部比特串(例如:51比特)。具体地,第1分割部243将"101010101101111001010110100110111010110010100010001000100011101001110111000100110011001000011011”中的前面的45比特“101010101101111001010110100110111010110010100”作为前部比特串,将后面的51比特“010001000100011101001110111000100110011001000011011”作为后部比特串来进行分割。

第1哈希值计算部244计算前部比特串“101010101101111001010110100110111010110010100”的哈希值。例如,第1哈希值计算部244使用murmurhash作为哈希函数,将前部比特串“101010101101111001010110100110111010110010100”的哈希值计算为“8088516515490849671”。

然后,保存目的地节点计算部245将第1哈希值计算部244计算出的哈希值“8088516515490849671”应用到式(1),计算保存目的地节点的编号。例如,在d=3、n=10的情况下,设为本次在节点编号w=1、w=2或w=3中,选择w=1。

键设定部246设定为在节点w1的键中保存前部比特串“101010101101111001010110100110111010110010100”。然后,值设定部247进行如下设定:在保存目的地的节点w1的键“101010101101111001010110100110111010110010100”的值中的、辅助索引部存储后部比特串“010001000100011101001110111000100110011001000011011”,在数据部中保存“test_data1”。并且,该保存指示部248根据键设定部246和值设定部247的设定,将数据保存在保存目的地的节点中。

图8是说明图1所示的数据存储系统30内的数据保持形式的图。如图8的列表l2a所示,按照图7所示的保存部24的设定,在节点[1]的键中保存“101010101101111001010110100110111010110010100”。然后,如列表l2a所示,在该键“101010101101111001010110100110111010110010100”的值中的辅助索引部中存储“010001000100011101001110111000100110011001000011011”,在数据部中存储“test_data1”。

[检索部的处理流程]

接着,参照图9,具体说明检索部25的处理流程。图9是说明图1所示的检索部25的处理流程的图。另外,图10是说明图1所示的数据存储系统30内的数据保持形式的图。

说明如图9所示,例如,检索受理部251接受"时刻(unix_timestamp):1483194823~1483196748,经度:40.7211685180~40.7213401794,纬度:-73.8442611694~-73.8439178466"的输入的情况。

在这种情况下,第2转换部252利用三维z曲线,将时刻“1483194823~1483196748”、经度"经度:40.7211685180~40.7213401794”、纬度“-73.8442611694~-73.8439178466"的输入范围转换为一维比特串。在该例子中,可以用60比特来表现,第2转换部252可以获得比特串“101010101101111001010110100110111010110010100010001000100011”。

接着,第2分割部253将一维比特串分割为前部比特串(例如:45比特)、后部比特串(例如:51比特)。更具体地,第2分割部253将“101010101101111001010110100110111010110010100010001000100011”中的前面45比特“101010101101111001010110100110111010110010100”作为前部比特串,将后面的15比特“010001000100011”作为后部比特串来进行分割。

第2哈希值计算部254计算前部比特串“101010101101111001010110100110111010110010100”的哈希值。例如,第2哈希值计算部254使用murmurhash作为哈希函数,将前部比特串“101010101101111001010110100110111010110010100”的哈希值计算为“8088516515490849670”。

然后,检索目的地节点计算部255将第2哈希值计算部254计算出的哈希值“8088516515490849670”应用于式(2),计算检索目的地节点的编号。例如,在d=3、n=10的情况下,根据式(2),求出检索目的地节点为r1=1、r2=2、r3=3。因此,在图10的列表l2a中,求出节点[1]、[2]和[3]作为检索目的地节点(参见图10的(1))。

然后,键检索部256从检索目的地节点中检索与前部比特串“1101010101101111001010110100110111010110010100”一致的键。结果,如列表l2a所示,将节点[1]的栏c1的键作为检索键进行检索(参照图10的(2))。

接着,后部比特串检索部257从键检索部256检索到的键的值中,检索与后部比特串“01000100011”相比前方一致的辅助索引部。结果,在与节点[1]的栏c1的键对应的值中,检索到与后部比特串“010001000100011”相比前方一致的栏c2作为检索值(参照图10的(3))。

然后,值返回部258将与后部比特串检索部257检索到的栏c2的辅助索引部对应的数据部的数据“test_data1”(参照图10的栏c3)作为与检索相应的值,返回给终端装置40(参照图10的(4))。

[保存处理的处理过程]

下面描述由时空间信息管理装置20执行的信息的保存处理的处理过程。图11是由图6所示的时空间信息管理装置20执行的信息的保存处理的处理过程的流程图。

如图11所示,当保存受理部241接受了从数据发送设备10发送的取得数据的输入时(步骤s11),第1转换部242将接受了输入的取得数据中的作为时空间信息的时刻、经度、纬度转换为一维比特串(步骤s12)。

接下来,第1分割部243将由第1转换部242转换后的一维比特串分割为前部比特串和后部比特串(步骤s13)。然后,第1哈希值计算部244计算由第1转换部242进行了转换后的前部比特串的哈希值(步骤s14)。

保存目的地节点计算部245基于由第1哈希值计算部244计算出的哈希值来计算保存目的地节点(步骤s15)。具体地,保存目的地节点计算部245使用式(1)计算保存目的地的节点编号,并选择作为计算结果获得的编号的节点作为保存目的地的节点。

键设定部246进行将第1分割部243进行了分割后的前部比特串存储在保存目的地节点的键中的设定(步骤s16)。然后,值设定部247进行设定,以将由第1分割部243分割后的后部比特串和对应数据存储在由保存目的地节点的键中的、由键设定部246设定的键的值中(步骤s17)。保存指示部248根据键设定部246和值设定部247的设定,进行使数据保存于保存目的地的节点中的指示(步骤s18),结束保存处理。

[检索处理的处理过程]

下面说明时空间信息管理装置20的信息检索处理的处理步骤。图12是表示图6所示的时空间信息管理装置20的信息检索处理的处理过程的流程图。

如图12所示,首先,检索受理部251将从终端装置40发送来的表示时刻、经度、纬度的开始端以及结束端的信息作为检索条件,受理输入(步骤s21)。然后,第2转换部252将输入值转换为一维比特串(步骤s22)。

接着,第2分割部253将第2转换部252转换后的一维比特串分割为前部比特串及后部比特串(步骤s23)。然后,第2哈希值计算部254计算由第2分割部253分割后的前部比特串的哈希值(步骤s24)。

检索目的地节点计算部255基于由第2哈希值计算部254计算出的哈希值来计算检索目的地节点(步骤s25)。具体地,检索目的地节点计算部255使用式(2)来计算检索目的地的节点编号,并且将具有作为计算结果获得的编号的节点设定为检索时的节点。

然后,键检索部256从检索目的地节点中检索与由第2分割部253分割后的前部比特串一致(等价)的键(步骤s26)。然后,后部比特串检索部257针对由键检索部256所检索到的键的值中存在的后部比特串,检索与由第2分割部分割后的后部比特串相比前部一致的值(步骤s27)。

值返回部258将由后部比特串检索部257检索到的值中所包含的对应数据作为与检索相应的值而返回给终端装置40(步骤s28),结束检索处理。

[实施方式1的效果]

如上所述,实施方式1的时空间信息管理装置20将保存对象的信息中的时空间信息转换为一维比特串,将转换后的一维比特串分割为前部比特串和后部比特串,将分割后的前部比特串存储在键中,并且在该键的值中,将分割后的后部比特串和对应数据存储的保存目的地的节点中。此时,时空间信息管理装置20计算前部比特串的哈希值,并将计算出的哈希值应用于式(1)以获取保存目的地的节点编号。这里,在式(1)中求出一个节点编号。

在本实施方式1中,在式(1)中设定分散目的地的节点数d。由此,即使在数据具有相同的键[a]的情况下,各数据也被分开存储在d台节点中。此外,在本实施方式1中,如果数据具有键“b”,则在式(1)中计算不同的键的哈希值,所以存储在与存储键“a”的数据的节点不同的多台节点中的任意节点中。

因此,根据时空间信息管理装置20,即使在某个时间以及某个地区中数据有偏斜的情况下,对于各个数据也分别计算不同的节点作为保存目的地的节点。因此,根据时空间信息管理装置20,即使在存储相同时间或相同地域的数据的情况下,也能够分别分散保存在多个节点中,能够减轻节点间的负荷的偏差。结果,时空间信息管理装置20可以适当地分散保存包含有时空间信息的大量数据。

图13和图15示出了以往的数据库系统的数据分散。图14和图16是用于说明由本实施方式1的时空间信息管理装置20执行的数据分散的图。

如图13所示,以往的数据处理装置20p在预先定义的区域中分割时空间数据,决定数据配置。因此,以往,数据的疏密根据区域而不同,负荷集中于特定的节点。因此,在现有技术中,为了分散特定节点的负荷,伴随节点的追加发生数据的重新配置(参照图13的(1)),需要保存目的地信息的追加和更新。

另外,如图15所示,在预先进行的定义区域的分配的现有方法中,存在节点间负荷偏斜的问题(参照图15的(1)、(2))。例如,在预先将东京都分割为4个区域,对4个节点分别分配了区域1~4的情况下,在区域1中数据少、负荷少,而在区域4中数据多、负荷大。这样,在现有方法中,数据的疏密根据区域而不同,负荷集中在特定的节点。

特别是,移动的iot设备根据时间段(拥挤时和夜间)或地域(都市和郊外)而存在的设备的数量大幅不同。因此,在现有技术的方法中,当在键中保持时间信息、位置信息的状态下使用辅助索引时,一个键所保持的值的数量显著不同,结果,在构成分散键值存储部的节点之间发生负荷的偏斜。即,在现有方法中,发生向特定节点的负荷集中。

另一方面,如图14所示,在时空间信息管理装置20中,由于数据总是分散于多个节点,由每个节点保持的数据量均等地分散,能够维持性能。此外,如图16所示,根据本实施方式1,将数据分散存储在多个节点中,在检索时从多个节点取得数据,所以在节点间负荷变得均匀。换言之,能够不受与时间段、地域对应的数据的偏斜的影响而分散数据。因此,时空间信息管理装置20可以高效地在数据存储部中保存时空间信息这样的多维信息。

另外,时空间信息管理装置20将检索对象的时空间信息的范围条件转换为一维比特串,将转换后的一维比特串分割为前部比特串以及后部比特串,使用分割后的前部比特从检索目的地的节点中检索键,从检索到的键的值中检索与分割后的后部比特串对应的值,将检索到的值中包含的对应数据作为检索结果输出。

这里,时空间信息管理装置20不对所有节点执行检索,而是缩小范围到使用式(2)计算出的一定数量(d台)的节点来执行键检索。然后,基于检索到的键的辅助索引部执行前部一致检索,检索所保存的数据。因此,时空间信息管理装置20不会将检索集中在一个节点上。此外,由于时空间信息管理装置20缩小范围到一定数量的节点执行键检索,因此与对所有节点执行键检索的情况相比,可以高效且高速地执行检索处理,同时减少检索处理的负担。

此外,在以往的rdbms中,在时空间信息的存储时,每当存储大量的数据时就需要索引的制作及更新,为了索引制作处理而需要一定以上的时间。另一方面,时空间信息管理装置20在保存时空间信息时,使用一维比特串转换法来转换时空间信息,并且使用其中的前部比特作为键。由于一维比特串转换法是比较简单的处理,所以时空间信息管理装置20与以往相比,可以削减索引生成处理的时间。因此,与以往的保存方法相比,时空间信息管理装置20可以高速且高效地保存作为多维信息的时空间信息。

如上所述,通过使用本实施方式1的时空间信息管理装置20来保存和检索时空间信息,可以使构成数据存储部(datastore)的节点之间的处理负荷分散。因此,根据时空间信息管理装置20,处理移动的iot设备的数据的运营商可以高速地保存庞大的量的数据。另外,根据时空间信息管理装置20,运营商能够进行基于时空间信息的范围条件的高速检索,因此可以期待扩大可展开的服务的效果。

[实施方式1的变形例]

接着,对实施方式的变形例1进行说明。图17是表示实施方式1的变形例的时空间信息管理装置的结构的一例的图。如图17所示,时空间信息管理装置20a具有控制部23a来代替图6所示的时空间信息管理装置20的控制部23。时空间信息管理装置20a在存储部22中具有分散目的地节点组合信息221a。

分散目的地节点组合信息221a是预先生成的保存目的地的节点的组合表。图18是表示分散目的地节点组合信息221a的数据结构的一例的图。如图18所示,分散目的地节点组合信息221a是将模式编号k(k=0,1,2,3,......,ncd-1)和分散目的地的节点编号的组合im对应起来的一览表。另外,n是节点的台数,d是保存目的地的节点的台数。

控制部23a具有保存部24a以及检索部25a。保存部24a具有保存目的地节点计算部245a,代替图6所示的保存目的地节点计算部245。保存目的地计算部245a选择分散目的地的节点的组合。保存目的地计算部245a将第1分割部243分割后的前部比特作为键,使用第1哈希值计算部244计算出的哈希值,选择分散目的地的节点的组合。

具体,保存目的地计算部245a使用式(3),计算分散目的地的节点编号的组合的模式编号k。

[式3]

k=h(key)modncd…(3)

k:模式编号

h(key):键(key)的哈希值

n:全部节点数

d:分散目的地的节点数

随后,保存目的地节点计算部245a从分散目的地节点的组合信息221a取得与模式编号k相对应的节点编号的组合im,并且使用式(4)从组合im中包括的节点中计算保存目的地节点。

[式4]

w=rand(im)…(4)

w:保存目的地节点编号

rand():随机函数

im:分散目的地节点编号(=检索目的地节点编号)

然后,与实施方式同样地,键设定部246、值设定部247以及保存指示部248使数据保存在保存目的地节点计算部245a计算出的保存目的地的节点中。

此外,检索部25a具有检索目的地节点计算部255a,代替检索目的地节点计算部255。检索目的地节点计算部255a选择检索目的地的节点的组合。检索目的地节点计算部255a将第2分割部253分割后的前部比特作为键,将第2哈希值计算部254计算出的哈希值应用于式(3),计算检索目的地的节点的组合。

具体而言,保存目的地计算部245a使用式(3),计算分散目的地的节点编号的组合的模式编号k。

接着,键设定部256从分散目的地节点的组合信息221a取得与模式编号k对应的节点编号的组合im,从组合im中包含的节点中检索与第2分割部253分割后的前部比特串一致的键。然后,与实施方式1相同,后部比特串检索部257从键检索部256所检索到的键的值中,检索与第2分割部所分割后的后部比特串相比前部一致的值。然后,值返回部258输出后部比特串检索部257所检索到的值中包含的对应数据作为检索结果。

[保存处理的处理过程]

接下来,将描述由时空间信息管理装置20a执行的信息保存处理的处理过程。图19是由图17所示的时空间信息管理装置20a执行的信息保存处理的处理过程的流程图。图19所示的步骤s11a~步骤s14a是与图11所示的步骤s11~步骤s14相同的处理。

保存目的地计算部245a使用式(3),取得分散目的地的节点的组合的模式编号k(步骤s15-1a)。保存目的地节点计算部245a从分散目的地节点的组合信息221a中取得与模式编号k对应的节点编号的组合im,使用式(4)从组合im中包括的节点中计算保存目的地节点(步骤s15-2a)。图19所示的步骤s16a~步骤s18a是与图11所示的步骤s16~步骤s18相同的处理。

[检索处理的处理过程]

接着,说明时空间信息管理装置20a的信息检索处理的处理过程。图20是表示图17所示的时空间信息管理装置20a的信息检索处理的处理过程的流程图。图20所示的步骤s21a~步骤s24a是与图12所示的步骤s21~步骤s24相同的处理。

检索目的地节点计算部255a基于由第2哈希值计算部254计算出的哈希值,取得检索目的地节点的组合(步骤s25a)。检索目的地节点计算部255a将由第2哈希值计算部254计算出的哈希值应用于式(3),计算检索目的地节点的组合的模式编号k,从分散目的地节点的组合信息221a取得与模式编号k对应的节点编号的组合im。

然后,键检索部256从检索目的地节点计算部255a求出的组合的节点中,检索与第2分割部253分割后的前部比特串一致(等价)的键(步骤s26a)。图20的步骤s27和和s28与图12中的步骤s27和s28相同。

[实施方式1的变形例的效果]

如上所述,在时空间信息管理装置20中,预先生成保存目的地节点的组合表,在保存时,将第一分割部243分割后的前部比特的值作为键,选择节点的组合,对所选择的节点中的任意节点进行保存处理。此外,在时空间信息管理装置20中,在检索时,将第2分割部253分割的前部比特的值作为键,求出检索目的地的节点的组合,对求出的组合的节点进行检索。

图21是表示图17所示的时空间信息管理装置20a能够选择的节点的组合的图。在图21中,示出n为4台,d为2台的例子。如图21所示,因为时空间信息管理装置20a可以选择所有节点的所有组合作为保存目的地,所以负荷可以均匀地分散到所有节点。此外,由于时空间信息管理装置20a能够准确地获取检索目的地节点的组合,能够实现适当的检索。

[实施方式2]

对本发明的实施方式2进行说明。图22是表示实施方式2中的信息管理系统的结构的一例的图。

如图22所示,实施方式2的信息管理系统201具有数据存储系统230,该数据存储系统230中多个节点1~n以集群(cluster)结构来工作。信息管理系统201包括具有保存部224和检索部225的时空间信息管理装置220(信息管理装置)。时空间信息管理装置220通过将由数据发送设备10发送的取得数据(例如图2的列表l1)保存到数据存储系统230中来进行管理。时空间信息管理装置220从数据存储系统230存储的数据中输出与检索对象的时空间信息的范围条件对应的对应数据作为检索结果。

保存部224将保存对象的信息中的时空间信息转换为一维比特串,并将转换后的一维比特串分为前部比特串和后部比特串。然后,保存部224计算保存对象的信息的标签号,将所分割的前部比特串和标签号存储在键中,并且将所分割的后部比特串和对应数据存储在数据存储系统230中。

检索部225输出与检索对象的时空间信息的范围条件对应的对应数据作为检索结果。检索部225将检索对象的时空间信息的范围条件转换为一维比特串,将转换后的一维比特串分割为前部比特串及后部比特串。然后,检索部25从检索目的地的节点中检索与分割后的前部比特以及标签号等价的键,从检索到的键的值中检索与分割后的后部比特串对应的值,将检索到的值中包含的对应数据作为检索结果输出。

在数据存储系统230中,作为键值存储部的多个节点1~n以集群结构工作。图23是表示图22所示的数据存储系统230存储的数据的数据结构的一例的图。如图23的列表l22所示,假定存储在节点1~n中的数据的数据结构是具有辅助索引部的键值类型。

具体地,与列表l2(参见图3)同样,如列表l22那样,节点1~n以具有节点的标识信息、键和值的项的结构来存储数据。列表l22与列表l2不同,在键中保存对时空间信息进行比特串转换时的前部比特串以及标签号。

在列表l22中,例如,在保存“前部比特串1_标签号”的键的值中,在辅助索引部中保存“后部比特串1”,在数据部中保存“data1”。

[时空间信息管理装置的结构]

接着,说明时空间信息管理装置220的结构。图24是表示图22所示的时空间信息管理装置220的结构的一例的图。如图24所示,与时空间信息管理装置20相比,时空间信息管理装置220包括具有保存部224和检索部225的控制部223。

[保存部的结构]

保存部224具有保存受理部241、第1转换部242、第1分割部243、标签计算部2245、键设定部2246、值设定部247和保存指示部248。保存受理部241、第1转换部242、第1分割部243、键设定部2246、值设定部247和保存指示部248执行与图6所示的第1转换部242、第1分割部243、值设定部247和保存指示部248相同的处理。另外,节点的台数d的值是可变的,在保存时被决定。

标签计算部2245计算与第1分割部243所分割的前部比特一起存储在键中的标签号。标签计算部2245使用式(5)计算标签号。

【式5】

l=rand()%d…(5)

l:标签号

rand():随机32比特整数值

d:分散目的地的节点数

键设定部2246进行将第1分割部243分割后的前面的比特串和标签计算部2245计算出的标签号作为一组、保存到数据存储系统230的键中的设定。然后,值设定部247执行设定,以将由第1分割部243分割后的后部比特串和对应数据保存在保存目的地节点的键中的、由键设定部2246设定的键的值中。保存指示部248根据键设定部246和值设定部247的设定将数据保存在保存目的地的节点中。

这样,保存部224通过使用式(5)求出标签号,将求出的标签号与前部比特串对应地存储在键中。

[检索部的结构]

接着,说明检索部225。检索部225具有检索受理部251、第2转换部252、第2分割部253、标签导出部2255、键检索部2256、后部比特串检索部257和值返回部258(输出部)。检索受理部251、第2转换部252、第2分割部253、后部比特串检索部257以及值返回部258进行与图6所示的检索受理部251、第2转换部252、第2分割部253、后部比特串检索部257以及值返回部258相同的处理。

标签导出部2255根据在保存时决定的d的值而导出检索对象的标签号。

键检索部2256从数据管理系统230中检索与第2分割部253分割后的前部比特串以及标签号一致的键。然后,后部比特串检索部257从键检索部2256所检索到的键的值中,检索与第2分割部所分割的后部比特串相比前部一致的值。值返回部258将后部比特串检索部257检索到的值中包含的对应数据作为检索结果输出。

[保存部的处理流程]

接下来,将参考图25具体描述保存部224的处理流程。图25是说明图24所示的保存部224的处理流程的图。

如图25所示,例如,对保存受理部241接受了“时刻(unix_timestamp):1483196400,经度:40.7212905884,纬度:-73.8441925049,数据部:“test_data1””的数据的输入的情况进行说明。

在这种情况下,第1转换部242使用三维z曲线将时刻“1483196400”、经度“40.7212905884”和纬度“-73.8441925049”转换成一维比特串(例如:96比特)。所得到的一维比特串是[101010101101111001010110100110111010110010100010001000100011101001110111000100110011001000011011]。

随后,第1分割部243将一维比特串分割为前部比特串(例如:45比特)、后部比特串(例如:51比特)。具体地,第1分割部243将“101010101101111001010110100110111010110010100010001000100011101001110111000100110011001000011011”中的前面的45比特“101010101101111001010110100110111010110010100”分割为前部比特串,将后面的51比特“010001000100011101001110111000100110011001000011011”分割为后部比特串。

接着,标签计算部2245基于式(5)计算标签号。例如,在d=3的情况下,在标签号l=0、l=1或l=2中,这次选择l=0。

键设定部2246设定成在数据存储系统230的键中保存前部比特串以及标签号“101010101101111001010110100110111010110010100-0”。然后,值设定部247进行如下设定:在键[101010101101111001010110100110111010110010100-0]的值中,在辅助索引部中保存后部比特串[010001000100011101001110111000100110011001000011011],在数据部中保存[test_data1]。然后,该保存指示部248根据键设定部2246和值设定部247的设定,将数据保存在数据存储系统230中。

图26是说明图22所示的数据存储系统230内的数据保持形式的图。如图26的列表l22a所示,按照图24所示的保存部224的设定,在节点[1]的键中保存“101010101101111001010110100110111010110010100-0”。然后,如列表l22a所示,在该键“101010101101111001010110100110111010110010100-0”的值中,在辅助索引部中保存“010001000100011101001110111000100110011001000011011”,在数据部中保存“test_data1”。

[检索部的处理流程]

接下来,将参考图27具体描述检索部225的处理流程。图27是说明图24所示的检索部225的处理流程的图。另外,图28是说明图22所示的数据存储系统230内的数据保持形式的图。

如图27所示,例如,说明检索受理部251接受“时刻(unix_timestamp):1483194823~1483196748,经度:40.7211685180~40.7213401794,纬度:-73.8442611694~-73.8439178466”的输入的情况。

在这种情况下,第2转换部252根据三维z曲线,将时刻“1483194823~1483196748”、经度“经度:40.7211685180~40.7213401794”、纬度“-73.8442611694~-73.8439178466”的输入范围转换为一维比特串。在该例子中,可以用60比特表现,第2转换部252可以获得比特串“101010101101111001010110100110111010110010100010001000100011”。

接着,第2分割部253将一维比特串分割为前部比特串(例如:45比特)、后部比特串(例如:51比特)。更具体地,第2分割部253将“101010101101111001010110100110111010110010100010001000100011”中的前面的45比特“101010101101111001010110100110111010110010100”分割为前部比特串,并且将后面的15比特分“010001000100011”分割为后部比特串。

标签导出部2255从d的值中导出检索对象的标签号。然后,键检索部2256从数据存储系统230中检索与前部比特串以及标签号等价的键。例如,在d=3的情况下,检索“101010101101111001010110100110111010110010100-0”、“101010101101111001010110100110111010110010100-1”、“101010101101111001010110100110111010110010100-2”的键。结果,如列表l22a所示,以节点[1]的栏c11的键作为检索键进行检索(参照图28的(1)、(2))。

接着,后部比特串检索部257从键检索部256检索到的键的值中,检索与后部比特串“010001000100011”相比前部一致的辅助索引部。结果,在与节点[1]的栏c11的键对应的值中,检索到与后部比特串“010001000100011”相比前部一致的栏c12作为检索值(参照图28的(3))。

然后,值返回部258将与后部比特串检索部257检索到的栏c12的辅助索引部对应的数据部的数据“test_data1”(参照图28的栏c13)作为符合检索的值,返回给终端装置40。(参照图28的(4))。

[保存处理的处理过程]

接下来,将描述由时空间信息管理装置220执行的信息的保存处理的处理过程。图29是表示由图24所示的时空间信息管理装置220执行的信息的保存处理的处理过程的流程图。

图29所示的步骤s31~步骤s33是与图11所示的步骤s11~步骤s13相同的处理。标签计算部2245使用式(5)计算与第1分割部243所分割的前部比特一起保存在键中的标签号(步骤s34)。键设定部2246进行将第1分割部243所分割的前部的比特串和标签计算部2245所计算的标签号作为一组、保存到数据存储系统230的键中的设定(步骤s35)。图29所示的步骤s36及步骤s37是与图11所示的步骤s17及步骤s18相同的处理。

[检索处理的处理过程]

接着,说明时空间信息管理装置220的信息检索处理的处理过程。图30是表示图24所示的时空间信息管理装置220的信息检索处理的处理过程的流程图。

图30所示的步骤s41~步骤s43是与图12所示的步骤s21~步骤s23相同的处理。标签导出部2255从d的值中导出检索对象的标签号(步骤s44)。

键检索部2256从数据存储系统230中检索与第2分割部253所分割的前部比特串以及标签号等价的键(步骤s45)。图30所示的步骤s46及步骤s47是与图12所示的步骤s27及步骤s28相同的处理。

通过进行该实施方式2的处理,也能够适用于多个节点1~n以集群结构进行工作的数据存储系统230,可以分别分散地存储在多个节点中,可以减轻节点间的负荷的偏斜。

[系统结构等]

图示的各装置的各构成要素是功能概念性的,不一定需要在物理上如图示那样构成。即,各装置的分散·统合的具体方式不限于图示的方式,可以根据各种负荷或使用状况等,以任意单位在功能上或物理上分散·统合地构成其全部或一部分。进而,在各装置中进行的各处理功能,其全部或任意的一部分可以通过cpu以及由该cpu解析执行的程序来实现,或者作为基于引线逻辑的硬件来实现。

另外,在本实施方式中说明的各处理中,作为自动进行的处理而说明的处理的全部或一部分也可以手动进行,或者作为手动进行的处理而说明的处理的全部或一部分也可以用公知的方法自动进行。除非另有说明,否则在说明书和附图中示出的处理过程、控制过程、具体名称以及包括各种数据和参数的信息可以任意改变。

[程序]

图31是示出通过执行程序来实现时空间信息管理装置20的计算机的一例的图。计算机1000包括例如存储器1010和cpu1020。计算机1000还包括硬盘驱动接口1030、盘驱动接口1040、串行端口接口1050、视频适配器1060和网络接口1070。这些各部通过总线1080连接。

存储器1010包括rom(只读存储器)1011和ram1012。rom1011存储例如bios(basicinputoutputsystem)等引导程序。硬盘驱动接口1030连接到硬盘驱动器1090。盘驱动器接口1040连接到盘驱动器1100。例如,诸如磁盘或光盘之类的可拆装的存储介质被插入到盘驱动器1100中。串行端口接口1050例如连接到鼠标1110和键盘1120。视频适配器1060例如连接到显示器1130。

硬盘驱动器1090例如存储os(operatingsystem)1091、应用程序1092、程序模块1093、程序数据1094。即,规定时空间信息管理装置20的各处理的程序被实现为描述了计算机可执行的代码的程序模块1093。程序模块1093例如存储在硬盘驱动器1090中。例如,用于执行与时空间信息管理装置20中的功能结构相同的处理的程序模块1093存储在硬盘驱动器1090中。另外,硬盘驱动器1090也可以由ssd(solidstatedrive)代替。

另外,在上述实施方式的处理中使用的设定数据作为程序数据1094,例如存储在存储器1010或硬盘驱动器1090中。而且,cpu1020根据需要将存储在存储器1010或硬盘驱动器1090中的程序模块1093或程序数据1094读出到ram1012中并执行。

另外,程序模块1093或程序数据1094不限于存储在硬盘驱动器1090中的情况,例如也可以存储在可装卸的存储介质中,经由盘驱动器1100等由cpu1020读出。或者,程序模块1093和程序数据1094也可以存储在通过网络(lan、wan(wideareanetwork)等)连接的其他计算机中。可以由cpu1020从其他计算机经由网络接口1070读出程序模块1093和程序数据1094。

以上,对应用了由本发明人完成的发明的实施方式进行了说明,但并不是由基于本实施方式的本发明公开的一部分的记述和附图来限定本发明。即,基于本实施方式,由本领域技术人员等完成的其他实施方式、实施例以及运用技术等全部包含在本发明的范畴内。

标号说明

1、201信息管理系统

10数据发送设备

20、20a、220时空间信息管理装置

21通信部

22存储部

23、23a、223控制部

24、24a、224存储部

25、25a、225检索部

30、230数据存储系统

40终端装置

41应用

221a分散目的地节点组合信息

241保存接受部

242第1转换部

243第1分割部

244第1哈希值计算部

245、245a保存目的地节点计算部

246、2246键设定部

247值设定部

248保存指示部

251检索受理部

252第2转换部

253第2分割部

254第2哈希值计算部

255、255a检索目的地节点计算部

256、2256键检索部

257后部比特串检索部

258值返回部

2245标签计算部

2255标签导出部

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1