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

时序指标数据降精度处理方法、装置和计算机设备与流程

2021-12-07 20:25:00 来源:中国专利 TAG:
1.本技术涉及数据处理领域,特别是涉及一种时序指标数据降精度处理方法、装置和计算机设备。
背景技术
::2.在监控等领域,带有时序特征的数据是每间隔一段时间采集某个指标当前的数值。这种数据都是浮点数或整型值,经常在一段时间里变化不大甚至没有变化,因此可以用一些有别于通用压缩算法的实现,将数据量压缩到更高的压缩比,这种数据可以称作时序指标数据。由于时序数据通常具有时效性,用户大部分情况只对最近一段时间的数据比较关心,对很久之前的数据不会很关心,而且监控数据相对于业务数据,即使有一定精度丢失也没有关系,因此时序数据为了减少磁盘占用,除了使用特殊压缩算法外,还会考虑将老数据做降精度处理。3.目前的时序数据库,例如influxdb等,采用的降精度实现方法为,让用户自行定义dml语句(数据库操作语句)。这种实现方式,每当有时序数据需要做降精度处理,都需要用户手动添加一个dml语句,运维成本较高,且操作不友好。4.目前针对相关技术中对时序数据进行降精度处理存在的成本较高且操作不便的问题,尚未提出有效的解决方案。技术实现要素:5.本技术实施例提供了一种时序指标数据降精度处理方法、装置和计算机设备,以至少解决相关技术中对时序指标数据进行降精度处理存在的成本较高且操作不便的问题。6.第一方面,本技术实施例提供了一种时序指标数据降精度处理方法,所述方法包括:7.接收时序指标数据;8.根据所述时序指标数据的类型,查找对应的降精度算法;9.根据所述降精度算法,对所述时序指标数据的元数据信息进行降精度处理。10.在其中一些实施例中,在所述根据时序指标数据的类型,查找对应的降精度算法之前,所述方法还包括:11.配置所述时序指标数据对应的降精度算法;12.将所述时序指标数据的降精度算法和所述时序指标数据的元数据信息关联。13.在其中一些实施例中,所述根据所述降精度算法,对所述时序指标数据的元数据信息进行降精度处理,包括:14.检测所述时序指标数据的存储时长;15.在检测到所述存储时长大于预设时长后,根据查找到的降精度算法,对所述时序指标数据的元数据信息进行降精度处理。16.在其中一些实施例中,所述方法还包括:17.配置所述时序指标数据的存储策略,所述存储策略指定所述时序指标数据在存储预设时间后进行降精度处理。18.在其中一些实施例中,所述配置所述时序指标数据对应的降精度算法,包括:19.在所述时序指标数据的数据写入请求中配置对应的降精度算法;或,20.在存储系统创建schema表时,配置所述时序指标数据对应的降精度算法。21.在其中一些实施例中,所述时序指标数据的降精度算法包括:22.max:取预设时间精度范围内所有时序指标数据的最大值;23.min:取预设时间精度范围内所有时序指标数据的最小值;24.gauge:取预设时间精度范围内所有时序指标数据中的最后一个值;25.sum:取预设时间精度范围内所有时序指标数据的和;26.avg:取预设时间精度范围内所有时序指标数据的和,以及所述预设时间精度范围内所有时序指标数据的数量中的至少一种。27.在其中一些实施例中,每一个所述时序指标数据对应至少一个所述降精度算法;所述根据所述降精度算法对所述时序指标数据的元数据信息进行降精度处理,包括:28.在检测到存储时长大于预设时长后,根据查找到的多个降精度算法,分别对所述时序指标数据的元数据信息进行降精度处理,得到多组降精度时序指标数据。29.第二方面,本技术实施例提供了一种时序指标数据降精度处理装置,包括接收模块、查找模块和处理模块;其中:30.接收模块,用于接收时序指标数据;31.查找模块,用于根据时序指标数据的类型,查找对应的降精度算法;32.处理模块,用于根据所述降精度算法,对所述时序指标数据的元数据信息进行降精度处理。33.第三方面,本技术实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的时序指标数据降精度处理方法。34.第四方面,本技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的时序指标数据降精度处理方法。35.相比于相关技术,本技术实施例提供的时序指标数据降精度处理方法,通过配置每个时序指标数据对应的降精度算法;将所述时序指标数据的降精度算法和所述时序指标数据的元数据信息对应存储;获取所述时序指标数据的存储策略;所述存储策略指定所述时序指标数据在存储预设时间后,将所述时序指标数据进行降精度处理;根据所述降精度算法和所述存储策略,对所述时序指标数据的元数据信息进行降精度处理,解决了相关技术中对时序数据进行降精度处理存在的成本较高且操作不便的问题。36.本技术的一个或多个实施例的细节在以下附图和描述中提出,以使本技术的其他特征、目的和优点更加简明易懂。附图说明37.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:38.图1是本技术实施例提供的时序指标数据降精度处理方法的流程图;39.图2是本技术实施例的提供的时序指标数据存储装置的结构框图;40.图3是本技术实施例提供的计算机设备的内部结构图。具体实施方式41.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。基于本技术提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。42.显而易见地,下面描述中的附图仅仅是本技术的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本技术应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本技术公开的内容相关的本领域的普通技术人员而言,在本技术揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本技术公开的内容不充分。43.在本技术中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本技术所描述的实施例在不冲突的情况下,可以与其它实施例相结合。44.除非另作定义,本技术所涉及的技术术语或者科学术语应当为本技术所属
技术领域
:内具有一般技能的人士所理解的通常意义。本技术所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本技术所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本技术所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本技术所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。45.本实施例提供了一种时序指标数据降精度处理方法。图1是根据本技术实施例的时序数据存储方法的流程图,如图1所示,该流程包括如下步骤:46.步骤110,接收时序指标数据;47.步骤120,根据所述时序指标数据的类型,查找对应的降精度算法;48.步骤130,根据所述降精度算法,对所述时序指标数据的元数据信息进行降精度处理。49.时序指标数据可以理解为反映某一指标的时序数据,本技术中也称为时序数据。在监控领域,监控数据具有时效性,为了减少监控得到的时序数据对磁盘的占用,除了使用压缩算法外,还会对时序数据进行降精度处理。比如某个指标每1分钟上报一个整型数值(4字节)的数据,这样24小时会产生1440字节的时序数据。时序数据在经过1小时后,利用降精度处理,以数据的精度有一定下降为代价,将其精度从1分钟降低到10分钟,则只需要存储144字节的数据。其中10分钟就可以是预设精度范围,当然在其他实施例中,预设精度范围也可以是20分钟或30分钟等。目前的时序数据库,例如influxdb等,采用的降精度实现方法为:让用户自行定义dml语句,将原始数据计算出降精度的结果,再存储到另一张表上,以达到降精度的目的。比如以下语句,将会生成一份将原始数据降精度为10分钟,降精度类型为求和的数据:selectsum(api_counter)asapi_counter_10minfromorigin_tableintodownsampling_table_10min。这种实现方式,每当有时序数据需要降精度处理时,都需要用户手动添加一个dml语句,运维成本较高且操作不友好。50.本技术通过为每个时序数据配置对应的降精度算法,在接收到时序指标数据后进行存储,当需要进行降精度处理时,根据存储的时序指标数据的类型查找对应的降精度算法,对时序指标数据的元数据信息进行降精度处理。51.在根据时序指标数据的类型,查找对应的降精度算法之前,需要根据不同类型的时序数据配置对应不同的降精度算法。并在配置完成后,与时序指标数据进行关联存储。存储的方式可以不限,例如可以是映射表的方式。比如cpu使用率,一般可以考虑取某段时间内最大值和/或平均值作为降精度后的结果。在存储时序指标数据时,将时序指标数据的元数据信息和为其配置的降精度算法对应存储。降精度算法可以仅包括降精度的类型,例如一段时间区间的最大值、平均值或最后一个值,上述的一段时间区间可以是存储系统设定的统一时间。优选的,降精度算法包括预设时间精度范围和降精度类型。例如,降精度算法可以为max:取预设时间精度范围内所有时序指标数据的最大值。该预设时间精度范围可以是根据时序指标数据的数据特点设置的,不同类型的时序指标数据设置的预设时间精度范围可能不同。52.具体地,根据所述降精度算法,对所述时序指标数据的元数据信息进行降精度处理可以是用户发出控制指令,触发对至少一个时序指标数据的元数据信息根据对应的降精度处理算法进行降精度处理。控制指令可以携带有对应的标识信息,时序指标数据也携带有对应的标识信息。控制指令可以在一个指令中包括多个标识信息,以同时控制多个时序指标数据的降精度处理,而不需要用户每当有时序数据需要降精度处理时,都需要用户手动添加一个dml语句。53.在其中一些实施例中,时序指标数据的降精度算法包括:54.max:取预设时间精度范围内所有时序指标数据的最大值;55.min:取预设时间精度范围内所有时序指标数据的最小值;56.gauge:取预设时间精度范围内所有时序指标数据中的最后一个值;57.sum:取预设时间精度范围内所有时序指标数据的和;58.avg:取预设时间精度范围内所有时序指标数据的和,以及所述预设时间精度范围内所有时序指标数据的数量中的至少一种。59.可以理解的是,上述对降精度算法的类型仅是举例说明,本领域技术人员也可以设置其他类型的降精度算法。另外上述每一类型的降精度算法中的预设时间精度范围可以不相同。60.为了更清晰的说明本技术的方案,通过以下举例说明。例如统计每个api调用次数,需要将某段时间内所有值相加作为降精度后的结果。具体如下表,该表格为某机器cpu在每个时间点的使用率。预设时间精度为5分钟,取这段时间的最后一个值。[0061][0062]以下表格为某api在每个时间点的调用次数,预设时间精度为5分钟,取这段时间里所有值的总和。[0063][0064]本技术通过上述步骤,在存储时序指标数据时,将时序指标数据的元数据和为其配置的降精度算法对应存储。例如,可以在每个所述时序指标数据的数据写入请求中配置对应的降精度算法;或,在存储系统创建schema表时,指定每个时序指标数据的降精度算法。具体地,在存储系统的写入端在发送写请求时,给每个时序指标数据带上降精度类型(即降精度算法)。存储系统在写入数据时,将该指标的精度类型作为该指标的元数据信息一并写入存储系统中。[0065]传统的时序数据存储系统写入协议为:insertintotablesetapi_counter=?,cpu_usage=x,time=x。传统的存储系统数据存储格式:[0066]time00:01...api_counter16...cpu_usage16...[0067]本技术的存储系统写入协议:insertintotablesetapi_counter=xwithsum,cpu_usage=xwithgauge,time=x。[0068]本技术的存储系统数据存储格式:[0069]timetype=time00:01...api_countertype=sum16...cpu_usagetype=gauge16...[0070]由上述两个存储系统数据的存储格式可以看出,本技术在存储数据的时候增加了对时序指标数据对应的降精度处理算法。这样运维人员在不需要为每个新增指标单独创创建任务的前提下,也可以实现对时序数据的降精度存储。同时不同的时序指标数据可以根据各自的数据特点,选择不同的降精度算法,计算出合理的数据降精度结果。在数据需要做降精度处理时,用户不需要针对每个数据都添加dml语句,通过查看对应时序指标数据对应的降精度算法就可以实现自动降精度处理的效果,解决了相关技术中对时序数据进行降精度处理存在的成本较高且操作不便的问题。[0071]在其中一些实施例中,根据所述降精度算法,对所述时序指标数据的元数据信息进行降精度处理,包括:[0072]检测所述时序指标数据的存储时长;[0073]在检测到所述存储时长大于预设时长后,根据查找到的降精度算法,对所述时序指标数据的元数据信息进行降精度处理。[0074]本实施例同时配置时序指标的存储策略,以在监测到时序指标数据在存储预设时间后,根据降精度算法对所述时序指标数据自动进行降精度处理。具体地,在监测到写入存储系统的时序数据存储的时间达到预设时间之后,重新发起该时序数据的存储操作,使用该时序数据对应的降精度算法,也可以称为降精度类型,将时序数据的元数据信息降精度为合适的结果。上述的预设时间可以是10分钟、20分钟或一天等,具体可以根据时序数据类型或用户实际情况进行设置,本实施例不作具体限定。[0075]在其他一些实施例中,通过降精度算法对时序指标数据进行降精度后的数据,可以根据用户需要,决定将降精度的数据替换原始精度的数据,以达到降低磁盘占用量的目的。也可以同时保留原始精度和降精度的多份数据,以达到用降精度数据加速查询,用原始精度的时序数据来保留明细的目的。[0076]在其中一些实施例中,每一个所述时序指标数据对应至少一个所述降精度算法。[0077]考虑到用户的需求,用户可能需要从多个维度来分析时序数据。比如cpu在1,2,3,4,5个时刻,使用率分别为10,20,30,40,50,合并成一个值的话(降精度处理),如果想看峰值就需要取最大值50,如果想看平均值就要平均数30。在实际场景中,如果用户想观察cpu是否有尖刺时需要看最大值,如果只是想观察整个情况的话用最大值就不合适,平均值更合适。因此,本实施例针对每一个时序指标数据会对应配置至少一个降精度算法,以方便用户从多个维度准确分析数据,进而判断对应的指标情况。[0078]在时序指标数据仅配置一个降精度算法时,对应的存储语句为:[0079]insertintotablesetapi_counter=?withsum,cpu_usage=?withgauge,time=?[0080]本实施例中,存储语句可以写成insertintotablesetapi_counter=?withsum,cpu_usage=?with[avg,max],time=?。[0081]原来方案查询语句是selectcpu_usagefromtable,本实施例中方案的查询语句可以写成:[0082]selectcpu_usage_avgfromtable;[0083]selectcpu_usage_maxfromtable。[0084]本实施例中在检测到所述时序指标数据的存储时长达到预设时长后,根据所述时序指标数据对应的多个降精度算法,分别计算得到多组降精度时序指标数据。[0085]在其中一些实施例中,所述配置每个时序指标数据对应的降精度算法,包括:[0086]在每个所述时序指标数据的数据写入请求中配置对应的降精度算法;或,[0087]在所述存储系统创建schema表时,指定每个所述时序指标数据的降精度算法。[0088]本实施例根据存储系统的类型,设置了两种存储方式。如果存储系统带schema(有表的概念),可以在创建表的时候指定每个时序数据的降精度类型。如果存储系统没有schema的概念,可以在发送写请求时带上每个指标的降精度类型。[0089]通过举例来说明,假设存储系统只存一个cpu使用率的数据,然后用户想要按照平均值和最大值两个方式做降精度。[0090]针对有schema的存储系统,会记录元数据信息,column=cpu,downsampling=[avg,max];这样写数据时可以写cpu=?。当存储系统收到后,直接存下来元数据的值就可以,后面做降精度时,从元数据里查找发现需要avg,max两种降精度类型,就分别针对两种降精度类型进行降精度处理。[0091]针对没有schema的存储系统,没有元数据信息,因此需要在写数据时加上元数据,即cpu=?with[avg,max],当存储系统收到后,不仅需要存下cpu=?,还需要存下cpudownsampling=[avg,max]。后面做降精度处理时,直接从数据里读到downsampling做降精度。[0092]比如我们需要记录以下信息:[0093]cpu00:01=10;[0094]cpu00:02=20;[0095]cpu00:03=30。[0096]在有shcmea的存储系统中,记录的分别是:[0097]元数据:column=cpu,downsampling=[avg,max];[0098]实际数据:00:01=10,00:02=20,00:03=30。[0099]在无schema的存储系统中,记录的是:[0100]元数据:无;[0101]实际数据:00:01=10[avg,max],00:02=20[avg,max],00:03=30[avg,max]。[0102]因为不管写进来多少个时间点的数据,降精度类型都是一定的,所以实际存储可以压缩成:[0103]元数据:无;[0104]实际数据:[avg,max],00:01=10,00:02=20,00:03=30。[0105]可以认为,元数据是一张一般情况下只有创建schema表时才会写进去数据的很小的一张表,实际数据是一张时时刻刻都有新数据写进去的很大的表。[0106]无schema和有schema的存储系统在实际存储时基本差不多,是因为即使是一个无schema的系统,也可以在写入数据时,动态的把元数据写到元数据表里,那这个时候有无schema的存储系统,最后都可以把数据存储成下面这种格式:[0107]元数据:column=?,[downsampling];[0108]实际数据,column=?,[value=timestamp,value=timestamp...]。[0109]本实施例还提供了一种时序指标数据降精度处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。[0110]图3是根据本技术实施例的时序指标数据存储装置的结构框图,如图3所示,该装置包括接收模块210、查找模块220和处理模块230;其中:[0111]接收模块210,用于接收时序指标数据;[0112]查找模块220,用于根据时序指标数据的类型,查找对应的降精度算法;[0113]处理模块230,用于根据所述降精度算法,对所述时序指标数据进行降精度处理。[0114]本技术通过在存储数据时候增加对时序指标数据对应的降精度算法。这样运维人员在不需要为每个新增指标单独创创建任务的前提下,也可以实现对时序数据的降精度存储。同时不同的时序指标数据可以根据各自的数据特点,选择不同的降精度算法,计算出合理的数据降精度结果。在数据需要做降精度处理时,用户不需要针对每个数据都添加dml语句,通过查看对应时序指标数据对应的降精度算法就可以实现自动降精度处理的效果,解决了相关技术中对时序数据进行降精度处理存在的成本较高且操作不便的问题。[0115]在其中一些实施例中,还包括第一配置模块,用于配置所述时序指标数据对应的降精度算法;将所述时序指标数据的降精度算法和所述时序指标数据的元数据信息关联。[0116]在其中一些实施例中,处理模块230还用于:[0117]检测所述时序指标数据的存储时长;[0118]在检测到所述存储时长大于预设时长后,根据查找到的降精度算法,对所述时序指标数据的元数据信息进行降精度处理。[0119]在其中一些实施例中,还包括第二配置模块,用于:配置所述时序指标数据的存储策略,所述存储策略指定所述时序指标数据在存储预设时间后进行降精度处理。[0120]在其中一些实施例中,第一配置模块还用于:[0121]在所述时序指标数据的数据写入请求中配置对应的降精度算法;或,在存储系统创建schema表时,配置所述时序指标数据对应的降精度算法。[0122]在其中一些实施例中,所述时序指标数据的降精度算法包括:[0123]max:取预设时间精度范围内所有时序指标数据的最大值;[0124]min:取预设时间精度范围内所有时序指标数据的最小值;[0125]gauge:取预设时间精度范围内所有时序指标数据中的最后一个值;[0126]sum:取预设时间精度范围内所有时序指标数据的和;[0127]avg:取预设时间精度范围内所有时序指标数据的和,以及所述预设时间精度范围内所有时序指标数据的数量中的至少一种。[0128]在其中一些实施例中,每一个所述时序指标数据对应至少一个所述降精度算法;处理模块230还用于:在检测到存储时长大于预设时长后,根据查找到的多个降精度算法,分别对所述时序指标数据的元数据信息进行降精度处理,得到多组降精度时序指标数据。[0129]需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。[0130]另外,结合图1描述的本技术实施例时序指标数据降精度处理方法可以由计算机设备来实现。图3为根据本技术实施例的计算机设备的硬件结构示意图。architecture,简称为mca)总线、外围组件互连(peripheralcomponentinterconnect,简称为pci)总线、pci‑express(pci‑x)总线、串行高级技术附件(serialadvancedtechnologyattachment,简称为sata)总线、视频电子标准协会局部(videoelectronicsstandardsassociationlocalbus,简称为vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线30可包括一个或多个总线。尽管本技术实施例描述和示出了特定的总线,但本技术考虑任何合适的总线或互连。[0139]该计算机设备可以基于获取到的程序指令,执行本技术实施例中的时序指标数据降精度处理方法,从而实现结合图1描述的时序指标数据降精度处理方法。[0140]另外,结合上述实施例中的时序指标数据降精度处理方法,本技术实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种时序指标数据降精度处理方法。[0141]以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。[0142]以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。当前第1页12当前第1页12
再多了解一些

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

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

相关文献