数据库管理方法、计算机、传感器网络系统以及数据库搜索程序的制作方法

文档序号:6352052阅读:181来源:国知局
专利名称:数据库管理方法、计算机、传感器网络系统以及数据库搜索程序的制作方法
技术领域
本发明涉及一种用于进行数据处理的计算机系统及其数据处理方法,尤其涉及一种适于处理以工厂、工厂设备(Plante)中的设备等的预防维护为目的而收集的大量数据的计算机系统及其数据处理方法。
背景技术
在火力发电工厂设备中,多达几千个传感器被安装于设施的各种部位。这些传感器按照秒单位或者毫秒单位始终持续发送测量结果,在工厂设备寿命中发送的数据量估算为几百 几十梯(tera-)字节这种庞大的数据量。在对这些多年内每天每刻发送过来的数据进行管理的系统中,存储在数据库中的数据量变得庞大,因此数据库的盘容量的增加成为问题。另一方面,在工厂设备内产生异常的情况下,工厂设备的管理者对存储在该数据库中的传感器信息进行分析而需要提前确定产生异常的原因。但是,在将表示异常值的传感器数据(信号)显示在浏览器等中的同时,为了缩小产生问题的原因,需要对数据库上的庞大的数据发出几次搜索查询,确定出异常原因要花费时间。作为解决这些问题的方法,例如专利文献I所记载那样,压缩传感器信息而存储到数据库,由此能够消除盘容量的增加。另外,在异常原因的确定中,通过缩减向数据库发出的查询数来在短时间内进行异常原因的确定。专利文献I :日本特开2002-358117号公报

发明内容
发明要解决的问题但是,在上述方法中,在搜索压缩数据的情况下,在将数据暂时向某处展开之后,需要对展开后的数据进行搜索,因此存在搜索速度被牺牲这种问题。另外,在确定异常原因的情况下,需要多次发出根据传感器信息来用于搜索异常部位的搜索查询以及用于确定产生异常的原因而用于进行异常部位的追踪的搜索查询。因而,存在发出的查询数量增加以及异常部位的搜索时间增加这种问题。本发明是鉴于上述问题点而完成的。即,目的在于缩减存储在数据库中的数据量,从大量的数据中高效率地搜索期望的数据。用于解决问题的方案本发明的代表性的一例具有以下结构。即,一种数据库管理方法,用于计算机中,该计算机具备处理器以及与上述处理器相连接的存储器,并管理数据库,该数据库管理方法的特征在于,上述数据库存储根据规定条件而被压缩了的多个压缩数据,上述数据库管理方法包括如下步骤第一步骤,在从与上述计算机相连接的客户端计算机接收到向上述数据库的查询的情况下,上述计算机对接收到的上述查询进行分析;第二步骤,上述计算机根据上述接收到的查询的分析结果,生成用于从上述数据库搜索一个以上的上述压缩数据的第一询问;第三步骤,上述计算机根据上述接收到的查询的分析结果,生成第二询问,该第二询问用于对从作为上述第一询问的响应结果的、上述一个以上的压缩数据获取到的多个时间序列数据执行搜索;第四步骤,上述计算机对上述数据库发出上述第一询问,从上述数据库获取一个以上的上述压缩数据作为上述第一询问的响应结果;第五步骤,上述计算机对作为针对上述第一询问的响应结果而获取到的一个以上的压缩数据进行解压缩,由此获取上述多个时间序列数据;第六步骤,上述计算机对上述获取到的多个时间序列数据执行上述第二询问;第七步骤,上述计算机根据针对上述第二询问的响应结果,从上述获取到的多个时间序列数据中提取规定数据;以及第八步骤,上述计算机从在上述第七步骤中提取出的规定数据中提取用于输出到上述客户端计算机的数据,生成输出结果。发明的效果根据本发明,能够在维持实质性数据的同时缩减存储在数据库中的数据量,并且能够从大量的数据中高效率地搜索所期望的数据。


图I是是说明本发明所应用的传感器网络系统的一个实施方式中的计算机系统的概要的框图。图2是说明本实施方式中的中心服务器的硬件结构的框图。图3是说明本实施方式中的中心网络系统的软件结构的框图。图4是说明本实施方式中的数据装载模块和数据库的框图。图5A是说明在本实施方式中通过数据装载模块执行的处理的流程图。图5B是说明在本实施方式中通过数据装载模块执行的数据加载处理的流程图。图5C是说明在本实施方式中通过数据装载模块执行的数据加载处理的流程图。图6是说明本实施方式中的数据搜索模块的框图。图7是表示在本实施方式中通过数据搜索模块输出的数据的结构的一例的说明图。图8A是表示本实施方式中的查询、SQL以及CQL的一例的说明图。图8B是表示本实施方式中的查询、SQL以及CQL的一例的说明图。图9是说明通过数据搜索模块执行的处理的概要的流程图。图IOA是表示在本实施方式中通过查询分析部截出的字符串的说明图。图IOB是说明通过本实施方式的查询分析部执行的查询分析处理的一例的流程图。图IlA是表示用于生成本实施方式中的SQL的SQL模板的说明图。图IlB是说明通过本实施方式的SQL生成部执行的处理的一例的流程图。图12A是说明用于生成本实施方式中的CQL的CQL模板的说明图。图12B是说明本实施方式中通过CQL生成部执行的处理的流程图。图13是说明通过本实施方式的DB搜索部执行的SQL处理的一例的流程图。图14A是说明通过本实施方式的数据解压缩/排序处理部执行的处理的一例的流程图。
图14B是说明通过本实施方式的数据解压缩/排序处理部执行的处理的一例的流程图。图15是表示本实施方式中的流数据处理部的结构示例的说明图。图16是表示本实施方式的用户定义函数的一例的说明图。图17是表示根据本实施方式的用户定义函数内包含的函数提取出的规定区间的数据的一例的说明图。图18A是表示通过本实施方式的截出处理部执行的处理的一例的流程图。图18B是说明本实施方式的截出处理的详细的流程图。图19是表示通过本实施方式的截出处理部输出的输出结果的一例的说明图。·图20是说明通过本发明的实施方式的数据输出部执行的处理的一例的流程图。图21是表示在本实施方式中执行特征值搜索处理的情况下的查询和SQL的一例的说明图。图22是表示在本实施方式中用于生成特征值搜索用的SQL的SQL模板的说明图。图23是说明通过本实施方式的特征值搜索用SQL生成部执行的处理的一例的流程图。图24是说明在本实施方式中并行执行通过数据搜索模块执行的处理的情况下的流程图。图25是说明本发明的实施方式的特征值的种类和生成方法的图。图26是说明对本发明的实施方式的时间序列数据块的时间幅度进行决定的方法的图。图27是说明通过本实施方式的流数据处理部执行的处理的一例的流程图。图28是说明通过本实施方式的输入控制部执行的处理的一例的流程图。图29是说明通过本实施方式的输出控制部执行的处理的一例的流程图
具体实施例方式图I是说明本发明所应用的传感器网络系统的一个实施方式中的计算机系统的概要的框图。传感器网络系统具备工厂设备102、数据中心105以及工厂设备监视点107,通过网络103相连接。作为网络103,例如也可以使用专用线、所谓因特网等广域网或者LAN等局域网络。工厂设备102具备传感器100和数据收集装置101。传感器100与数据收集装置101相连接。此外,连接方法可以直接进行连接,也可以通过LAN(Local Area Network :局域网)或者无线网络等进行连接。传感器100检测各种数据。此外,传感器100为了检测作为目的的数据而包括各种传感器。数据收集装置101收集通过传感器100检测出的数据,通过网络103,将从传感器100收集的数据发送到数据中心105。数据收集装置101具备CPU(省略图示)、与CPU相连接的存储器(省略图示)、与CPU相连接的网络接口(省略图示)以及存储介质(省略图示)。此外,数据收集装置101也可以具备显示器或者输入装置等。
数据中心105具备中心服务器104,该中心服务器104对从多个工厂设备102的数据收集装置101发送的数据进行统一管理。中心服务器104存储从数据收集装置101发送的数据。另外,中心服务器104通过工厂设备监视点107等根据管理者的要求,从存储的数据中取出规定数据或者对取出的数据进行分析而输出分析结果。使用图2后文中说明中心服务器104的具体装置结构。工厂设备监视点107具备数据显示终端106,该数据显示终端106对数据中心105进行各种询问。数据显示终端106通过网络103对存储在中心服务器104中的数据进行监视或者阅览。数据显示终端106具备CPU(省略图示)、与CPU相连接的存储器(省略图示)、与(PU相连接的网络接口(省略图示)、存储介质(省略图示)、显示装置(省略图示)以及输入装置(省略图示)。
图2是说明本实施方式中的中心服务器104的硬件结构的框图。中心服务器104具备CPU 121、存储器122、HDD 123、显示器124、网络接口 125、鼠标126、键盘127以及电源装置128。CPU 121执行在存储器122上展开的程序。存储器122存储通过CPU 121执行的程序以及执行该程序所需的信息。另外,存储器122作为CPU用于执行各种处理的工作区而使用。在本实施方式中,在存储器122上通过HDD 123来加载OS 158 (参照图3)、数据装载模块153 (参照图3)、数据库154 (参照图3)以及数据搜索模块157 (参照图3)等程序而执行。HDD 123存储从存储器122读出的程序和各种信息。在图2示出的示例中,HDD123为仅一个,但是可以具备多个HDD 123,也可以是由多个HDD 123构成的阵列组。网络接口 125是用于与网络103相连接的接口。电源装置128是用于对中心服务器104提供电力的装置。显示器124是对操作中心服务器104的操作者显示各种信息的装置。鼠标126是操作中心服务器104的操作者所利用的指示设备。键盘127是操作中心服务器104的操作者所利用的输入装置。图3是说明本实施方式中的中心网络系统的软件结构的框图。在中心服务器104上,通过CPU 121来执行OS (Operating System :操作系统)158。OS 158执行各种处理。具体地说,OS 158执行数据装载模块153、数据库154以及数据搜索模块157。数据库154是对从数据收集装置101发送而通过数据装载模块153变换为规定形式的数据进行管理的管理软件。使用图4后文中详细说明存储在数据库154中的数据。数据装载模块153从工厂设备102内包含的数据收集装置101通过网络103而接收数据,将接收到的数据变换为规定形式而存储到数据库的软件。在图3示出的示例中,数据装载模块153从数据收集装置101接收文件名称为“sid csv”的输入文件1(151)以及文件名称为“input, csv”的输入文件2(152),将输入文件1(151)和输入文件2(152)变换为规定形式而存储到数据库154。此外,图3 示出的文件 1(151)和文件 2 (152)是 CSV (Comma Separated Value :可以使用逗号分隔值)格式的文件。在此,CSV文件表示多个字级被“,(逗号)”分隔的文件格式。在图3中记载了使用CSV格式的示例,但是代替逗号也可以是使用TAB分隔的文件格式(TSV格式)、二进制格式。数据搜索模块157是根据所输入的查询,从数据库154中搜索作为目的的数据而输出搜索结果的软件。在图3示出的示例中,数据搜索模块157从接收数据显示终端106的用户150接收查询155,根据该查询155来搜索数据,将该数据搜索的结果作为搜索结果文件156而输出。数据显示终端106读出搜索结果文件156,将数据变换为数字或者图形波形等形式而显示在画面上。图4是说明本实施方式中的数据装载模块153和数据库154的框图。首先,说明在输入文件I (151)、输入文件2 (152)以及数据库154内存储的数据的
形式。 输入文件I (151)包括Name列1511和ID列1512。Name列1511是工厂设备102所具备的传感器100的传感器名称。ID列1512是用于对工厂设备102所具备的传感器100唯一地进行识别的标识符。输入文件2 (152)包括datetime列1521和传感器名称列1522。datetime列1521是表示传感器100获取到数据的时间的时间信息。传感器名称列1522由各传感器100的名称构成,存储与Name列1511对应的传感器名称。在构成传感器名称列1522的各传感器100中由存储各传感器100检测出的值。在图4示出的示例中,输入文件2(152)存储由各传感器100每一秒钟检测出的数据。数据库154存储SID表207和DAT表208。SID 表 207 包括 Name 列 2071 和 ID 列 2072。Name列2071是工厂设备102所具备的传感器100的传感器名称。ID列2072用于对工厂设备102所具备的传感器100唯一地进行识别的标识符。DAT表208存储如下数据在各传感器100中按照规定的连续的每个时间单位(时间序列数据块)对输入文件2(152)内包含的数据进行压缩而得到的数据。具体地说,对于各传感器100按每一行存储一小时量压缩后的数据。DAT 表 208 包括 datetime 列 2081、ID 列 2082、CDATA 列 2083、MaxVal 列 2084 以及 MaxVal 列 2085。datetime列2081存储表示压缩后的时间序列数据块的开始时间的时间信息。在此,开始时间表示datetime列1521中的最久的时间、即作为所压缩的时间序列数据块的起点的时间。ID列2082是用于识别传感器100的标识符。CDATA列2083是压缩后的数据。MaxVal列2084是压缩后的时间序列数据块内包含的数据的最大值。MaxVal列2085是压缩后的时间序列数据块内包含的最小值。在图4示出的示例中,对数据组201压缩后的时间序列数据块与行209对应,对数据组202压缩后的时间序列数据块与行210对应。例如,行209是在传感器名称为“S4”的传感器100中“2009/10/1的O时O分O秒钟”起一小时量的压缩数据而得到的数据“DDD”,表示压缩前的数据内包含的最大值为“99”,压缩前的数据内包含的最小值为“52”。在本实施方式中,输入文件2 (152)的3600行(一小时)的数据被压缩成一行。此夕卜,在本实施方式的以后的说明中,在时间序列数据块内存储的时间范围固定一小时,但是还能够将时间序列数据块的时间范围变更为一小时以外。作为时间序列块的时间范围的决定方法,利用使用者的使用最多的搜索期间。例如将最多期间搜索的范围的1/10的期间设为时间序列数据块的时间范围。由此,如果搜索范围为一天则时间序列数据块的时间范围设为2. 4小时,如果搜索范围为一个月则时间序列数据块的时间范围设为三天。在数据搜索模块157的查询分析部中,从根据图8A的查询示例I的where timerange语句指定的搜索期间算出时间范围,将时间范围作为频率表进行管理,由此能够实现这些结构。另外,作为时间序列块的时间范围的决定方法,还能够使用产生时间序列的特征变化的最小期间。使用图26说明对时间序列数据块2601进行分割而将时间序列块2605 设为最佳时间序列块的方法。图26是说明对本发明的实施方式的时间序列数据块的时间幅度进行决定的方法的图。在时间序列块2601中,得到特征值a[l] [I]。接着,将时间序列数据块分为一半,得到特征值3[2][1]、&[2][2]。在此,在特征值a[i][j]中,i是表示分割了几次的分割等级,j是表示是第几个时间序列数据块的特征值的编号。递归地反复上述处理。在此,将分割等级i中的特征值与分割等级i+Ι中的特征值之间的差为阈值以下的情况设为时间序列数据块的最佳分割等级,将该时间序列数据块的宽度设为最佳时间范围。还能够将特征值a[i][j]与a[i+l][j]、a[i][j]与a[i+l][j+l]的差更大的值针对所有时间序列数据块j取得平均,将该值作为“与特征值之间的差”进行阈值判断。如图4所示,通过存储压缩数据,能够缩减数据库的使用容量。接着,说明数据装载模块153。数据装载模块153具备数据汇总部203、特征值提取部204、特征值提取用流数据处理部2041、数据压缩部205以及数据插入部206。数据汇总部203在各传感器100的每一个中汇总规定时间间隔(在本实施方式中一小时)的数据。特征值提取部204从压缩的数据中提取特征值。特征值在从数据库154中搜索压缩数据时使用。使用图23在后文中说明使用了特征值的搜索方法。此外,在本实施方式中,从压缩的数据中作为特征值提取最大值和最小值。此外,如果是表示平均或者分散等进行压缩的数据的特征的值,则提取出的特征值也可以是任意值。使用图25说明特征值的示例。在il的事例中,使用压缩的数据的起点、终点等确定的值作为特征值。在i2的事例中,使用针对压缩的数据整体至任意区间的时间序列的最大值、最小值、平均值、分散值或者标准偏差值作为特征量。在i3和i4的事例中,使用多个传感器观察值i3、 4的平均值作为特征值。在i5的事例中,使压缩的数据的整体至任意的区间巾贞化,实施FFT (Fast FourierTransform :快速傅里叶变换)变换,由此变换为频带,使用预先指定的频率A、B、C的振幅作为特征值。特征值提取部204能够利用特征值提取用流数据处理部2041来生成特征值。即,将实时地到来的时间序列数据存储到规定期间存储器上,能够通过进行最大值、最小值、平均值或者分散值等的时间序列分析来生成特征值。数据压缩部205在各传感器各自中对规定时间间隔的数据进行压缩。数据插入部206将压缩数据存储到DAT表208。图5A是说明在本实施方式中通过数据装载模块153执行的处理的流程图。数据装载模块153判断在数据库154中是否存在SID表207 (S250)。例如,能够通过发出询问在数据库154中是否存在SID表207的SQL等来判断数据装载模块153。在判断为在数据库154中存在SID表207的情况下,数据装载模块153进入到S252。在判断为在数据库154中不存在SID表207的情况下,数据装载模块153读出输入文件I (151)而生成SID表207 (S251)。数据装载模块153从输入文件2 (152)中读 出一行量的字符串,从将逗号作为分隔符号而读出的字符串中提取与列相当的字符串,存储到排列csv(S252)。例如,在提取出ci个字符串的情况下,提取出的字符串分别被存储到排列csv
cSV[ci-l]。在此,ci表示列数。在本实施方式中,在CSV [O]中存储datetime,在CSV [I] csv[ci_l]中存储传感器的值。数据装载模块153生成用于能够从输入文件2 (152)的传感器名称列1522中搜索ID 列 2082 的排列 ID(S253)。数据装载模块153对用于制作压缩数据的数据排列进行定义(S254)。在本实施方式中,对一个传感器100的一小时量的数据进行压缩,因此定义d[ci] [3600]排列。S卩,对一个传感器100定义3600个排列。数据装载模块153判断在数据库154中是否存在DAT表208 (S255)。例如,能够通过发出询问在数据库154中是否存在DAT表208的SQL等来判断数据装载模块153。在判断为在数据库154中存在DAT表208的情况下,数据装载模块153进入到S257。在判断为在数据库154中不存在DAT表208的情况下,数据装载模块153生成DAT表 208(S256)。数据装载模块153从在S254中获取到的排列生成压缩数据,执行用于存储到DAT表208的数据加载处理(S257)。使用图5B在后文中详细说明数据加载处理。数据装载模块153判断输入文件2(152)的全部数据的处理是否结束(S258)。在判断为输入文件2 (152)的全部数据的处理没有结束的情况下,数据装载模块153返回到S257而执行相同的处理。在判断为输入文件2(152)的全部数据的处理结束的情况下,数据装载模块153结束处理。图5B和图5C是说明在本实施方式中通过数据装载模块153执行的数据加载处理的流程图。
数据装载模块153使表示时间(秒)的变量i初始化,对全部时间(秒)执行处理(S259)。具体地说,数据装载模块153将变量i设定为“0”,执行反复处理直到变量i变得大于“3600”。此外,在本实施方式中,到O 3599秒钟的数据成为处理对象。数据装载模块153从输入文件2 (152)中读出一行量的数据,从读出的数据中提取Cl个字符串,存储到排列CSV [O] csv[ci-l] (S260)。数据装载模块153判断变量i是否为“O” (S261)。在判断为变量i不是“O”的情况下,数据装载模块153进入到S263。在判断为变量i为“O”的情况下,数据装载模块153在DAT表208的datetime列2081 中存储 csv [O] (S262)。数据装载模块153按照各传感器100来汇总数据(S263)。具体地说,数据汇总部203使存储在排列csv的值数值化而设定为排列d。 数据装载模块153判断是否执行反复处理、即全部时间的处理是否结束(S264)。在判断为全部变量i的处理没有结束的情况下,数据装载模块153返回到S259,对变量i相加“1”,执行S260 S263为止的处理。在判断为全部变量i的处理结束的情况下,数据装载模块153使表示传感器100的数量的变量j初始化,对全部传感器100执行处理(S265)。具体地说,数据装载模块153对变量j设定“1”,执行反复处理直到变量j变得大于cn。数据装载模块153从排列d[j] [i]中提取特征值(S266)。具体地说,特征值提取部204从排列d[j] [O] d[j] [3599]中提取最大值、最小值、平均值、分散值或者频谱上的确定值中的任一个、或者它们的组合。数据装载模块153将排列d[j] [i]压缩为规定形式(S267)。具体地说,数据压缩部205将排列d[j] [O] d[j][3599]压缩为规定形式。此外,作为压缩形式考虑zip、lzh、gzip 以及 bzip2 等。数据装载模块153将压缩后的数据存储到DAT表208 (S268)。具体地说,数据插入部206将在S253中生成的id[i]存储到ID列2082,将在S262中设定的csv
存储到datetime列2081,将在S266中提取出的最大值存储到DAT表208的MaxVal列2084,将在S266中提取出的最小值存储到MaxVal列2085,以及将在S267中压缩后的数据存储到CDATA2083。数据装载模块153判断全部传感器100的处理是否结束(S269)。在判断为全部传感器100的处理没有结束的情况下,数据装载模块153返回到S266而执行相同的处理。在判断为全部传感器100的处理结束的情况下,数据装载模块153结束处理。图6是说明本实施方式中的数据搜索模块157的框图。数据搜索模块157根据所输入的查询155来将SQL发出到数据库154,根据针对发出的SQL的响应来生成搜索结果,将所生成的搜索结果输出到搜索结果文件156。数据搜索模块157具备查询分析部300、SQL生成部301、特征值搜索用SQL生成部302、CQL生成部303、DB搜索部304、数据解压缩/排序处理部305、流数据处理部306、截出处理部307以及数据输出部308。查询分析部300对所输入的查询155进行分析,将该查询155的内容作为全局变量309而输出。此外,全局变量309被存储到存储器122等的存储区域,SQL生成部301、特征值搜索用SQL生成部302、CQL生成部303、DB搜索部304、数据解压缩/排序处理部305、流数据处理部306、截出处理部307以及数据输出部308的各部能够进行参照。SQL生成部301根据作为查询分析部300的分析结果的全局变量309,生成用于搜索数据库154的SQL 310,将所生成的SQL 310输出到DB搜索部304。特征值搜索用SQL生成部302根据作为查询分析部300的分析结果的全局变量309使用特征值来生成用于搜索数据库154的SQL 310,将所生成的SQL 310输出到DB搜索部304。CQL生成部303根据作为查询分析部300的分析结果的全局变量309生成用于执行流数据处理的CQL 311,将所生成的CQL 311输出到流数据处理部306。DB搜索部304将通过SQL生成部301或者特征值搜索用SQL生成部302生成的 SQL 310发出到数据库154。DB搜索部304将SQL 310的执行结果、即数据搜索结果输出到文件A312。此外,输出到文件A312的数据是压缩数据。数据解压缩/排序处理部305读出文件A312,对压缩数据进行解压缩并且根据规定条件对解压缩后的数据进行排序。数据解压缩/排序处理部305将处理后的数据输出到文件B313。流数据处理部306根据通过CQL生成部303生成的CQL 311,将文件B313作为输入数据而读出,对读出的各数据执行流数据处理。流数据处理部306对文件C314输出处理后的数据。截出处理部307从文件C314中提取与规定条件一致的数据。截出处理部307对文件D315输出提取出的数据。数据输出部308使用存储在文件D315中的数据来生成输出结果,将所生成的输出结果作为搜索结果文件156而输出。图7是表示在本实施方式中通过数据搜索模块157输出的数据的结构的一例的说明图。数据结构1(340)是存储在文件A312中的数据(包)的数据结构。文件A312存储多个包。数据结构I (340)由 datetime3401、idx3402、zlen3403 以及 zblk3404 构成。datetime3401表示日期和时间等的时间,与DAT表208的datetime列2081对应。在本实施方式中,datetime3401的数据长度为8byte。idx3402表示用于识别传感器100的传感器识别编号。查询示例I的input_item语句内记录的传感器的排序作为传感器识别编号而分配。在本实施方式中,idx3402的数据长度为4byte。zlen3403表示压缩后的数据的块长,在本实施方式中数据长度为4byte。zblk3404表示压缩后的数据。具体地说,是压缩后的数据本身。在本实施方式中,zblk3404的数据长度为nbyte。数据结构2(341)是在文件B313、文件C314以及文件D315中存储的数据(二进制)的数据结构。datetime3411表示日期和时间等的时间。在本实施方式中,datetime3411的数据长度为8byte。valn3412表示数据3413的数量,在本实施方式中,数据长度为8byte。数据3413表示通过数据解压缩/排序处理部305、流数据处理部306以及截出处理部307来算出的值,在本实施方式中,数据长度分别为4byte。例如,在存在“2009/10/1 00:00:00,4,100,300,12,52” 这种数据的情况下,在datetime3411 中存储了 “2009/10/1 00:00:00”,在 valn3412 中存储了 “4”,在 vain [O]中存储了“100”,在valn[l]中存储了“300”,在valn[2]中存储了“ 12”,在vain[3]中存储了“52”。数据结构3(342)是存储在搜索结果文件156中的数据的数据结构。在数据结构3(342)中存储有日期和时间等的时间以及各传感器100的值。 图8A和图8B是表示本实施方式中的查询155、SQL 310以及CQL 311的一例的说明图。查询示例I (350)和查询示例2 (351)是查询155的一例。查询示例1 (350)是执行流数据处理的情况下的查询155。查询示例1 (350)是表示针对传感器名称为“Sensorl”和“Sensorf”的传感器100的数据提取满足在where_timerange语句和where_conditon语句中指定的条件的数据、并且将提取出的数据存储到“result, csv” 的情况。查询示例2(351)是不执行流数据处理的情况下的查询155。查询示例2(351)是表示针对传感器的名称为“Sensorl”、“SenS0r2”以及“Sensorf”的传感器100的数据提取满足在wherejimerange语句中指定的时间间隔的数据、并且将提取出的数据存储到“result, csv” 的情况。SQL示例I (352)是在输入了查询示例I (350)的情况下通过SQL生成部301生成的SQL 310的一例。此外,使用图IlA和图IlB在后文中说明SQL 310的生成方法。CQL示例I (353)是在输入了查询示例I (350)的情况下通过CQL生成部303生成的CQL 311的一例。此外,使用图12A和图12B在后文中说明CQL 311的生成方法。图9是说明通过本实施方式的数据搜索模块157执行的处理的概要的流程图。数据搜索模块157从数据显示终端106接收查询155的输入而开始处理。数据搜索模块157对所输入的查询155进行分析(S320)。具体地说,对输入了查询分析部300的查询155进行分析。数据搜索模块157判断所输入的查询155是否为要求执行特征值搜索的查询(S321)。具体地说,查询分析部300判断在所输入的查询155中是否包含meta_search语句。在所输入的查询155中包含meta_search语句的情况下,判断为所输入的查询155是要求执行特征值搜索的查询。此外,使用图22在后文中说明包含meta_search语句的查询155的示例。在判断为所输入的查询155并非要求执行特征值搜索的查询的情况下,数据搜索模块157生成SQL 310(S322)。具体地说,SQL生成部301生成SQL 310,进入到S324。在判断为所输入的查询155是要求执行特征值搜索的查询的情况下,数据搜索模块157生成特征值搜索用的SQL 310 (S323)。具体地说,特征值搜索用SQL生成部302生成特征值搜索用的SQL 310,进入到S324。
接着,数据搜索模块157判断是否执行流数据处理(S324)。具体地说,查询分析部300判断在所输入的查询155中是否包含select_items语句。在所输入的查询155中包含select_items语句的情况下,判断为执行流数据处理。在判断为不执行流数据处理的情况下,数据搜索模块157根据通过SQL生成部301或者特征值搜索用SQL生成部302生成的SQL 310,搜索数据库154(S325)。具体地说,DB搜索部304根据通过SQL生成部301或者特征值搜索用SQL生成部302生成的SQL 310,搜索数据库154,将搜索出的压缩数据输出到文件A312。数据搜索模块157对存储在文件A312中的压缩数据进行解压缩,对解压缩后的数据进行排序(S326)。具体地说,数据解压缩/排序处理部305对存储在文件A中的压缩数据进行解压缩,对解压缩后的数据进行排序而输出到文件B,进入到S332。在S324中判断为执行流数据处理的情况下,数据搜索模块157生成CQL 311(S327) ο具体地说,CQL生成部303生成CQL 311。数据搜索模块157根据通过SQL生成部301或者特征值搜索用SQL生成部302生成的SQL 310,搜索数据库154(S328)。数据搜索模块157对存储在文件A312中的压缩数据进行解压缩,对解压缩后的数据进行排序(S329)。该处理是与S326相同的处理。数据搜索模块157根据通过CQL生成部303生成的CQL 311来执行流数据处理
(5330)。具体地说,流数据处理部306根据通过CQL生成部303生成的CQL311来执行流数据处理,将执行结果输出到文件C314。数据搜索模块157从存储在文件C314中的数据中截出成为输出对象的数据
(5331)。具体地说,截出处理部307从存储在文件C314中的数据中截出成为输出对象的数据,将截出的数据输出到文件D315,进入到S332。数据搜索模块157将存储在文件B或者文件D315中的数据变换为用于显示数据显示终端106的输出数据,输出到搜索结果文件156(S332),由此结束处理。以下,详细说明各步骤的处理。图IOA是表示通过本实施方式中查询分析部300截出的字符串的说明图。字符截出部分360表示从所输入的查询155截出的字符串。查询分析部300保持指示截出关键词的模板即字符截出部分360。在图IOA示出的示例中,从九个关键词中截出变量“$input”、“$range”、“$select”、“$start”、“$end”、“$cond”、“$preV”、“$post”、“$step”、“$file”#&“$meta”。在此,关键词表不 “ input_item s ,,和 “select_items,,等。例如,从所输入的查询155中截出关键词“input_item s:”以下的字符串,在变量「$1即此」中存储截出的字符串。以下,说明由查询分析部300执行的查询分析处理。图IOB是说明通过本实施方式的查询分析部300执行的查询分析处理的一例的流程图。查询分析部300接收查询155的输入,开始处理。首先,查询分析部300使变量初始化(S361)。具体地说,查询分析部300对“$range”、“$cond” 以及"Sstep” 中设定“I”,对“$orev”和“$post” 中设定“O”。另外,查询分析部 300 对“$input”、“$select”、“$start”、“$end”、“$file,,以及“$meta”执行 Null初始化。接着,查询分析部300根据字符截出部分360从所输入的查询155中截出字符串,将截出的字符串存储到各变量(S362)。具体地说,查询分析部300从查询155内包含的九个语句中截出字符串,将截出的字符串分别存储到变量“$input”、“$range”、“$select”、“$start”、“$end”、“$cond”、“$orev”、“$post”、“$st印”、“$fiIe” 以及“$meta,,。例如,在查询示例1 (350)的情况下,在变量“$input”中存储“’ SensorlSensor2> 此外,关于在查询155内没有包含的关键词,直接使用在S361中设定的值。查询分析部300算出变量“$input”和“$select”内包含的要素数(S363)。具体地说,查询分析部300在变量“$input”和“$select”内包含的字符串中分别对用“,(逗号)”分隔的要素数进行计数,由此要素数。进而,查询分析部300将变量“$input”内包含的要素数代入到变量“$inum”,将变量“$select”内包含的要素数存储到变量“ $snum”。例如,在变量“$input”中存储有“’ Sensorl’,’ Sensor2’” 的情况下,在“$inum”中存储“2”。查询分析部300将各变量作为全局变量309而输出(S364),结束处理。图IlA是表示用于生成本实施方式中的SQL 310的SQL模板的说明图。SQL模板370是用于生成SQL 310的模板,由SQL生成部301保持。在图IlA示出的示例中示出从根据各个ID列(2072、2082)表示的值使SID表207和DAT表208这两个表进行等效结合(cnoin操作)得到的表中根据规定条件来搜索时间(datetime)、传感器名称(SID. Name)以及压缩数据(DAT. CDATA)得到的SQL的情况。另外,规定条件被定义为where语句以下。即,定义将数据按时间顺序来排序而获取与所指定的传感器名称和所指定的时间区间一致的数据的SQL。SQL生成部301使用全局变量309来代入SQL模板370的粗字符和用下划线部表示的部分所需的数据,由此生成SQL 310。具体地说,SQL生成部301生成“$db_input”、“$db_start”以及“$db_ebd”,将所生成的数据代入到SQL模板370。以下说明SQL生成处理。图IlB是说明通过本实施方式的SQL生成部301执行的处理的一例的流程图。SQL 生成部 301 使用全局变量 309 来生成 “$db_input”、“$db_start” 以及 “$db_ebd” (S371)。具体地说,关于“$db_input” 和 “$db_ebd” 生成 “$db_input” = “$input” 以及“$db_ebd = $end”。另外,关于“$db_start”计算“$db_start = $start_$range”,进而,该计算结果的分钟和秒钟单位的值被初始化为“O”。这是由于,在本实施方式中搜索压缩为一小时单位之后的数据。接着,SQL生成部301生成SQL 310 (S372),结束处理。具体地说,SQL生成部 301 将所生成的“$db_input”、“$db_start” 以及“$db_ebd”代入到SQL模板370来生成SQL 310。
图12A是表示用于生成本实施方式中的CQL 311的CQL模板的说明图。CQL模板380是用于生成CQL 311的模板,由CQL生成部303保持。CQL生成部303使用全局变量309代入CQL模板380的粗字符和用下划线部表示的部分所需的数据来生成CQL 311。具体地说,CQL生成部 303 生成“$。91_;[即111:”、“$。91_8616(31:”、“$以1^6”、“$091_label”以及“$cond”,将所生成的数据代入到CQL模板380。以下,说明CQL生成处理。图12B是说明在本实施方式中通过CQL生成部303执行的处理的流程图。CQL生成部303使用全局变量309来生成“$cql_input” (S381)。具体地说,执行 以下两种处理。首先,CQL生成部303使用全局变量309内包含的“$ input”来执行$ input分解处理385。S卩,CQL生成部303将“$input”分解为多个“$input_item”。该处理是从包含多个传感器名称的“$input”中获取各个传感器名称的处理。接着,CQL生成部 303 使用“$input_item”来执行 $cql_input 生成处理 386。CQL生成部303使用“$input_item”如$cql_input生成处理386的右边所示那样生成“$cql_input,,。CQL生成部303使用全局变量309来生成“$cql_select”(S382)。具体地说,执行以下两种处理。首先,CQL生成部303使用全局变量309内包含的“$select”来执行$select分解处理387。该处理是用于对$select内包含的要素进行分解的处理。CQL生成部303通过执行$select分解处理387来获取“$funcl”或者“$func2”以及“$label”。接着,CQL生成部303使用“$funcl”或者“$func2”以及“$label”来执行$cql_select生成处理388,生成“$cql_select”。在此“$funcl”是汇总函数,能够记载移动平均(avg)、分散、最大值、或者最小值等。在此,在CQL中,无法将avg等汇总函数与“Sensorl”等信号名进行混合来处理。因此,需要将“$select”内包含的要素使用IastO函数变换为汇总函数。例如,字符串“’ Sensorl’ as LABEL” 变换为 “last ( ‘Sensorl’ ) as LABEL” 和汇总函数。CQL生成部303使用全局变量309来生成“$cql_label ” (S383)。具体地说,CQL生成部303使用“$label”执行$cql_label生成处理389来生成“$cql_label ”。CQL 生成部 303 通过将在 S381 S383 中生成的“$cql_input”、“$cql_select”和“$cql_label”以及全局变量309内包含的“$range”和“$cond”代入到CQL模板380来生成 CQL 311(S384)。如上所述,数据搜索模块157能够根据所输入的查询155来同时生成SQL 310和CQL 311。以下,说明使用所生成的SQL 310和CQL 311的处理。图13是说明通过本实施方式的DB搜索部执行的SQL处理的一例的流程图。DB搜索部304使用全局变量309内包含的“$input”生成排列ΚΕΥ
KEY[$inum-l](S400)。具体地说,DB搜索部304使用“ $ input”来执行$signal提取处理407。由此,提取出的“$inum”个“$signal”。DB搜索部304将提取出的各“$signal”存储到排列ΚΕΥ
KEY[$inum_l]。通过上述处理来生成排列KEY[O] KEY[$inum_l]。DB搜索部304使用所生成的排列KEY[O] KEY[$inum_l]来生成哈希排列hash (S401)。DB搜索部304对数据库154发出SQL 310,数据库154执行SQL 310(S402)。由此,能够获取与发出的SQL 310中指定的条件一致的数据作为执行结果。DB搜索部304根据获取到的执行结果来取出一行量的数据,从取出的数据中获取日期和时间等时间(datetime)、传感器名称(Name)以及压缩数据(CDATA) (S403)。此外,取出的一行量的数据是一个传感器的一小时量的压缩数据。DB搜索部304判断根据执行结果来取出的一行量的数据是否为空(S404)。S卩,判断全部执行结果的处理是否结束。
在判断为根据执行结果来取出的一行量的数据为空的情况下,DB搜索部304结束处理。在判断为根据执行结果来取出的一行量的数据不是空的情况下,DB搜索部304生成数据结构1(340)示出的包(S405)。具体地说,DB搜索部304将取出的一行量的数据内包含的日期和时间等的时间(datetime)存储到datetime3401,将以传感器名称(Name)为关键字而从哈希排列hash得到的值存储到idx3402,将压缩数据(CDATA)存储到zblk3404,将压缩数据(CDATA)的大小存储到zlen3403。DB搜索部304将所生成的包输出到文件A312(S406),返回到S403,执行S403 S406的处理。例如在执行SQL示例I (352)的情况下,关于传感器名称为“ ’ Sensor I’ ”和“’ Sensor2’”的传感器 100,从“2009-02-01 23:00:00”至“2009-02-20 23:59:59”期间的数据被变换为多个数据结构1(340)的包,输出到文件A312。图14A和图14B是说明通过本实施方式的数据解压缩/排序处理部305执行的处理的一例的流程图。数据解压缩/排序处理部305定义data[3600] [$inum]排列、缓冲器排列以及blk排列(S450)。在本实施方式中,在一个压缩数据中针对一个传感器100存储了一小时量的数据、3600点,因此定义data[3600] [$inum]排列。数据解压缩/排序处理部305判断全局变量309内包含的「$snum」是否为“0”(S451)。由此,判断是否执行了流数据处理。即,如图8A的查询示例2(351)所示那样在查询155中没有包含selectjtems语句的情况下,“$snum ”为“0”,因此判断为不执行流数据处理。在判断为“$snum”并非“O”的情况下,数据解压缩/排序处理部305将输出处理结果的文件决定为文件B313 (S452),进入到S434。在判断为“$snum”为“O”的情况下,数据解压缩/排序处理部305将输出处理结果的文件决定为文件D315 (S453),进入到S434。数据解压缩/排序处理部305使data[3600] [$inum]排列和时间初始化(S454)。具体地说,数据解压缩/排序处理部305使用NaN (Not a Number)值使data [3600] [$inum]初始化,另外,将表示时间的变量Iastet初始化为“O”。在本实施方式中,在排列data的初始化时,使用了 NaN值,但是如果不与数值重复的值,则可以是任意值。数据解压缩/排序处理部305取出一个数据结构I (340)示出的包(S455)。具体地说,数据解压缩/排序处理部305从缓冲器取出包。在缓冲器中不存在包的情况下,从文件A312取出包。在初始处理时,在缓冲器中没有存储包,因此从文件A312取出包。数据解压缩/排序处理部305判断取出的包是否为空(S456)。S卩,判断在所取出的包中是否包含处理对象的数据。在判断为取出的包并非空的情况下,数据解压缩/排序处理部305从该包中提取数据(S457)。具体地说,数据解压缩/排序处理部305从包中提取datetime3401、idX3402、zlen3403 以及 zblk3404。数据解压缩/排序处理部305集中处理相同时间的时间序列数据块,因此判断取出的包是否为处理时间范围内的数据(S458)。具体地说,在Iastet中保持有前一次接收到
的包的datetime3401,因此通过将本次接收到的包(340)的datetime3401与Iastet进行比较,能够判断该包是否为作为处理时间的范围的一小时以内的包。在判断为取出的包为处理时间范围内的数据的情况下,数据解压缩/排序处理部305对压缩数据进行解压缩(S459)。具体地说,数据解压缩/排序处理部305对取出的包内包含的zblk3404进行解压缩,将该结果存储到blk。数据解压缩/排序处理部305将解压缩后的数据存储到排列data (S460),返回到S455而执行S455 S460的处理。具体地说,数据解压缩/排序处理部305将blk存储到排列data。另外,数据解压缩/排序处理部305将datetime3401存储到latest。在判断为在S456中取出的包为空的情况下或者判断为在S458中取出的包并非处理时间范围内的数据的情况下,数据解压缩/排序处理部305将取出的包回写到缓冲器(S461)。数据解压缩/排序处理部305对表示循环次数的变量i设定“0”,对包内的一小时量的各数据反复执行处理463、处理464(S462)。即,反复执行处理直到变量i变得大于“3600”。数据解压缩/排序处理部305生成输出结果(S463)。即,数据解压缩/排序处理部305生成数据结构2(341)示出的数据。具体地说,针对变量i,将latest+i存储到datetime3411,将“$inum”存储到valn3412,将排列data存储到数据3413。由此,得到对input_items语句指定的与传感器的一秒钟(一行)的数据对应的输出结果。因而,反复执行全部变量i的相同的处理,由此得到对inputjtems语句指定的传感器的一小时量的数据作为输出结果。数据解压缩/排序处理部305将所生成的输出结果输出到文件B313或者文件D315(S464)。数据解压缩/排序处理部305判断一小时量的包的处理是否结束(S465)。S卩,判断为变量i是否大于“3600”。在变量i小于“3600”的情况下,判断为一小时量的包的处理没有处理。在判断为全部变量i的处理没有结束的情况下、即变量i小于“3600”的情况下,数据解压缩/排序处理部305返回到S462而执行S462 S466的处理。
在判断为全部变量i的处理结束的情况下、即变量i大于“3600”的情况下,数据解压缩/排序处理部305判断存储在文件A312中的全部包的处理是否结束(S466)。在判断为存储在文件A312中的全部包的处理没有结束的情况下,数据解压缩/排序处理部305返回到S454而执行S454 S466的处理。在判断为存储在文件A312中的全部包的处理结束的情况下,数据解压缩/排序处理部305结束处理。图15是表示本实施方式中的流数据处理部306的结构示例的说明图。流数据处理部306具备输入控制部500、输入队列501、流数据处理引擎502、用户定义函数503、输出队列504以及输出控制部505。输入控制部500执行输入控制。具体地说,输入控制部500接收从文件B313输入的数据,将接收到的数据输出到输入队列501。输入队列501存储输入到输入控制部500的 数据。流数据处理引擎502从输入队列501中取出数据,根据CQL 311对取出的信息进行分析,将分析结果输出到输出队列504。用户定义函数503存储在CQL 311中使用的函数的运算方法的定义。此外,使用图16在后文中详细说明用户定义函数503。输出队列504存储从流数据处理引擎502输入的分析结果。输出控制部505执行输出控制。具体地说,输出控制部505从输出队列504读出分析结果,对文件C输出分析结果。在本实施方式中,首先存储在文件B313中的valn3412为“$inum”的数据、即存储了“$inum”个传感器100的值的数据从文件B313被输入到流数据处理部306。流数据处理部306根据CQL 311将执行处理得到的结果输出到文件C314。具体地说,在存储于该文件C314中的数据的valn3412中存储“$snum+l”,在数据3413中的val [O] val[$snum_l]中存储在查询155的select_items语句中指定的处理结果,在数据3413中的val[$snum]中存储针对在查询155的where_condition语句中指定的条件的处理结果。在此,当与在where_condition语句中指定的条件一致时,在val [$snum]中存储“I”。另外,当不与在where_condition语句中指定的条件一致时,在val [$snum]中存储“O”。对于存储在val[$snum]中的值,后文中说明的截出处理部307作为用于决定截出范围552 (参照图19)的标识而使用。在本实施方式中,对在select_items语句中指定的“$snum”个处理结果中附加一个where_condition语句的处理结果,因此在存储在文件C314中的数据的数据3413中包含“ $ snum+1 ” 个值。图16是表示本实施方式的用户定义函数503的一例的说明图。用户定义函数503包括识别编号5031、函数名称5032、动作说明5033以及备考5034。识别编号5031是用于唯一地识别用户定义函数503内包含的函数的标识符。函数名称5032是CQL 311内包含的函数的名称。动作说明5033是与函数名称5032对应的函数的运算内容。备考5034是与函数名称5032对应的函数的附加信息。
在图17示出的示例中,识别编号5031为“I” “7”的函数是“LABEL”和“num”提取满足动作说明5033示出的关系的数据的函数。识别编号5031为“8”和“9”是“LABEL”提取动作说明5033示出的规定区间内的数据的函数。识别编号5031为“10” “12”是执行动作说明5033示出的逻辑运算的函数。此外,在图8B 示出的 CQL 示例 1 (353)的 GraterThanOeEqualTo 函数中,“LABEL”为 “LI”,“num” 为 “70”。在 CQL 示例 1 (353)的 PositiveThreshold 函数中,“LABEL” 为“L3 ”,“numl ” 和 “num2 ” 为 “ 300 ” 和 “ 200 ”。以下,说明根据识别编号5031为“8”和“9”的函数来提取出的规定区间的数据。图17是表示通过本实施方式的用户定义函数503内包含的函数提取出的规定区间的数据的一例的说明图。PositiveThreshold的示例表示根据识别编号5031为“8”的函数提取出的规定区间的数据。如图17的动作说明5033所示,在PositiveThreshold中,提取出“LABEL”的值·变为“numl”以上而“LABEL”的值变得小于“num2”为止的区间的数据。NegativeThreshold的示例表示根据识别编号5031为“9”的函数提取出的规定区间的数据。如图17的动作说明5033所示,在NegativeThreshold中,提取出“LABEL”变为“numl”以下而“LABEL”变得大于“num2”为止的区间的数据。以下,说明由流数据处理部306执行的处理。图27是说明通过本实施方式的流数据处理部306执行的处理的一例的流程图。流数据处理部306读出CQL(S900),进而将变量running设定为“I” (S901)。接着,流数据处理部306启动输入控制线程和输出控制线程(S902、S903)。由此,输入控制部500和输出控制部505开始处理。使用图28在后文中说明通过输入控制部500执行的处理。另外,使用图29在后文中说明通过输出控制部505执行的处理。流数据处理部306判断输出队列504中是否存在可用空间(S904)。在判断为在输出队列504中不存在可用空间的情况下,流数据处理部306持续等待到在输出队列504中空出可用空间为止(S905)。在判断为在输出队列504存在可用空间的情况下,流数据处理部306判断在输入队列501中是否存储有数据(S906)。在判断为在输入队列501中存储了数据的情况下,流数据处理部306从输入队列501中获取数据(S907)。流数据处理部306根据CQL对获取到的数据进行处理(S908)。具体地说,流数据处理引擎502执行CQL。流数据处理部306将CQL的执行结果存储到输出队列504 (S909),返回到S904而执行相同的处理。在S906中判断为在输入队列501没有存储数据的情况下,流数据处理部306判断变量 runnning 是否为 “I”(S911)。在判断为变量runnning为“I”的情况下,流数据处理部306形成等待处理的等待状态(S910),返回到S906而执行相同的处理。在判断为变量runnning并非“I”的情况下,流数据处理部306判断在输出队列504中是否存储了数据(S912)。
在判断为在输出队列504中没有存储数据的情况下,流数据处理部306持续等待到在输出队列504中存储数据为止(S913)。在判断为在输出队列504中存储了数据的情况下,流数据处理部306使输入控制线程和输出控制线程停止(S914、S915),结束处理。由此,结束输入控制部500和输出控制部505的处理。图28是说明通过本实施方式的输入控制部500执行的处理的一例的流程图。当输入控制的处理开始时(S920),输入控制部500判断在输入队列501中是否存在可用空间(S922)。在判断为在输入队列501中不存在可用空间的情况下,输入控制部500持续等待到在输入队列501中空出可用空间为止(S921)。
在判断为在输入队列501中存在可用空间的情况下,输入控制部500判断在文件B313中是否存在数据(S923)。在判断为在文件B313中不存在数据的情况下,输入控制部500将变量runnning设定为“O” (S926),结束处理(S927)。在判断为在文件B313中存在数据的情况下,输入控制部500从文件B313中获取数据(S924),将获取到的数据存储到输入队列501 (S925),返回到S922而执行相同的处理。图29是说明通过本实施方式的输出控制部505执行的处理的一例的流程图。当开始输出控制的处理时(S930),输出控制部505判断在输出队列504中是否存在数据(S931)。在判断为在输出队列504中不存在数据的情况下,输出控制部505持续等待直到在输出队列504存储数据为止(S932)。在判断为在输出队列504中存在数据的情况下,输出控制部505从输出队列504中获取数据(S933),将获取到的数据存储到文件C314(S934)。输出控制部505之后返回到S931而执行相同的处理。图18A是说明通过本实施方式的截出处理部307执行的处理的一例的流程图。截出处理部307在流数据处理部306的处理结束之后开始处理。截出处理部307执行变量prev_cnt、变量post_cnt以及变量latest的初始化、FIFO缓冲器的生成和初始化、indata缓冲器的定义和初始化(S570)。具体地说,截出处理部307将变量prev_cnt和变量post_cnt初始化为“O”。另夕卜,截出处理部307将变量latest初始化为“$start-$oreV-l”。另外,截出处理部307生成($orev+l)级的FIFO缓冲器,将所生成的FIFO缓冲器初始化为“O”。此外,变量prev_cnt和变量post_Cnt是在后述的截出处理中使用的变量。截出处理部307从文件C314中读出一个数据,存储到indata(S571)。此外,在文件C314中存储多个select_items语句的运算结果、与一行对应的数据结构2(341)的数据。截出处理部307判断从文件C314中读出的数据是否为存储在文件C314中的终端数据(S572)。例如,读出的数据的datetime3411能够通过判断是否与全局变量309内包含的“$end”相同来实现。在判断为从文件C314中读出的数据并非存储在文件C314中的终端数据的情况下,截出处理部307使用indata内包含的datetime3411和变量latest来将变量diff设定为 “datetime-latest”(S573),进入到 S575。在判断为从文件C314中读出的数据为存储在文件C314中的终端数据的情况下,截出处理部307将变量diff设定为“$oreV+l”(S574),进入到S575。截出处理部307将设定为变量diff的值代入为变量i,反复执行处理直到变量i变得小于“O” (S575)。 截出处理部307判断变量i是否为“I” (S576)。在判断为变量i并非“I”的情况下,截出处理部307生成插入到FIFO缓冲器的伪数据(以下还记载为插入数据)(S577),进入到S580。具体地说,生成数据结构2(341)示出的插入数据。在该情况下,在插入数据的datetime3411中设定“ latest+1 ”,在valn3412中设定“$snum+l ”。另外,在插入数据的数据3413中的val
[$snum_l]中设定表示空数据的值(NaN),在val [$ snum]中设定“O”。在判断为变量i为“I”的情况下,截出处理部307判断从文件C314中读出的数据(indata)是否为存储在文件C314的终端数据(S578)。该判断使用与S572相同的方法。在判断为从文件C314中读出的数据(indata)为存储在文件C314中的终端数据的情况下,截出处理部307结束处理。在判断为从文件C314中读出的数据(indata)并非存储在文件C314中的终端数据的情况下,截出处理部307生成输入数据(S579),进入到S580。具体地说,截出处理部307将存储到indata的值设定到输入数据。截出处理部307使用输入数据来执行截出处理(S580)。使用图18B在后文中详细说明截出处理。截出处理部307判断是否反复执行处理(S581、S575)。S卩,截出处理部307判断是否持续执行S575的for字符循环。具体地说,使变量i递减,判断为是否为“i > O”。在判断结果为真的情况下,判断为反复执行处理。在判断为反复执行处理的情况下,截出处理部307返回到S575而执行相同的处理(S575 S581)。在判断为不需要反复执行处理的情况下,截出处理部307返回到S571而执行相同的处理(S571 S581)。图18B是说明本实施方式的截出处理的详细的流程图。截出处理部307将插入数据的datetime设定到变量latest (S582)。截出处理部307将一个插入数据输入到FIFO缓冲器,并且从FIFO缓冲器输出一个数据(S583)。以下,还将从FIFO缓冲器输出的数据记载为输出数据。截出处理部307判断所输入的插入数据的val [$snum]是否为“I”(S584)。在判断为所输入的插入数据的val [$snum]并非“I”的情况下,截出处理部307进入到S586。在判断为所输入的插入数据的val [$snum]为“I”的情况下,截出处理部307将变量prev_cnt的值相加到“I”(S585),进入到S586。截出处理部307判断为所输出的输出数据的val [$snum]是否为“I”(S586)。在判断为所输出的输出数据的val [$snum]并非“I”的情况下,截出处理部307进入到S588。在判断为所输出的输出数据的val [$snum]为“I”的情况下,截出处理部307将变量prev_cnt的值递减至“I”(S587),进入到S588。截出处理部307根据变量prev_cnt、变量post_cnt以及所输入的插入数据的val[$snum]的值,执行截出条件判断处理(S588)。具体地说,执行以下示出的判断处理。在S588中,截出处理部307执行三个判断处理。第一,截出处理部307判断变量prevent的值是否大于“O”。以下,将该判断记载为截出条件(I)。第二,截出处理部307判断所输出的输出数据的val [$snum]的值是否为“I”。以下,将该判断记载为截出条件(2)。
第三,截出处理部307判断变量post_Cnt的值是否大于“O”。以下,将该判断记载为截出条件(3)。截出处理部307根据截出条件判断处理的执行结果,判断是否满足截出条件(I)、
(2)或者(3)中的至少一个(S589)。在判断为没有满足截出条件(I)、(2)或者(3)中的某一个的情况下,截出处理部307结束截出处理S580的处理,进入到S581。在判断为满足截出条件(I)、(2)或者(3)中的某一个的情况下,截出处理部307根据截出条件判断处理的执行结果,判断是否满足截出条件(I)或者(2)中的任一个(S590)。在判断为满足截出条件(I)或者(2)中的某一个的情况下,截出处理部307将“$post”的值设定为变量post_cnt (S591),进入到S593。在判断为没有满足截出条件(I)或者(2)中的某一个的情况下,截出处理部307将变量post_cnt递减“ I ” (S592),进入到S593。截出处理部307将fout数据输出到文件D315 (S593),结束截出处理S580的处理,进入到S581。通过该处理,仅满足截出条件的部分被输出到文件D315。此外,在文件D315中存储包含满足在查询155的where_condition语句中指定的条件的数据的附加了前后偏离的
输出结果。具体地说,截出处理部307在S588、S589中将表示满足截出条件(I)的情况的标识、表示满足截出条件(2)的情况的标识以及表示满足截出条件(3)的情况的标识附加到各插入数据。进而,截出处理部307根据该标识来进行各截出条件的判断。以下,说明通过由该截出处理部307执行的处理输出的输出结果。图19是表示通过本实施方式的截出处理部307输出的输出结果的一例的说明图。在输入了查询示例3 (550)的情况下,截出处理部307输出输出结果551示出的结果O具体地说,输出在where_condi t ion语句中LABEL为“ LI ”的Sensor I的值为“ 100 ”以上的条件成立范围554、包含前方偏离553和后方偏离555的截出范围552或者条件成立范围554、包含前方偏离553、后方偏离555、结合偏离556的截出范围552。S卩,截出范围552不出的范围的数据被截出,作为输出结果而输出。
此外,结合偏离556将前方偏离553与后方偏离555相重叠的部分作为一个偏离而结合。该输出结果是根据在图18的S589中附加的标识来生成的结果。即,附加了截出条件(I) (3)中的任一个的标识的插入数据与截出范围552输出。具体地说,具有以下的结构。附加了截出条件(2)的标识的插入数据作为截出范围552内的条件成立范围554内包含的数据而输出。附加了截出条件⑴的标识的插入数据作为截出范围552内的前方偏离553内包含的数据而输出。附加了截出条件(3)的标识的插入数据作为截出范围552内的后方偏离555内包 含的数据而输出。截出处理部307截出与各个截出条件(I) (3) —致的插入数据,将截出的数据按时间顺序进行排序(整理)而输出。此外,附加了两个以上截出条件⑴ (3)中的任一个标识的插入数据作为包含结合偏离556的截出范围552而输出。图20是说明通过本发明的实施方式的数据输出部308执行的处理的一例的流程图。数据输出部308定义tmp缓冲器(S605)。数据输出部308从文件D315中读出数据,将读出的数据存储到tmp (S600)。读出的数据是selectjtems语句的运算结果、与一行对应的数据结构2 (341)示出的数据。数据输出部308参照读出的数据的datetime3411,执行搜索结果提取处理(Seoi)0具体地说,执行以下两个处理。第一,数据输出部308判断存储在datetime3411中的值是否为在查询155的where_timerange语句中指定的时间范围内包含。S卩,判断存储在datetime3411的值是否为“$start”以上且“$end”以下。以下,将该判断记载为输出条件(I)。执行是否满足输出条件(I)的判断处理的理由在于,通过SQL 310搜索的范围的数据的对象为比在查询155中指定的时间范围大的范围的数据。即,这是由于,如图IlB中说明那样,在使用SQL 310时使用的“$db_start”(参照图11B)还对比“$start”提前时间的数据进行处理。第二,数据输出部308执行间拔处理。具体地说,判断将存储在datetime3411中的值除以在查询155的st印语句中指定的值、S卩“$st印”得到的剩余值是否成为“O”。以下,将该判断记载为输出条件(2)。在查询示例1 (350)示出的示例中,根据输出条件(2),输出每五秒钟的数据。数据输出部308根据在S601中的搜索结果提取处理的结果,判断是否满足输出条件(I)和输出条件(2) (S602)。在判断为不能同时满足输出条件(I)和输出条件(2)这两个判断的情况下,数据输出部308进入到S604。即,不输出该数据。在判断为满足输出条件(I)和输出条件(2)的情况下,数据输出部308执行搜索结果生成处理(S603)。具体地说,数据输出部308将存储在tmp中的数据变换为数据结构3(342)示出的csv形式而输出到搜索结果文件156。数据输出部308判断对存储在文件D315中的全部数据进行的处理是否完成(S604)。在本实施方式中,在数据库搜索处理中搜索压缩成一小时单位后的压缩数据,在数据解压缩/排序处理中对压缩成一小时单位后的压缩数据进行解压缩而生成一秒钟单位的数据,以后,在流数据处理、截出处理、输出数据生成处理中执行一秒钟单位的数据的处理。此外,在输出数据生成处理中,以一秒钟单位来处理数据,但是以通过$step指定的单位输出数据。由此,在工厂设备102中产生异常的情况下,不使该异常的搜索精度下降而能够高速地进行搜索,另外,能够输出用于确定异常产生的原因的数据范围。图21是表示在本实施方式中执行特征值搜索处理的情况下的查询155和SQL 310的一例的说明图。 在执行特征值搜索处理的情况下,对查询155追加meta_search语句这一点不同。由此,能够使用在DAT表208内包含的MaxVal列2084和MaxVal列2085进行搜索。如图21所示那样,在查询示例4(700)中,MaxVal列2084的值大于“100”的数据成为搜索的对象。数据搜索模块157在接收到包含meta_search语句的查询155的情况下,特征值搜索用SQL生成部302生成图21示出的SQL示例4_1 (701),在执行SQL示例4_1 (701)之后,生成SQL示例4-2 (702)。SQL示例4-1(701)是时间截出用SQL,是用于提取出与特征值一致的数据的时间(datetime)的 SQL。SQL示例4-2(702)是特征值搜索用SQL,是在通过SQL示例4_1 (701)提取出的datetime的范围中用于执行数据库154的搜索的SQL。SQL示例4-2(702)是与SQL示例I (352)相同的SQL 310,但是与SQL示例I (352)相比,在SQL示例4-2(702)中通过执行SQL示例4_1 (701)而限定搜索范围,因此能够大幅缩短搜索处理的时间。例如,在预知异常值的情况下,使用该异常值执行搜索处理,由此与进行全部搜索的情况相比能够缩小要搜索的数据的范围,因此能够缩短处理时间。另外,在图21的查询不例4中,用户不一定指定meta_serach语句。通常在阈值判断中,超过某一阈值的时间序列数据包含在最大值超过该阈值的包集合中。另外,同样地,低于某一阈值的时间序列数据包含在最小值低于该阈值的包集合中。通过对这种查询变换规则进行管理,能够自动生成meta_search语句。具体地说,在图21的查询示例4中,where_condition语句中指定了 greaterthan语句和阈值的情况下,在meta_seatch语句中作为最大值超过阈值的语句自动附加MaxVal >阈值。另外,在where_condition语句中指定了 Iessthan语句和阈值的情况下,在meta_seatch语句中作为最大值超过阈值的语句而自动附加MaxVal <阈值。这种查询变换规则可以在系统中预先登记,也可以是用户以后能够进行登记。图22是表示在本实施方式中用于生成特征值搜索用的SQL 310的SQL模板的说明图。
特征值搜索用SQL生成部302保持时间截出用SQL模板710和特征值搜索用SQL模板711。时间截出用SQL模板710是在执行特征值搜索的情况下用于生成SQL 310的模板,是用于提取包含与特征值一致的数据的压缩数据的时间的SQL。具体地说,示出根据规定条件,从对ID列2072与ID列2082为相同的SID表207与DAT表208进行组合而得到的表中搜索时间(datetime)的SQL的情况。将规定条件定义为where语句以下。即,定义按照时间顺序对数据进行排序而提取出与所指定的传感器名称、所指定的特征值以及所指定的时间区间一致的数据。特征值搜索用SQL模板711在执行特征值搜索的情况下用于生成SQL 310的模板,是在通过使用时间截出用SQL模板710生成的SQL来提取出的时间范围中用于搜索压 缩数据的SQL。在图22示出的示例中,示出根据规定条件,从对ID列2072与ID列2082为相同的SID表207与DAT表208进行组合得到的表中来搜索时间(datetime)、传感器名称(SID.Name)以及压缩数据(DAT. CDATA)的SQL的情况。将规定条件定义为where语句以下。即,定义按照时间顺序对数据进行排序而获取与所指定的传感器名称和所指定的时间区间一致的数据。图23是说明通过本实施方式的特征值搜索用SQL生成部302执行的处理的一例的流程图。特征值搜索用SQL生成部302使用全局变量309生成“$meta_signal ”和“$meta_cond” (S720)。具体地说,特征值搜索用SQL生成部302使用在全局变量309内包含的“$meta”来执行$meta分解处理730。即,特征值搜索用SQL生成部302将“$meta”分解为“$meta_signal ” 和 “$meta_cond,,。特征值搜索用SQL生成部302定义工件用的变量$dt_tmp (S7201)。特征值搜索用SQL生成部302生成时间截出用SQL(S721)。具体地说,首先,特征值搜索用SQL生成部302设定为“$meta_start” =“$start”,进而,将分钟和秒钟单位的值初始化为“O”。另外,特征值搜索用SQL生成部302设定为“$meta_end” = “$end”。接着,特征值搜索用SQL生成部302将“$meta_signal ”、“$meta_cond”、“$meta_start”以及“$meta_end”代入到时间截出用SQL模板710,生成时间截出用SQL。特征值搜索用SQL生成部302对数据库154发出时间截出用SQL(S722)。特征值搜索用SQL生成部302从执行了时间截出用SQL的数据库154中获取执行结果,存储到$dt_tmp (S723)。具体地说,获取与在时间截出用SQL中指定的条件一致的时间数据作为执行结果,存储到$dt_tmp。特征值搜索用SQL生成部302判断存储在$dt_tmp中的一行量的数据是否为Null (S724)。即,判断全部执行结果的处理是否结束。在判断为存储在$dt_tmp中的一行量的数据为Null的情况下,特征值搜索用SQL生成部302作为$db_input = $input生成$db_input,进而,生成特征值搜索用SQL(S725),结束处理。具体地说,特征值搜索用SQL生成部302在特征值搜索用SQL模板711中代入“$db_input”和“$db_dtset”来生成特征值搜索用SQL。
在判断为存储在$dt_tmp中的一行量的数据并非Null的情况下,特征值搜索用SQL生成部302算出存储了时间$dt_tmp的传感器数据的、时间序列数据块的开始时间以及结束时间、即 “$db_start” 和 “$db_ebd” (S726)。具体地说,对于“$db_start”,特征值搜索用SQL生成部302计算“$db_start=$dt_tmp-$range”,进而,将该计算结果的量和秒钟单位的值初始化为“O”。另外,关于“$db_ebd”,存储计算“$db_ebd = $db_start+3599”值。相加“3599”的理由在于,在本实施方式中以一小时单位来压缩数据而存储到数据库。特征值搜索用SQL生成部302使用在S726中算出的“$db_start”和“$db_ebd”,生成“$db_dtset”(S727),返回到S723执行相同的处理。具体地说,特征值搜索用SQL生成部 302 使用 “$db_start” 和 “$db_ebd”,执行 $db_dtset 生成处理。图24是说明在本实施方式中并行执行通过数据搜索模块157执行的处理的情况的流程图。
CPU 121具备多个芯,如图10所示,还能够与执行DB搜索3204同时地在各工艺I 4中执行每个处理。S3200 S3202是与图9的S320 S323和S327相同的处理,因此省略说明。在数据搜索模块157中,启动工艺I 4(S3203),通过各工艺执行每个处理(S3204 S3208)。具体地说,在工艺I中执行数据解压缩/排序处理,在工艺2中执行流数据处理,在工艺3中执行截出处理,另外,在工艺4中执行输出数据生成处理。由此,能够不将各处理的结果输出到文件A312 文件D315,而是通过将一个工艺的输出结果传送到其它工艺来高速地进行处理。根据本实施方式,将时间序列数据压缩成规定时间单位的压缩数据存储到数据库,由此能够缩减存储在数据库中的数据量。另外,通过接收一个查询,能够生成用于搜索压缩数据的SQL以及对解压缩后的数据进行处理的CQL。进而,通过输出满足在CQL中指定的条件的范围以及与该范围的前后区间一致的截出范围,不仅是产生异常的部位,还能够输出产生异常前后的时间序列数据,用于确定异常部位和异常原因的追踪变得容易。由此,抑制中心服务器104的盘容量增加,并且对工厂设备中的异常原因的分析变得容易。进而,与特征值一起将压缩数据存储到数据库154,使用该特征值来执行搜索,由此能够缩减处理时间。以上,参照附图详细说明了本发明,但是本发明并不限定于这种具体的结构,包含所添加的权利要求的范围的宗旨内的各种变更和同等结构。产业上的可利用件本发明能够应用于处理庞大的数据的工厂、工厂设备中的设备等的预防维护。
权利要求
1.一种数据库管理方法,用于计算机中,该计算机具备处理器以及与上述处理器相连接的存储器,并管理数据库,该数据库管理方法的特征在于, 上述数据库存储根据规定条件而被压缩了的多个压缩数据, 上述数据库管理方法包括如下步骤 第一步骤,在从与上述计算机相连接的客户端计算机接收到向上述数据库的查询的情况下,上述计算机对接收到的上述查询进行分析; 第二步骤,上述计算机根据接收到的上述查询的分析结果,生成用于从上述数据库搜索一个以上的上述压缩数据的第一询问; 第三步骤,上述计算机根据接收到的上述查询的分析结果,生成第二询问,该第二询问用于对从作为上述第一询问的响应结果的、上述一个以上的压缩数据获取到的多个时间序列数据执行搜索; 第四步骤,上述计算机对上述数据库发出上述第一询问,从上述数据库获取一个以上的上述压缩数据作为上述第一询问的响应结果; 第五步骤,上述计算机对作为针对上述第一询问的响应结果而获取到的一个以上的压缩数据进行解压缩,由此获取上述多个时间序列数据; 第六步骤,上述计算机对上述获取到的多个时间序列数据执行上述第二询问; 第七步骤,上述计算机根据针对上述第二询问的响应结果,从上述获取到的多个时间序列数据中提取规定数据;以及 第八步骤,上述计算机从在上述第七步骤中提取出的规定数据中提取用于输出到上述客户端计算机的数据,生成输出结果。
2.根据权利要求I所述的数据库管理方法,其特征在于, 上述压缩数据是上述多个时间序列数据被压缩成规定时间单位而得到的压缩数据,上述第二询问是用于从上述多个时间序列数据中搜索满足规定的阈值条件的第一数据范围的询问, 在上述第六步骤中,上述计算机对在上述第一数据范围内包含的上述时间序列数据附加标识, 在上述第七步骤中,上述计算机根据对上述时间序列数据附加的标识,提取包含上述第一数据范围的第二数据范围。
3.根据权利要求2所述的数据库管理方法,其特征在于, 上述第二数据范围包括 第三数据范围,提取上述第一数据范围的从时间最早的上述时间序列数据追溯了第一时间的范围内包含的上述时间序列数据;以及 第四数据范围,提取上述第一数据范围的从时间最新的上述时间序列数据前进了第二时间的范围内包含的上述时间序列数据。
4.根据权利要求2所述的数据库管理方法,其特征在于, 上述第八步骤包括提取上述第二数据范围内包含的时间序列数据中的、规定时间间隔的上述时间序列数据的步骤。
5.根据权利要求I所述的数据库管理方法,其特征在于, 上述数据库存储附加了成为搜索关键字的特征信息的上述压缩数据,上述第一询问包括上述特征信息, 上述第一询问是用于搜索附加了与该第一询问内包含的特征信息一致的上述特征信息的上述压缩数据的询问。
6.根据权利要求5所述的数据库管理方法,其特征在于, 上述特征信息是上述压缩数据被压缩之前的多个时间序列数据中的最大值、最小值、平均值、方差值以及频谱上的特定点中的至少一个。
7.根据权利要求I所述的数据库管理方法,其特征在于, 上述第一询问是用于从上述数据库中搜索上述压缩数据的SQL, 上述第二询问是用于从上述时间序列数据中提取规定数据的CQL。
8.—种管理数据库的计算机,具备处理器以及与上述处理器相连接的存储器,该计算机的特征在于, 上述数据库存储根据规定条件而被压缩了的多个压缩数据, 上述计算机进行以下动作 在从与上述计算机相连接的客户端计算机接收到向上述数据库的查询的情况下,对接收到的上述查询进行分析; 根据接收到的上述查询的分析结果,生成用于从上述数据库搜索一个以上的上述压缩数据的第一询问; 根据接收到的上述查询的分析结果,生成第二询问,该第二询问用于对从作为上述第一询问的响应结果的、上述一个以上的压缩数据获取到的多个时间序列数据执行搜索; 对上述数据库发出上述第一询问,从上述数据库中获取一个以上的上述压缩数据作为上述第一询问的响应结果; 对作为针对上述第一询问的响应结果而获取到的一个以上的压缩数据进行解压缩,由此获取上述多个时间序列数据; 对上述获取到的多个时间序列数据执行上述第二询问; 根据针对上述第二询问的响应结果,从上述获取到的多个时间序列数据中提取规定数据;以及 从上述提取出的规定数据中提取用于输出到上述客户端计算机的数据,生成输出结果O
9.根据权利要求8所述的计算机,其特征在于, 上述压缩数据是上述多个时间序列数据被压缩成规定时间单位的压缩数据, 上述第二询问是用于从上述多个时间序列数据中搜索满足规定的阈值条件的第一数据范围的询问, 上述计算机进行以下动作 在对上述获取到的多个时间序列数据执行上述第二询问的情况下,对在上述第一数据范围内包含的上述时间序列数据附加标识;以及 在根据针对上述第二询问的响应结果从上述获取到的多个时间序列数据中提取规定数据的情况下,根据对上述时间序列数据附加的标识,提取包含上述第一数据范围的第二数据范围。
10.根据权利要求9所述的计算机,其特征在于,上述第二数据范围包括 第三数据范围,提取上述第一数据范围的从时间最早的上述时间序列数据追溯了第一时间的范围内包含的上述时间序列数据;以及 第四数据范围,提取上述第一数据范围的从时间最新的上述时间序列数据前进了第二时间的范围内包含的上述时间序列数据。
11.根据权利要求8所述的计算机,其特征在于, 上述数据库存储附加了成为搜索关键字的特征信息的上述压缩数据, 上述第一询问包括上述特征信息, 上述第一询问是用于搜索附加了与该第一询问内包含的特征信息一致的上述特征信息的上述压缩数据的询问。
12.根据权利要求11所述的计算机,其特征在于, 上述特征信息是对上述压缩数据进行压缩之前的多个时间序列数据中的最大值、最小值、平均值以及方差值中的至少一个。
13.根据权利要求8所述的计算机,其特征在于, 上述第一询问是用于从上述数据库搜索上述压缩数据的SQL, 上述第二询问是用于从上述时间序列数据提取规定数据的CQL。
14.一种传感器网络系统,具备传感器,其对观测对象的物理量进行测量;计算机,其收集由上述传感器测量得到的上述物理量作为时间序列数据;以及管理服务器,其将上述时间序列数据从上述第一计算机存储到数据库, 上述计算机具备第一处理器以及与上述第一处理器相连接的第一存储器, 上述管理服务器具备第二处理器以及与上述第二处理器相连接的第二存储器, 上述计算机与上述管理服务器通过网络进行连接, 上述数据库存储根据规定条件对上述时间序列数据进行压缩后的多个压缩数据, 上述管理服务器进行以下动作 在从通过上述网络与上述管理服务器相连接的客户端计算机接收到向上述数据库的查询的情况下,对接收到的上述查询进行分析; 根据接收到的上述查询的分析结果,生成用于从上述数据库搜索一个以上的上述压缩数据的第一询问; 根据接收到的上述查询的分析结果,生成第二询问,该第二询问用于对从作为上述第一询问的响应结果的、上述一个以上的压缩数据获取到的多个时间序列数据执行搜索;对上述数据库发出上述第一询问,从上述数据库中获取一个以上的上述压缩数据作为上述第一询问的响应结果; 对作为针对上述第一询问的响应结果而获取到的一个以上的压缩数据进行解压缩,由此获取上述多个时间序列数据; 对上述获取到的多个时间序列数据执行上述第二询问; 根据针对上述第二询问的响应结果,从上述获取到的多个时间序列数据中提取规定数据;以及 从上述提取出的规定数据中提取用于输出到上述客户端计算机的数据,生成输出结果O
15.根据权利要求14所述的传感器网络系统,其特征在于, 上述压缩数据是上述多个时间序列数据被压缩成规定时间单位得到的压缩数据,上述第二询问是用于从上述多个时间序列数据中搜索满足规定的阈值条件的第一数据范围的询问, 上述管理服务器进行以下动作 在对上述获取到的多个时间序列数据执行上述第二询问的情况下,对在上述第一数据范围内包含的上述时间序列数据附加标识;以及 在根据对于上述第二询问的响应结果从上述获取到的多个时间序列数据中提取规定数据的情况下,根据对上述时间序列数据附加的标识,提取包含上述第一数据范围的第二数据范围。
16.根据权利要求15所述的传感器网络系统,其特征在于, 上述第二数据范围包括 第三数据范围,提取上述第一数据范围的从时间最早的上述时间序列数据追溯了第一时间的范围内包含的上述时间序列数据;以及 第四数据范围,提取上述第一数据范围的从时间最新的上述时间序列数据前进了第二时间的范围内包含的上述时间序列数据。
17.根据权利要求14所述的传感器网络系统,其特征在于, 上述数据库存储附加了成为搜索关键字的特征信息的上述压缩数据, 上述第一询问包括上述特征信息, 上述第一询问是用于搜索附加了与该第一询问内包含的特征信息一致的上述特征信息的上述压缩数据的询问。
18.根据权利要求17所述的传感器网络系统,其特征在于, 上述特征信息是对上述压缩数据进行压缩之前的多个时间序列数据中的最大值、最小值、平均值或者方差值中的至少一个。
19.根据权利要求14所述的传感器网络系统,其特征在于, 上述第一询问是用于从上述数据库中搜索上述压缩数据的SQL, 上述第二询问是用于从上述时间序列数据中提取规定数据的CQL。
20.一种数据库搜索程序,用于计算机中,该计算机具备处理器以及与上述处理器相连接的存储器,并管理数据库,该数据库搜索程序的特征在于, 上述数据库存储根据规定条件压缩得到的多个压缩数据, 上述程序使上述计算机执行以下进程 在从与上述计算机相连接的客户端计算机接收到向上述数据库的查询的情况下,对接收到的上述查询进行分析; 根据接收到的上述查询的分析结果,生成用于从上述数据库中搜索一个以上的上述压缩数据的第一询问; 根据接收到的上述查询的分析结果,生成第二询问,该第二询问用于对从作为上述第一询问的响应结果的、上述一个以上的压缩数据获取到的多个时间序列数据执行搜索; 对上述数据库发出上述第一询问,从上述数据库中响应结果获取一个以上的上述压缩数据作为上述第一询问的响应结果;对作为针对上述第一询问的响应结果而获取到的上述一个以上的压缩数据进行解压缩,由此获取上述多个时间序列数据; 对上述获取到的多个时间序列数据执行上述第二询问; 根据针对上述第二询问的响应结果,从上述获取到的多个时间序列数据中提取规定数据;以及 从上述提取出的规定数据中提取用于输出到上述客户端计算机的数据,生成输出结果O
21.—种时间序列数据管理方法,其特征在于,具有 时间序列数据存储单元,其通过对时间序列数据进行时间序列处理来生成特征量,将时间序列划分为时间序列块,将该特征量作为成为搜索关键字的元信息与时间序列块一起存储到时间序列存储装置; 生成第一询问和第二询问的单元,其中,该第一询问根据来自用户的询问将该特征量作为搜索关键字来搜索时间序列块,该第二询问搜索时间序列块内的时间序列; 第一搜索单元,其利用第一询问来搜索该时间序列块;以及 第二搜索单元,其基于第二询问依次对得到的时间序列块进行时间序列处理而搜索时间序列,输出询问结果。
22.根据权利要求21所述的时间序列数据管理方法,其特征在于, 通过统计处理来生成使用者的使用最多的搜索期间来得到上述时间序列块的划分范围。
23.根据权利要求21所述的时间序列数据管理方法,其特征在于, 通过统计处理来生成引起时间序列的特征变化的最小期间从而得到上述时间序列块的划分范围。
24.根据权利要求21所述的时间序列数据管理方法,其特征在于, 在上述时间序列数据存储单元中具备压缩时间序列块的单元,在上述第二搜索单元中具备释放压缩后的时间序列块的单元。
25.根据权利要求21所述的时间序列数据管理方法,其特征在于, 在判断为来自上述用户的询问为阈值超过或不足阈值判定的情况下,通过在上述第一搜索单元中判断是最大值或最小值的超过判断或者不足判断,对时间序列块进行收窄。
26.一种计算机,其特征在于,具有 时间序列数据存储单元,其通过对时间序列数据进行时间序列处理来生成特征量,将时间序列划分为时间序列块,将该特征量作为成为搜索关键字的元信息与时间序列块一起存储到时间序列存储装置; 生成第一询问和第二询问的单元,其中,该第一询问根据来自用户的询问将该特征量作为搜索关键字来搜索时间序列块,该第二询问搜索时间序列块内的时间序列; 第一搜索单元,其根据第一询问来搜索该时间序列块;以及 第二搜索单元,其根据第二询问来依次对得到的时间序列块进行时间序列处理而搜索时间序列,输出询问结果。
27.根据权利要求26所述的计算机,其特征在于, 具备流数据处理引擎,该流数据处理引擎将实时地到来的时间序列数据存储到规定期间存储器上,通过进行时间序列分析来生成上述特征量。
28.根据权利要求26所述的计算机,其特征在于, 在上述第二搜索单元中,具备进行移动平均、区间提取、间拔处理中的至少一个流数据处理引擎。
全文摘要
本发明提供一种数据库管理方法、计算机、传感器网络系统以及数据库搜索程序。本发明的目的在于,在工厂设备等处理多个传感器信息的系统中,缩减存储在数据库中的数据量,易于进行用于确定异常部位和异常原因的追踪。本发明的数据库管理方法,用于计算机中,并管理数据库,在接收到查询的情况下,计算机包括以下步骤分析查询;根据查询的分析结果,生成用于搜索压缩数据的第一询问;生成用于对时间序列数据执行搜索的第二询问;根据针对第二询问的响应结果,从获取到的多个时间序列数据中提取规定数据;从提取出的规定数据中提取用于输出到客户端计算机的数据,生成输出结果。
文档编号G06F17/30GK102792282SQ20108006532
公开日2012年11月21日 申请日期2010年7月22日 优先权日2010年4月9日
发明者中野定树, 室启朗, 藤原真二 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1