一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据库数据存储方法、装置、电子设备及存储介质与流程

2022-06-29 17:31:14 来源:中国专利 TAG:


1.本发明涉及数据传输技术领域,尤其涉及一种数据库数据存储方法、装置、电子设备及存储介质。


背景技术:

2.工业互联中,设备测点时序数据的存储,多采用时序数据库和hbase数据库进行存储,由于hbase数据库中存储的底层数据只能通过二进制的形式来存储,因此,在接入到其它数据类型的数据时,都会将其转换为二进制的形式,再存储到hbase数据库中,而将数据转换为二进制的过程中,就会使数据失去原有的数据类型的表达形式,若要从hbase数据库中查询数据,往往无法得知查询到的数据原来具有的数据类型,后期应用便无法区分从hbase数据库中获取的数据的数据类型。


技术实现要素:

3.为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供了一种数据库数据存储方法、装置、电子设备以及存储介质。
4.第一方面,本发明提供了一种数据库数据存储方法,所述方法包括:
5.获取目标设备发送的测点数据,所述测点数据至少包括存储位置参数、测点值和存储模式标识;
6.根据所述存储模式标识和所述存储位置参数确定数据库中的目标行与目标列;
7.根据所述目标行和所述目标列确定目标存储位置;
8.将所述测点值以及所述测点值的数据类型按照所述存储模式标识对应的存储模式存储到所述目标存储位置。
9.在本发明的可选实施方式中,所述存储位置参数包括设备标识、测点标识与采集所述测点值的时间戳;
10.所述根据所述存储模式标识和所述存储位置参数确定数据库中的目标行与目标列,包括:
11.若所述存储模式标识为第一标识,判断是否存在以所述设备标识与时间戳为行键的行;
12.若存在以所述设备标识与时间戳为行键的行,将所述设备标识与时间戳为行键的行确定为目标行;
13.若不存在以所述设备标识与时间戳为行键的行,新建以所述设备标识与时间戳为行键的行,并将新建的行作为所述目标行;
14.根据所述测点标识和所述目标行确定数据库中的目标列。
15.在本发明的可选实施方式中,所述根据所述测点标识确定数据库中的目标列,包括:
16.判断所述目标行下是否存在所述测点标识对应的列;
17.若所述目标行下存在所述测点标识对应的列,将所述测点标识对应的列确定为目标列;
18.若所述目标行下不存在所述测点标识对应的列,在所述目标行下新建与所述测点标识对应的列,并将新建的与所述测点标识对应的列确定为所述目标列。
19.在本发明的可选实施方式中,所述存储位置参数包括设备标识、测点标识与采集所述测点值的时间戳;
20.所述根据所述存储模式标识和所述存储位置参数确定数据库中的目标行与目标列,包括:
21.若所述存储模式标识为第二标识,根据所述时间戳与预设时间范围的时间长度确定所述时间戳所处的目标时间范围;
22.判断是否存在以所述设备标识、测点标识以及所述目标时间范围为行键的行;
23.若存在以所述设备标识、测点标识以及所述目标时间范围为行键的行,将以所述设备标识、测点标识以及所述目标时间范围为行键的行确定为目标行;
24.若不存在以所述设备标识、测点标识以及所述目标时间范围为行键的行,新建以所述设备标识、测点标识以及所述目标时间范围为行键的行,并将新建的行作为所述目标行;
25.根据所述时间戳和所述目标事件范围从预先建立的列中确定目标列。
26.在本发明的可选实施方式中,所述预先建立列的过程包括:
27.确定所述预设时间范围的时间长度中包含的预设单位时间长度的第一目标数量;
28.建立与所述第一目标数量对等的列以及用于存储数据类型的列;
29.对于建立的与所述第一目标数量对等的列,将预设初始值的连续自然数作为列的列名,其中每个自然数对应一个列。
30.在本发明的可选实施方式中,所述目标列包括第一目标列和第二目标列,所述根据所述时间戳从预先建立的列中确定目标列,包括:
31.确定所述目标时间范围的起始时刻到所述时间戳对应的时刻之间,包含的预设单位时间长度的第二目标数量;
32.将以所述第二目标数量对应的自然数为列名的列确定为第一目标列;
33.将所述用于存储数据类型的列确定为第二目标列。
34.在本发明的可选实施方式中,所述将所述测点值以及所述测点值的数据类型按照所述存储模式标识对应的存储模式存储到所述目标存储位置,包括:
35.若所述存储模式标识为第一标识,确定所述测点值的数据类型对应的数据类型标识;
36.将所述测点值和所述数据类型标识组成所述测点数据的键值对;
37.将所述键值对存储到所述目标存储位置的存储空间中。
38.在本发明的可选实施方式中,所述目标存储位置包括所述目标行与所述第一目标列指向的第一目标存储位置和所述目标行与所述第二目标列指向的第二目标存储位置;
39.所述将所述测点值以及所述测点值的数据类型按照所述存储模式标识对应的存储模式存储到所述目标存储位置,包括:
40.若所述存储模式标识为第二标识,确定所述测点值的数据类型对应的数据类型标
识;
41.将所述测点值存储到所述第一目标存储位置的存储空间中;
42.将所述数据类型标识存储到所述第二目标存储位置的存储空间中。
43.在本发明的可选实施方式中,所述将所述数据类型标识存储到所述第二目标存储位置的存储空间中,包括:
44.若所述第二目标存储位置的存储空间为空,将所述数据类型标识存储至所述第二目标存储位置的存储空间;
45.若所述第二目标存储位置的存储空间已存储有数据类型标识,判断已存储的数据类型标识的值是否大于所述测点值的数据类型对应的数据类型标识的值;
46.若已存储的数据类型标识的值大于所述测点值的数据类型对应的数据类型标识的值,保持所述第二目标存储位置的存储空间的存储内容不变;
47.若已存储的数据类型标识的值小于所述测点值的数据类型对应的数据类型标识的值,将所述第二目标存储位置的存储空间的存储内容更新为所述测点值的数据类型对应的数据类型标识。
48.第二方面,本发明提供了一种数据库数据存储装置,所述装置包括:
49.获取模块,用于获取目标设备发送的测点数据,所述测点数据至少包括存储位置参数、测点值和存储模式标识;
50.第一确定模块,用于根据所述存储模式标识和所述存储位置参数确定数据库中的目标行与目标列;
51.第二确定模块,用于根据所述目标行和所述目标列确定目标存储位置;
52.存储模块,用于将所述测点值以及所述测点值的数据类型按照所述存储模式标识对应的存储模式存储到所述目标存储位置。
53.第三方面,本发明提供了一种电子设备,包括:至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述第一方面中任一项所述的数据库数据存储方法。
54.第四方面,本发明实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述第一方面中任一项所述的数据库数据存储方法。
55.本发明实施例提供的技术方案,首先获取目标设备发送的测点数据,所述测点数据至少包括存储位置参数、测点值和存储模式标识,然后根据所述存储模式标识和所述存储位置参数确定数据库中的目标行与目标列,最后根据所述目标行和所述目标列确定目标存储位置,将所述测点值以及所述测点值的数据类型按照所述存储模式标识对应的存储模式存储到所述目标存储位置。如此便可以将数据类型和测点值对应存储。
附图说明
56.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
57.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
58.图1为本发明实施例提供的一种数据库数据存储方法的实施流程示意图;
59.图2为本发明实施例提供的一种数据库数据存储方法在第一标识下确定目标行和目标列的实施流程示意图;
60.图3为本发明实施例提供的一种数据库数据存储方法在第一标识下确定目标列的实施流程示意图;
61.图4为本发明实施例提供的一种数据库数据存储方法在第二标识下确定目标行和目标列的实施流程示意图;
62.图5为本发明实施例提供的一种数据库数据存储方法在第二标识下确定目标列的实施流程示意图;
63.图6为本发明实施例提供的一种数据库数据存储方法在第一标识下存储测点值和数据类型的实施流程示意图;
64.图7为本发明实施例提供的一种数据库数据存储方法中存储数据类型标识到第二目标存储位置的流程示意图;
65.图8为本发明实施例提供的一种数据库数据存储装置的结构示意图;
66.图9为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
67.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
68.如图1所示,为本发明实施例提供的一种数据库数据存储方法的实施流程示意图,该方法具体可以包括以下步骤:
69.步骤s101、获取目标设备发送的测点数据,测点数据至少包括存储位置参数、测点值和存储模式标识。
70.本步骤中,目标设备指的是需要将数据存储到数据库中的设备,一般,一个设备上会设置有多个测点,需要说明的是,测点指的是对设备工作状态相关的参数进行测量的点,在一个具体的例子中,若目标设备为水泵,水泵的测点就可以包括出口流量测点、出口压力测点等。
71.测定数据指的就是目标设备的一个测点或者多个测点测量得到的数据,为了便于数据库对不同目标设备以及不同测点的测点数据的存储,本实施例中,测点数据可以但不仅限于包括存储位置参数、测点值和存储模式标识。
72.另外,需要说明的是,一次性获取的测点数据中可能包括多个测点值,其中,每个测点值都会对应一个采集该测点值时的时间戳;当然,一次性获取的测点数据中还可以包括不同测点的在不同时间的测点值,此时,获取到的测点数据中,测点标识、测点值以及时间戳应该具有对应关系,以区分是哪个测点在那个时刻的测点值,在一个具体的例子中,可以如下表所示:
73.测点标识测点值时间戳测点a1.120201215 13:31:32测点b1.320201215 13:31:33测点c1.220201215 13:31:34
74.表1
75.具体的,该测点数据可以封装为“测点a,1.1,20201215 13:31:32;测点b,1.3,20201215 13:31:33;测点b,1.2,20201215 13:31:34”。
76.需要说明的是,存储模式标识对应着不同的存储模式,由于目标设备会具有多个测点,每个测点检测的参数不同,在后期对测点分析时的分析需求也是不同的,比如有的测点只需要观测是否有超出阈值的情况出现,测点数据存储到数据库中之后,在分析时,只需要查询出是否有超出阈值的测点值即可;而有些则需要分析出测点值的变化趋势,分析时就需要查询到一段时间范围内的测点值。
77.由于分析需求往往与测点的类型有关系,因此,对于不同的测点,将测点数据存储到hbase中的存储模式也可以有所不同。
78.需要说明的是,存储模式标识可以预先在目标设备一侧进行设置,目标设备在发送测点数据时,会根据预先设置好的存储模式标识封装到测点数据中。具体的,目标设备在发送测点数据之前,会先判断该测点数据来自哪个测点,然后根据测点与存储模式标识的映射关系,将测点对应的存储模式标识封装到测点数据中。
79.比如,目标设备有测点a、测点b、测点c,测点与存储模式标识的映射关系可以如下表所示:
80.测点存储模式标识测点a1测点b2测点c1
81.表2
82.若此时目标设备准备要发送的测点数据为测点a的测点数据,则可以根据上述表格中的映射关系得到测点a的存储模式标识为1,此时便将1封装到原测点数据中,得到新的测点数据。
83.本实施例中,在封装时,可以在原测点数据中的固定位置新增数据位,比如测点数据的头或尾处,将存储模式标识加入到新增的数据位中即可。
84.步骤s102、根据存储模式标识和存储位置参数确定数据库中的目标行与目标列。
85.需要说明的是,为了将数据库中存储的测点值及测点值的数据类型与产生该测点值的目标设备与测点对应起来,本实施例中的存储位置参数可以包括设备标识、测点标识与采集测点值的时间戳。
86.在面对不同的存储模式时,确定目标行和目标列的方式也有所不同,下面以存储模式标识为第一标识以及第二标识为例,进行说明。具体的,在存储模式标识为第一标识时,根据存储模式标识和存储位置参数确定目标行和目标列的过程可以参阅图2。
87.如图2所示,为本发明实施例提供的一种数据库数据存储方法在第一标识下确定目标行和目标列的实施流程示意图,该方法具体可以包括以下步骤:
88.步骤s201、若存储模式标识为第一标识,判断是否存在以设备标识与时间戳为行键的行。
89.需要说明的是,在hbase数据库中,行键(即rowkey)是行的标识,每个行的行键在hbase数据库中都是具有唯一性的,在知道某个行的行键后,就可以通过这个行键查询到该行。
90.在存储模式标识为第一标识时,行键的内容包括设备标识与时间戳,其中,设备标识可以是预先对每个设备设置的具有识别性的标识,比如系统中共有3个设备,每个设备的设备标识便可以设定为a、b、c。
91.另外,时间戳可以从天具体到秒,甚至具体到毫秒,其可以根据测点的采集频率来决定,若测点的采集频率能够达到秒级,则时间戳可以从天具体到秒,若测点的采集频率能够达到毫秒级,则时间戳可以从天具体到毫秒。
92.在一个具体的例子中,若设备标识为a,时间戳为20201215 13:31:32,本步骤中则可以判断是否存在以a和20201215 13:31:32为行键的行。
93.由于行键一般是以一定长度的二进制码流来表示,因此,行键的具体内容可以是将a转换成二进制、将20201215 13:31:32转换成二进制,然后将两者的二进制进行封装,比如“(a的二进制) (20201215 13:31:32的二进制)”。
94.而在判断时,则可以先按照前述的方式生成对应的二进制码流,然后逐行扫描,判断是否存在具有与生成的二进制码流一模一样的行键的行。
95.步骤s202、若存在以设备标识与时间戳为行键的行,将设备标识与时间戳为行键的行确定为目标行。
96.本步骤中,如果存在以设备标识与时间戳为行键的行,直接将以设备标识与时间戳为行键的行确定为目标行即可。
97.在一个具体的例子中,若在步骤s201中逐行扫描时,发现了具有与生成的二进制码流一模一样的行键的行,便可以确定存在以设备标识与时间戳为行键的行,此时,将改行确定为目标行。
98.步骤s203、若不存在以设备标识与时间戳为行键的行,新建以设备标识与时间戳为行键的行,并将新建的行作为目标行。
99.本步骤中,若不存在以设备标识与时间戳为行键的行,也就是在步骤s201中逐行扫描时,并未发现具有与生成的二进制码流一模一样的行键的行,这就说明目标设备可能是新的设备或者时间戳是一个新的时间对应的时间戳。此时,便可以直接新建行,该新建的行的行键便是该设备标识与时间戳,同时,将新建的行作为目标行。
100.步骤s204、根据测点标识和目标行确定数据库中的目标列。
101.在确定好目标行后,便可以在目标行下查询具体的目标列,具体可以参阅图3。
102.如图3所示,为本发明实施例提供的一种数据库数据存储方法在第一标识下确定目标列的实施流程示意图,该方法具体可以包括以下步骤:
103.步骤s301、判断目标行下是否存在测点标识对应的列。
104.需要说明的是,测点标识对应的列中的具体对应方式可以是以测点标识为列名的列。当然,基于hbase数据库的存储特性,列名也可以是二进制码流的形式,那么在判断时,首先需要将测点标识转换成二进制形式,然后逐列扫描列的列名,确定是否具有与转换的
二进制相同的列名。
105.步骤s302、若目标行下存在测点标识对应的列,将测点标识对应的列确定为目标列。
106.本步骤中,逐列扫描列的列名,确定具有与转换的二进制相同的列名,则可以说明目标行下存在测点标识对应的列,此时便可以直接将测点标识对应的列确定为目标列。
107.步骤s303、若目标行下不存在测点标识对应的列,在目标行下新建与测点标识对应的列,并将新建的与测点标识对应的列确定为目标列。
108.若逐列扫描列的列名,确定不具有与转换的二进制相同的列名,则可以说明目标行下不存在测点标识对应的列,此时则需要在目标行下新建与测点标识对应的列,并将新建的与测点标识对应的列确定为目标列,具体可以是将测点标识转换成二进制,然后将转换成的二进制作为新建的列的列名。
109.另外,若存储模式标识为第二标识,存储位置参数与前述步骤相同,仍然包括设备标识、测点标识以及采集测点值的时间戳。
110.如图4所示,为本发明实施例提供的一种数据库数据存储方法在第二标识下确定目标行和目标列的实施流程示意图,该方法具体可以包括以下步骤:
111.步骤s401、若存储模式标识为第二标识,根据时间戳与预设时间范围的时间长度确定时间戳所处的目标时间范围。
112.需要说明的是,预设时间范围指的是对某个测点预先规定的时间范围,本实施例第二标识对应的存储模式中,是将设备标识、测点标识以及目标时间范围作为行键,将预设的时间范围中具体的单位时间作为列,比如预设的时间范围为1个小时,单位时间为1秒,那么此处就会有3600个列,每个列代表1秒。
113.本步骤中,根据预设时间范围的时间长度确定时间戳所处的目标事件范围中,由于时间戳是天具体到秒甚至是毫秒的,若预设时间范围为1个小时,此时就可以从时间戳中取到小时,以时间戳20201215 13:31:32为例,取到小时就是20201215 13:00:00,而预设时间范围为1个小时,那么本步骤中,就可以在“13”的基础上加1,得到的目标时间范围就可以是20201215 13:00:00~20201215 13:59:59。
114.步骤s402、判断是否存在以设备标识、测点标识以及目标时间范围为行键的行。
115.在得到目标时间范围之后,便可以判断是否存在以设备标识、测点标识以及目标时间范围为行键的行,具体的判断过程可以参考步骤s201的相关内容,此处不再赘述。
116.步骤s403、若存在以设备标识、测点标识以及目标时间范围为行键的行,将以设备标识、测点标识以及目标时间范围为行键的行确定为目标行。
117.本步骤可以参考步骤s202的相关内容,此处不再赘述。
118.步骤s404、若不存在以设备标识、测点标识以及目标时间范围为行键的行,新建以设备标识、测点标识以及目标时间范围为行键的行,并将新建的行作为目标行。
119.本步骤可以参考步骤s203的相关内容,此处不再赘述。
120.步骤s405、根据时间戳和目标事件范围从预先建立的列中确定目标列。
121.需要说明的是,预先建立的列的过程可以包括:确定预设时间范围的时间长度中包含的预设单位时间长度的第一目标数量;建立与第一目标数量对等的列以及用于存储数据类型的列;对于建立的与第一目标数量对等的列,将预设初始值的连续自然数作为列的
列名,其中每个自然数对应一个列。
122.在一个具体的例子中,预设时间范围的时间长度可以为1个小时,预设单位时间长度可以为1秒,那么就可以确定出来1个小时中共有3600秒,而3600便是第一目标数量。
123.在得到第一目标数量后(仍以3600为例),则可以建立与第一目标数量对等的列,也就是3600个列,然后再建立一个用于存储数据类型的列。需要说明的是,对于建立的与第一目标数量对等的列,将预设初始值的连续自然数作为列的列名,其中每个自然数对应一个列,以预设初始值为1为例,3600个列的列名依次可以是1、2、3
……
3599、3600。
124.另外建立的用于存储数据类型的列可以放在第一目标数量个列之前,也可以放在第一目标数量个列之后,也可以放在第一目标数量个列之间,但是建立的用于存储数据类型的列的列名应当与前述建立的列的列名区分开,比如以datatype为列名。
125.具体的,根据时间戳和目标事件范围从预先建立的列中确定目标列的过程可以参阅图5,由于预先建立的列中具有用于存放测点值的数据列(以0~3599为列名的列),也有用于存放数据类型的列,因此,确定的目标列中也应当包括第一目标列和第二目标列。
126.如图5所示,为本发明实施例提供的一种数据库数据存储方法在第二标识下确定目标列的实施流程示意图,该方法具体可以包括以下步骤:
127.步骤s501、确定目标时间范围的起始时刻到时间戳对应的时刻之间,包含的预设单位时间长度的第二目标数量。
128.从前述步骤中可以知道,目标时间范围是有起始时刻和结束时刻的,比如20201215 13:00:00~20201215 13:59:59,起始时刻就是20201215 13:00:00,结束时刻就是20201215 13:59:59。本步骤中就是要确定起始时刻到时间戳对应的时刻之间,包含的预设单位时间长度的第二目标数量。
129.在一个具体的例子中,仍以时间戳20201215 13:31:32为例,20201215 13:00:00~20201215 13:31:32之间就包含了1893秒,那么第二目标数量就是1893。
130.步骤s502、将以第二目标数量对应的自然数为列名的列确定为第一目标列。
131.由于第二目标数量为1893,那么第一目标列的列名就是1893。
132.需要说明的是,此处确定第一目标列的过程与前述的预设初始值有关,若预设初始值为0,那么第二目标数量对应的自然数应当是1892,也就是从0开始到1892,一共是1893个自然数,若预设初始值为3,那么第二目标数量对应的自然数应当是1895,为了便于计算,第二目标数量对应的自然数的计算公式便可以是:第二目标数量-(1-预设初始值)。
133.步骤s503、将用于存储数据类型的列确定为第二目标列。
134.由于预先建立的列中本来就存在用于存储数据类型的列,那么本步骤中直接将用于存储数据类型的列确定为第二目标列即可。
135.步骤s103、根据目标行和目标列确定目标存储位置。
136.需要说明的是,在上述步骤中,已经确定出了目标行与目标列,那么目标行和目标列指向的单元格便是本步骤中得到的目标存储位置。
137.步骤s104、将测点值以及测点值的数据类型按照存储模式标识对应的存储模式存储到目标存储位置。
138.由于存储模式不同,确定的目标存储位置则有所不同,那么将测点值以及测点值的数据类型按照存储模式标识对应的存储模式存储到目标存储位置的过程也会有所不同。
139.对于存储模式标识为第一标识的情况,可以如图6所示,为本发明实施例提供的一种数据库数据存储方法在第一标识下存储测点值和数据类型的实施流程示意图,该方法具体可以包括以下步骤:
140.步骤s601、若存储模式标识为第一标识,确定测点值的数据类型对应的数据类型标识。
141.需要说明的是,确定某个值的数据类型,一般可以是根据该数值中所包含的特殊元素以及数值所占数据位的大小来进行判断和确定,特殊元素可以是小数点、字母等。不同数据类型的数值所占的数据位的大小是不同的,比如布尔型《整型《浮点型《字符串。
142.在具体确定时,可以先将测点值转换成相应的数值型数据,数值型数据由数字、小数点、正负号和字母e组成,其取值范围是:-0.9999999999e 19到0.9999999999e 20,包括正负号、小数点和字母e在内,其长度最大20位,通常用于表示实数。
143.然后判断数值型数据是否为字符串,并在判断为是字符串时,逐个字符判断每个字符是否为数值;若全部为数值,且其中包含了小数点,则可以判断该测点值为string类型;若全部数值,但不包含小数点,则可以判断该测点值为long。
144.另外,由于布尔型占据一个数据位,与其他数据类型的数据位具有明显区别,因此,可以直接根据数据位对是否为布尔型进行判断。
145.为了减小存储的数据类型占用的数据库的存储空间,在将测点值和目标数据类型进行对应存储时,可以不用将数据类型的名称(比如boolean、long、int、float、double、string等)进行直接存储,而是对上述不同的数据类型设置简单的标识,比如数字1、2、3、4等,具体的对应关系可以如下表所示:
146.数据类型数据类型标识boolean1long、int2float、double3string4
147.表3
148.步骤s602、将测点值和数据类型标识组成测点数据的键值对。
149.需要说明的是,键值对由键和值组成,键指的就是存的值的编号,值指的就是要存放的数据,换句话说,键就是值的名字,由于数据具有很多条,而数据类型标识的数量是有限的,而键值对中的键要求在一个集合中具有唯一性,因此,本实施例中,特将测点值设置为键值对中的键,目标数据类型标识设置为键值对中的值。
150.步骤s603、将键值对存储到目标存储位置的存储空间中。
151.对于存储模式标识为第二标识的情况,目标存储位置包括目标行与第一目标列指向的第一目标存储位置和目标行与第二目标列指向的第二目标存储位置。
152.在第二标识下存储测点值和数据类型具体可以包括以下步骤:若存储模式标识为第二标识,确定测点值的数据类型对应的数据类型标识;将测点值存储到第一目标存储位置的存储空间中;将数据类型标识存储到第二目标存储位置的存储空间中。
153.需要说明的是,确定测点值的数据类型对应的数据类型标识的过程可以参考步骤s601,此处不再赘述。
154.另外,对于整型与浮点型,两者对于整数数值的表示可能会相同,若一个测点首次上传的测点值为一个整数,此时数据库可能会将该测点值的数据类型识别成整型,而下一个测点值可能是带有小数点的,数据库必然会识别为浮点型,那么此时就与原有存储的数据类型标识发生了冲突,为了避免该冲突,本实施例对数据类型标识的存储给出了一下具体执行,如图7所示,为本发明实施例提供的一种数据库数据存储方法中存储数据类型标识到第二目标存储位置的流程示意图,该方法具体可以包括以下步骤:
155.步骤s701、若第二目标存储位置的存储空间为空,将数据类型标识存储至第二目标存储位置的存储空间;
156.步骤s702、若第二目标存储位置的存储空间已存储有数据类型标识,判断已存储的数据类型标识的值是否大于测点值的数据类型对应的数据类型标识的值;
157.步骤s703、若已存储的数据类型标识的值大于测点值的数据类型对应的数据类型标识的值,保持第二目标存储位置的存储空间的存储内容不变;
158.步骤s704、若已存储的数据类型标识的值小于测点值的数据类型对应的数据类型标识的值,将第二目标存储位置的存储空间的存储内容更新为测点值的数据类型对应的数据类型标识。
159.若第二目标存储位置的存储空间为空,也就是还未存储有数据类型标识,此时就直接将目标数据类型对应的数据类型标识填入到目标存储位置;若第二目标存储位置的存储空间已存储有数据类型标识,说明在此之前已经存储了一个数据类型标识,此时就需要判断已存储的数据类型标识的值是否大于测点值的数据类型对应的数据类型标识的值,如果是,说明本次获取的测点值的目标数据类型为浮点型,本次获取的数据类型有误,此时保持第二目标存储位置的存储空间的存储内容不变即可,若不是,说明本次获取的测点值的数据类型为浮点型,之前已经存储的数据类型有误,此时需要将第二目标存储位置的存储空间更新为数据类型标识。
160.需要说明的是,本实施例适用于预先设定的整型的数据类型标识的值小于浮点型的数据类型标识的值,若两者的大小与该种情况不相符,图7示例的方法步骤中的判断条件也应该进行相应的改变。
161.与上述方法实施例相对应,本发明实施例还提供了一种数据库数据存储装置,如图8所示,为本发明实施例提供的一种数据库数据存储装置的结构示意图,该装置包括:
162.获取模块801,用于获取目标设备发送的测点数据,测点数据至少包括存储位置参数、测点值和存储模式标识;
163.第一确定模块802,用于根据存储模式标识和存储位置参数确定数据库中的目标行与目标列;
164.第二确定模块803,用于根据目标行和目标列确定目标存储位置;
165.存储模块804,用于将测点值以及测点值的数据类型按照存储模式标识对应的存储模式存储到目标存储位置。
166.数据库数据存储装置包括处理器和存储器,上述获取模块801、第一确定模块802、第二确定模块803、存储模块804等均作为程序模块存储在存储器中,由处理器执行存储在存储器中的上述程序模块来实现相应的功能。
167.本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存
储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
168.当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在电子设备侧执行的数据库数据存储方法。
169.处理器用于执行存储器中存储的程序,以实现以下在电子设备侧执行的方法的步骤:
170.获取目标设备发送的测点数据,测点数据至少包括存储位置参数、测点值和存储模式标识;
171.根据存储模式标识和存储位置参数确定数据库中的目标行与目标列;
172.根据目标行和目标列确定目标存储位置;
173.将测点值以及测点值的数据类型按照存储模式标识对应的存储模式存储到目标存储位置。
174.在本发明的可选实施方式中,存储位置参数包括设备标识、测点标识与采集测点值的时间戳;
175.根据存储模式标识和存储位置参数确定数据库中的目标行与目标列,包括:
176.若存储模式标识为第一标识,判断是否存在以设备标识与时间戳为行键的行;
177.若存在以设备标识与时间戳为行键的行,将设备标识与时间戳为行键的行确定为目标行;
178.若不存在以设备标识与时间戳为行键的行,新建以设备标识与时间戳为行键的行,并将新建的行作为目标行;
179.根据测点标识和目标行确定数据库中的目标列。
180.在本发明的可选实施方式中,根据测点标识确定数据库中的目标列,包括:
181.判断目标行下是否存在测点标识对应的列;
182.若目标行下存在测点标识对应的列,将测点标识对应的列确定为目标列;
183.若目标行下不存在测点标识对应的列,在目标行下新建与测点标识对应的列,并将新建的与测点标识对应的列确定为目标列。
184.在本发明的可选实施方式中,存储位置参数包括设备标识、测点标识与采集测点值的时间戳;
185.根据存储模式标识和存储位置参数确定数据库中的目标行与目标列,包括:
186.若存储模式标识为第二标识,根据时间戳与预设时间范围的时间长度确定时间戳所处的目标时间范围;
187.判断是否存在以设备标识、测点标识以及目标时间范围为行键的行;
188.若存在以设备标识、测点标识以及目标时间范围为行键的行,将以设备标识、测点标识以及目标时间范围为行键的行确定为目标行;
189.若不存在以设备标识、测点标识以及目标时间范围为行键的行,新建以设备标识、测点标识以及目标时间范围为行键的行,并将新建的行作为目标行;
190.根据时间戳和目标事件范围从预先建立的列中确定目标列。
191.在本发明的可选实施方式中,预先建立列的过程包括:
192.确定预设时间范围的时间长度中包含的预设单位时间长度的第一目标数量;
193.建立与第一目标数量对等的列以及用于存储数据类型的列;
194.对于建立的与第一目标数量对等的列,将预设初始值的连续自然数作为列的列名,其中每个自然数对应一个列。
195.在本发明的可选实施方式中,目标列包括第一目标列和第二目标列,根据时间戳从预先建立的列中确定目标列,包括:
196.确定目标时间范围的起始时刻到时间戳对应的时刻之间,包含的预设单位时间长度的第二目标数量;
197.将以第二目标数量对应的自然数为列名的列确定为第一目标列;
198.将用于存储数据类型的列确定为第二目标列。
199.在本发明的可选实施方式中,将测点值以及测点值的数据类型按照存储模式标识对应的存储模式存储到目标存储位置,包括:
200.若存储模式标识为第一标识,确定测点值的数据类型对应的数据类型标识;
201.将测点值和数据类型标识组成测点数据的键值对;
202.将键值对存储到目标存储位置的存储空间中。
203.在本发明的可选实施方式中,目标存储位置包括目标行与第一目标列指向的第一目标存储位置和目标行与第二目标列指向的第二目标存储位置;
204.将测点值以及测点值的数据类型按照存储模式标识对应的存储模式存储到目标存储位置,包括:
205.若存储模式标识为第二标识,确定测点值的数据类型对应的数据类型标识;
206.将测点值存储到第一目标存储位置的存储空间中;
207.将数据类型标识存储到第二目标存储位置的存储空间中。
208.在本发明的可选实施方式中,将数据类型标识存储到第二目标存储位置的存储空间中,包括:
209.若第二目标存储位置的存储空间为空,将数据类型标识存储至第二目标存储位置的存储空间;
210.若第二目标存储位置的存储空间已存储有数据类型标识,判断已存储的数据类型标识的值是否大于测点值的数据类型对应的数据类型标识的值;
211.若已存储的数据类型标识的值大于测点值的数据类型对应的数据类型标识的值,保持第二目标存储位置的存储空间的存储内容不变;
212.若已存储的数据类型标识的值小于测点值的数据类型对应的数据类型标识的值,将第二目标存储位置的存储空间的存储内容更新为测点值的数据类型对应的数据类型标识。
213.本发明实施例提供了一种处理器,处理器用于运行程序,其中,程序运行时执行:获取目标设备发送的测点数据,测点数据至少包括存储位置参数、测点值和存储模式标识;根据存储模式标识和存储位置参数确定数据库中的目标行与目标列;根据目标行和目标列确定目标存储位置;将测点值以及测点值的数据类型按照存储模式标识对应的存储模式存储到目标存储位置。
214.图9为本发明实施例提供的一种电子设备的结构示意图,图9所示的电子设备90包
括:至少一个处理器901、以及与处理器901连接的至少一个存储器902、总线903;其中,处理器901、存储器902通过总线903完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述的数据库数据存储方法。本文中的电子设备可以是服务器、pc、pad、手机等。
215.本发明还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
216.获取目标设备发送的测点数据,测点数据至少包括存储位置参数、测点值和存储模式标识;
217.根据存储模式标识和存储位置参数确定数据库中的目标行与目标列;
218.根据目标行和目标列确定目标存储位置;
219.将测点值以及测点值的数据类型按照存储模式标识对应的存储模式存储到目标存储位置。
220.在本发明的可选实施方式中,存储位置参数包括设备标识、测点标识与采集测点值的时间戳;
221.根据存储模式标识和存储位置参数确定数据库中的目标行与目标列,包括:
222.若存储模式标识为第一标识,判断是否存在以设备标识与时间戳为行键的行;
223.若存在以设备标识与时间戳为行键的行,将设备标识与时间戳为行键的行确定为目标行;
224.若不存在以设备标识与时间戳为行键的行,新建以设备标识与时间戳为行键的行,并将新建的行作为目标行;
225.根据测点标识和目标行确定数据库中的目标列。
226.在本发明的可选实施方式中,根据测点标识确定数据库中的目标列,包括:
227.判断目标行下是否存在测点标识对应的列;
228.若目标行下存在测点标识对应的列,将测点标识对应的列确定为目标列;
229.若目标行下不存在测点标识对应的列,在目标行下新建与测点标识对应的列,并将新建的与测点标识对应的列确定为目标列。
230.在本发明的可选实施方式中,存储位置参数包括设备标识、测点标识与采集测点值的时间戳;
231.根据存储模式标识和存储位置参数确定数据库中的目标行与目标列,包括:
232.若存储模式标识为第二标识,根据时间戳与预设时间范围的时间长度确定时间戳所处的目标时间范围;
233.判断是否存在以设备标识、测点标识以及目标时间范围为行键的行;
234.若存在以设备标识、测点标识以及目标时间范围为行键的行,将以设备标识、测点标识以及目标时间范围为行键的行确定为目标行;
235.若不存在以设备标识、测点标识以及目标时间范围为行键的行,新建以设备标识、测点标识以及目标时间范围为行键的行,并将新建的行作为目标行;
236.根据时间戳和目标事件范围从预先建立的列中确定目标列。
237.在本发明的可选实施方式中,预先建立列的过程包括:
238.确定预设时间范围的时间长度中包含的预设单位时间长度的第一目标数量;
239.建立与第一目标数量对等的列以及用于存储数据类型的列;
240.对于建立的与第一目标数量对等的列,将预设初始值的连续自然数作为列的列名,其中每个自然数对应一个列。
241.在本发明的可选实施方式中,目标列包括第一目标列和第二目标列,根据时间戳从预先建立的列中确定目标列,包括:
242.确定目标时间范围的起始时刻到时间戳对应的时刻之间,包含的预设单位时间长度的第二目标数量;
243.将以第二目标数量对应的自然数为列名的列确定为第一目标列;
244.将用于存储数据类型的列确定为第二目标列。
245.在本发明的可选实施方式中,将测点值以及测点值的数据类型按照存储模式标识对应的存储模式存储到目标存储位置,包括:
246.若存储模式标识为第一标识,确定测点值的数据类型对应的数据类型标识;
247.将测点值和数据类型标识组成测点数据的键值对;
248.将键值对存储到目标存储位置的存储空间中。
249.在本发明的可选实施方式中,目标存储位置包括目标行与第一目标列指向的第一目标存储位置和目标行与第二目标列指向的第二目标存储位置;
250.将测点值以及测点值的数据类型按照存储模式标识对应的存储模式存储到目标存储位置,包括:
251.若存储模式标识为第二标识,确定测点值的数据类型对应的数据类型标识;
252.将测点值存储到第一目标存储位置的存储空间中;
253.将数据类型标识存储到第二目标存储位置的存储空间中。
254.在本发明的可选实施方式中,将数据类型标识存储到第二目标存储位置的存储空间中,包括:
255.若第二目标存储位置的存储空间为空,将数据类型标识存储至第二目标存储位置的存储空间;
256.若第二目标存储位置的存储空间已存储有数据类型标识,判断已存储的数据类型标识的值是否大于测点值的数据类型对应的数据类型标识的值;
257.若已存储的数据类型标识的值大于测点值的数据类型对应的数据类型标识的值,保持第二目标存储位置的存储空间的存储内容不变;
258.若已存储的数据类型标识的值小于测点值的数据类型对应的数据类型标识的值,将第二目标存储位置的存储空间的存储内容更新为测点值的数据类型对应的数据类型标识。
259.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
260.在一个典型的配置中,设备包括一个或多个处理器(cpu)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
261.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
262.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
263.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
264.本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
265.以上仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献