本技术涉及数据库,尤其涉及一种时序数据处理方法、装置、电子设备及存储介质。
背景技术:
1、时序数据中标签是重要的组成部分,标签描述了数据源的信息,通常在时序场景下会作为数据查询的条件,很多时序数据库将标签作为时序数据的索引使用。高效地管理标签数据,对于时序数据的空间占用、查询效率等都有非常重要的意义。
2、在一些时序数据库(如influxdb)中,将标签数据与时序数据其他部分一起存储,用户使用时可以从单一数据源查询到所需的数据。这种方式简化了用户的使用,标签数据和采集值以及时间值的管理对用透明。但这种实现方式将标签数据与时序数据的其他部分一起存储,由于同一个设备的标签数据基本是固定的,导致标签数据有大量重复存储的问题,当时序数据中标签个数较多的情况下会造成较大的空间浪费。因此,如何减少标签数据重复存储,成为了亟待解决的技术问题。
技术实现思路
1、本技术实施例的主要目的在于提出一种时序数据处理方法、装置、电子设备及存储介质,能够减少标签数据的重复存储。
2、为实现上述目的,本技术实施例的第一方面提出了一种时序数据处理方法,所述方法包括:
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、本技术提出的时序数据处理方法、时序数据处理装置、电子设备及存储介质,在获取待写入时序数据之后,需要对该时序数据进行划分,以便分离出标签数据和值数据,从而能够实现分开存储。存储的位置需从时序表结构定义中获取,该时序表结构定义中包括标签存储信息和值存储信息。可以根据标签存储信息从时序数据库中获得标签数据存储表,同理,可以根据值存储信息从时序数据库获得值数据存储表。通过数据分开存储,实现本技术实施例对待写入时序数据的自动分离和存储,减少了标签数据的重复存储。