基于人工智能的数据归档方法、装置、设备及存储介质与流程

文档序号:28530657发布日期:2022-01-19 12:38阅读:178来源:国知局
基于人工智能的数据归档方法、装置、设备及存储介质与流程

1.本发明涉及人工智能技术领域,尤其涉及一种基于人工智能的数据归档的方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.随着网络的快速发展,其后端数据库存储的数据和占据的磁盘空间也越来越大,为了保证线上业务的正常运行,需要及时地对历史数据进行清理,以释放数据库的存储空间。
3.目前,开源分布式时序数据库,因其高性能、过期数据自动清理、支持多种聚合函数等优点,越来越多地被应用至各大网络企业中,在海量数据更新的情况下,原始数据通常会被保存一个相对较短的时间,为降低数据库的存储压力,提高数据的查询速度等,通常需要对原始数据需要进行归档处理。
4.现有的数据归档方法主要存在以下缺点:无法对存量数据进行归档,且当出现不支持归档的表类型时,不能实现全库自动归档;此外,缺乏性能监控,不能实现自动的表增加或删除操作,影响数据库的灵活性、数据归档的效率以及用户体验。


技术实现要素:

5.本发明提供一种基于人工智能的数据归档方法、装置、电子设备及计算机可读存储介质,其主要目的在于提高基于人工智能的数据归档的效率及灵活性。
6.为实现上述目的,本发明提供的一种基于人工智能的数据归档方法,包括:初始化数据归档系统,并从预设配置源中加载归档信息至所述数据归档系统中;
7.对所述归档信息进行预处理,以确定所述归档信息的自动归档规则列表;
8.基于所述数据归档系统的空闲状态信息接收对所述自动归档规则列表中的数据进行归档的归档请求;其中,所述状态信息基于预设频率采集获取;
9.基于所述归档请求遍历所述自动归档规则列表,对所述自动归档规则列表中的数据进行归档处理。
10.此外,可选的技术方案是,所述归档信息包括并发数、原始库信息和归档策略列表;其中,所述归档策略列表中的归档策略包括:
11.源库,用于表示进行归档的数据来源;
12.目标库,用于表示归档后的数据存储的位置;
13.归档周期round,用于表示数据聚合的时间周期;
14.聚合函数列表,包括平均值、最大值、p95;
15.延迟时间delay,用于表示数据集合的延迟时间;
16.初始归档时间,以及失败重试次数。
17.此外,可选的技术方案是,所述在所述数据归档系统中对所述归档信息进行预处理,以确定所述归档信息的自动归档规则列表包括:
18.在所述数据归档系统中对所述归档信息中的归档策略进行汇总,形成初始列表;
19.按照预设规则对所述初始列表中的归档策略进行排序,以确定所述归档信息的自动归档规则列表;其中,
20.所述预设规则包括:将源库是原始库的归档策略排在前面,剩余的归档策略满足当前归档策略的前一个归档策略的目标库为所述当前归档策略的后一个归档策略的源库的准则。
21.此外,可选的技术方案是,在所述归档请求发送之后,且遍历所述自动归档规则列表之前,还包括对所述原始库中的数据表进行筛选的过程,所述筛选的过程包括:
22.获取当前时间t时,所述原始库中的所有数据表,并形成表集合ms;
23.遍历所述表集合ms,并基于last函数获取与各数据表相对应的最新值;
24.判断各最新值的类型,并基于所述类型过滤不符合归档条件的数据表;
25.其中,如果所述数据表的最新值的类型不是数字类型,则表明与该最新值对应的数据表不符合归档条件。
26.此外,可选的技术方案是,对所述自动归档规则列表中的数据进行归档处理的过程包括:
27.获取当前归档策略的归档进度,若所述归档进度为空,则将所述归档进度设为所述当前归档策略的初始归档时间;
28.判断所述当前归档策略的源库是否为原始库,如果不是则继续寻找第二归档策略,并使所述第二归档策略的目标库为所述当前归档策略的源库;
29.获取所述第二归档策略的归档进度,并判断所述第二归档策略的归档进度是否小于本轮归档时间,如果所述第二归档策略的归档进度小于本轮归档时间则结束当前流程,否则,执行下一步;
30.判断本轮归档时间和当前时间t的关系,若当前时间t<本轮归档时间+延迟时间,则结束当前流程;否则,对所述当前归档策略对应的数据进行一轮归档操作。
31.此外,可选的技术方案是,所述对所述当前归档策略对应的数据进行一轮归档操作的过程包括:
32.基于所述控制模块创建任务队列,并根据所述表集合ms生成多个任务,并将多个任务放入所述任务队列中;其中,所述任务的内容包括数据表、归档策略、上次归档时间、本轮归档时间;
33.基于所述控制模块创建统计队列,以及按照所述归档信息中的并发数,创建并启动多个工作线程;
34.通过所述工作线程从所述任务队列中获取对应的任务信息,并基于所述任务信息以及所述自动归档规则列表,按照归档策略的顺序进行数据归档。
35.此外,可选的技术方案是,所述通过所述工作线程从所述任务队列中获取对应的任务信息,并基于所述任务信息以及所述自动归档规则列表,按照归档策略的顺序进行数据归档的过程包括:
36.基于所述任务信息,对所述当前归档策略对应的源库中的数据表进行预处理,获取对应的数据点;
37.将所述数据点保存至与所述源库对应的目标库中,完成当前源库的数据表的归档
作业;
38.按照归档策略的顺序,重复执行上述步骤直至所有的数据表均归档完毕。
39.为了解决上述问题,本发明还提供一种基于人工智能的数据归档装置,所述装置包括:初始化单元,用于初始化数据归档系统,并从预设配置源中加载归档信息至所述数据归档系统中;
40.自动归档规则列表确定单元,用于对所述归档信息进行预处理,以确定所述归档信息的自动归档规则列表;
41.归档请求发送单元,用于基于所述数据归档系统的空闲状态信息接收对所述自动归档规则列表中的数据进行归档的归档请求;其中,所述状态信息基于预设频率采集获取;
42.数据归档单元,用于基于所述归档请求遍历所述自动归档规则列表,对所述自动归档规则列表中的数据进行归档处理。
43.为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
44.存储器,存储至少一个指令;及
45.处理器,执行所述存储器中存储的指令以实现上述所述的基于人工智能的数据归档方法。
46.为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现上述所述的基于人工智能的数据归档方法。
47.本发明实施例通过初始化数据归档系统,从预设配置源中加载归档信息至所述数据归档系统中,然后对所述归档信息进行预处理,以确定自动归档规则列表;并基于预设频率采集初始化后的数据归档系统的空闲状态信息接收对所述自动归档规则列表中的数据进行归档的归档请求,最后基于到所述归档请求遍历所述自动归档规则列表,对所述自动归档规则列表中的数据进行归档处理,支持基于归档数据的二次归档,能自适应源库的进度,且支持存量数据归档、并发数控制,并记录每轮归档的运行详情及统计数据,提供较为完整的全局的、表级别的自监控,提高数据归档的效率及用户体验。
附图说明
48.图1为本发明一实施例的基于人工智能的数据归档方法的流程示意图;
49.图2为本发明一实施例的数据归档系统的原理框图;
50.图3为本发明一实施例的自动归档策略列表的结构示意图;
51.图4为本发明一实施例的基于人工智能的数据归档装置的模块示意图;
52.图5为本发明一实施例提供的实现基于人工智能的数据归档方法的电子设备的内部结构示意图;
53.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
54.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
55.为解决现有数据归档存在的无法对存量数据进行归档,且当出现不支持归档的表类型时,不能实现全库自动归档;此外,缺乏性能监控,不能实现自动的表增加或删除操作,
影响归档效率等问题,本发明提供一种基于人工智能的基于人工智能的数据归档方法,能够基于自动归档规则列表对全库进行数据归档,并忽略已废弃的数据,操作灵活,效率高。
56.本发明实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
57.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
58.本发明提供一种基于人工智能的数据归档方法。参照图1所示,为本发明一实施例提供的基于人工智能的数据归档方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
59.在本实施例中,基于人工智能的数据归档方法包括:
60.s100:初始化数据归档系统,并从预设配置源中加载归档信息至所述数据归档系统中。
61.其中,数据归档系统进一步包括初始化模块、定时模块、控制模块、工作线程和统计模块;在对数据归档系统进行初始化时,可从预设配置文件或其它的预设配置源中加载并发数、原始库信息、归档策略列表等归档信息,以便后续对数据的自动归档处理。
62.作为具体示例,图2示出了根据本发明一实施例的数据归档系统的示意原理框图。
63.如图2所示,其中的influxdb系统内包括有多种类型的数据库,即源库、目标库等数据库均是处于influxdb系统中的,原始库主要是指最原始的数据库,其中的数据未进行归档处理过,但是,其他的数据库中的数据均是基于原始库或其它库进行归档处理后的。其中,初始化模块用于初始化数据归档系统;控制模块用于根据归档请求创建工作线程,并进行数据归档处理;定时模块,用于定时判断控制模块的状态,以能够在控制模块处于空闲状态时,向器发送归档请求;统计模块用于获取归档的统计数据,计算对应的总耗时、总写入量、最小最大耗时等数据。
64.具体地,每个归档策略的数据结构均可包括以下参数:
65.1、源库,用于表示用于表示进行归档的数据来源;
66.2、目标库,用于表示归档后的数据存储的位置;
67.3、归档周期round,用于数据聚合的时间周期;
68.4、聚合函数列表,包括平均值、最大值、p95等;
69.5、延迟时间delay,用于表示数据集合的延迟时间;
70.6、初始归档时间;
71.7、失败重试次数。
72.在上述归档策略中,初始归档时间主要是用于计算数据归档的进度,而数据归档的进度计算可包括:首先查询该归档策略的归档进度,若进度为空,表示该归档策略未运行过,则进一步判断初始归档时间;若初始归档时间也为空,表示不对存储数据进行归档,进而将归档进度设为当前时间,否则将归档进度设置为初始归档时间。
73.s200:对所述归档信息进行预处理,以确定所述归档信息的自动归档规则列表。
74.其中,所述对所述归档信息进行预处理,以确定自动归档规则列表包括:
75.s210:对所述归档信息中的归档策略进行汇总,形成初始列表;
76.s220:按照预设规则对所述初始列表中的归档策略进行排序,以确定所述自动归档规则列表;其中,
77.所述预设规则包括:将源库是原始库的所述归档策略排在前面,剩余的归档策略满足当前归档策略的前一个归档策略的目标库为所述当前归档策略的后一个归档策略的源库的准则,基于上述预设规则对所有的归档策略进行排序即可。
78.此外,如果存在归档策略的源库不属于原始库也不是其余归档策略的目标库时,则将该归档策略标记为无效策略,无效的归档策略,在后续归档流程中会被忽略。进而,基于排序后的归档策略以及标记后的无效策略,确定所述自动归档规则列表。
79.作为具体示例,图3示出了根据本发明一实施例的自动归档策略列表的示意结构。
80.如图3所示,db1是原始库,归档策略列表中包含4个归档策略,其中归档策略p1的含义是,对源库db1中的数据,每5分钟时间范围求平均值、最大值,聚合出一个点,并保存到目标库db2中。延迟时间,是指当前时间要大于求值的时间范围的最右点+延迟时间,例如p1中的延迟时间为10分钟,对于时间范围[2020-06-01 12:00:00,2020-06-01 12:05:00),则当前时间要大于2020-06-01 12:15:00,才能对这个时间范围进行数据聚合。关于归档策略列表的排序,由于原始库是必定有数据的,所以将源库为原始库的策略排在前面,优先进行归档。在上述示例中,策略p1、p2依赖于db1,p3依赖于db2,p4依赖于db4,所以优先对p1或p2进行归档处理。
[0081]
s300:基于所述数据归档系统的空闲状态信息接收对所述自动归档规则列表中的数据进行归档的归档请求;其中,所述状态信息基于预设频率采集获取。
[0082]
其中,基于预设频率判断所述数据归档系统的控制模块的状态,并在所述控制模块的状态符合归档要求时,向所述控制模块发送归档请求,预设频率可根据业务场景或需求进行灵活设置,例如,每一分钟定时对控制模块的状态进行判断,若控制模块处于空闲状态,则可进一步向控制模块发送归档请求;否则,不发送归档请求。
[0083]
s400:基于所述归档请求遍历所述自动归档规则列表,对所述自动归档规则列表中的数据进行归档处理。
[0084]
具体地,待处理数据库可统一设置在influxdb中,即该influxdb中包含原始库以及其他多个数据库,原始库中的数据为最原始的数据,例如从服务器获取的监控视频数据,也可理解为未进行归档处理的数据,而其他的数据库可以是基于原始库的数据进行归档处理后的数据库,也可以是其他数据库归档之后的数据库。
[0085]
由于,原始库中的数据并不一定均符合归档要求,在控制模块接收到归档请求之后,且遍历所述自动归档规则列表之前,还包括对原始库中的表进行筛选的过程,该过程可进一步包括:
[0086]
s410:获取当前时间t时,所述原始库中的所有数据表,并形成表集合ms;
[0087]
s420:遍历所述表集合ms,并基于last函数获取与各数据表相对应的最新值;
[0088]
s430:判断各最新值的类型,并基于所述类型过滤不符合归档条件的数据表。其中,如果所述数据表的最新值的类型不是数字类型,则表明与该最新值对应的数据表不符
合归档条件。
[0089]
具体地,由于在influxdb的各个数据库中,只有原始库中的数据是未进行归档处理过的,因此,在归档之前需要对该原始库中的数据进行筛选,而其他的数据库均是基于原始库或其他数据库归档之后的数据,因此,可以不对这类的数据库进行数据筛选操作,其内的数据可默认均是符合归档要求的。
[0090]
进而,通过last函数获取原始库中的各个表的最新值,如果该最新值的类型不是数字类型,则表明对应的该表不符合归档要求,可直接对此类的表进行过滤处理,以防其影响后续的归档操作。
[0091]
最后,在对待处理数据进行归档处理的过程中,所述控制模块以串行方式顺序遍历所述自动归档规则列表,对单个的归档策略进行归档处理。
[0092]
在本发明的一个具体实施方式中,对所述自动归档规则列表中的数据进行归档处理的过程包括:
[0093]
s440:获取当前归档策略的归档进度,若所述归档进度为空,则将所述归档进度设为所述当前归档策略的初始归档时间。
[0094]
s450:判断所述当前归档策略的源库是否为原始库,如果不是则继续寻找第二归档策略,并使第二归档策略的目标库为所述当前归档策略的源库。
[0095]
其中,当前归档策略的源库不是原始库,则表明源库的数据是其他归档策略形成的,故需要找出对应的第二归档策略,并对第二归档策略的进度判断,判断第二归档策略的源库数据是否能够进行当前归档策略的归档操作。
[0096]
此外,如果当前归档策略的源库是原始库,则执行下述步骤s460;如果第二归档策略不存在,则结束当前流程;以确保当前归档策略的源库先进行归档处理,进而才可确保本次归档的顺利进行。
[0097]
s460:获取所述第二归档策略的归档进度,并判断所述第二归档策略的归档进度是否小于本轮归档时间,如果所述第二归档策略的归档进度小于本轮归档时间则结束当前流程,否则,执行下一步。
[0098]
其中,本轮归档时间可基于上次归档时间和归档周期来确定,本轮归档时间=上次归档时间+归档周期。
[0099]
s470:判断本轮归档时间和当前时间t的关系,若当前时间t<本轮归档时间+延迟时间,则结束当前流程;否则,对所述当前归档策略对应的数据进行一轮归档操作。
[0100]
其中,若当前归档策略操作失败,则结束该流程,否则,记录当前归档策略的归档进度=本轮归档时间,然后重复上述步骤直至所有的归档策略均执行完毕为止。
[0101]
作为示例,每一个round表示一个归档周期,初始归档时间为第一归档周期的开始时间,每次的归档操作均是对一段时间进行归档,若当前时间>本轮归档时间+延迟时间,则对[上次归档时间,本轮归档时间)时间段内的数据进行归档处理。
[0102]
其中,可通过数据归档系统中的定时模块和归档进度保证最新数据的及时归档、异常恢复,在正常情况下,刚配置的自动归档,由于没有归档进度可言,因此会从初始归档时间开始,一段一段的时间进行递进,对数据进行归档直至当前时间为止;进而,在后续定时触发归档时,当当前时间再次大于归档进度+延迟时间的时候,对新的一段时间内的数据进行归档;而异常恢复主要是指,在流程终端或程序异常的情况下,进行异常恢复并继续处
理。
[0103]
进一步地,所述对所述当前归档策略对应的数据进行一轮归档操作的过程包括:
[0104]
s471:基于所述控制模块创建任务队列,并根据所述表集合ms生成多个任务,并将多个任务放入所述任务队列中;其中,所述任务的内容包括数据表、归档策略、上次归档时间、本轮归档时间;
[0105]
s472:基于所述控制模块创建统计队列,以及按照所述归档信息中的并发数,创建并启动多个工作线程;
[0106]
s473:通过所述工作线程从所述任务队列中获取对应的任务信息,并基于所述任务信息以及所述自动归档规则列表,按照归档策略的顺序进行数据归档。
[0107]
上述步骤s473中,所述通过所述工作线程从所述任务队列中获取对应的任务信息,并基于所述任务信息以及所述自动归档规则列表,按照归档策略的顺序进行数据归档的过程可包括:
[0108]
s4731:基于所述任务信息,对所述当前归档策略对应的源库中的数据表进行预处理,获取对应的数据点;
[0109]
其中,数据点的获取过程可包括:将所述源库在[上次归档时间,本轮归档时间)段内的监控项,通过聚合函数聚合为一个点,即形成对应的数据点。
[0110]
s4732:将所述数据点保存至与所述源库对应的目标库中,完成当前源库的数据表的归档作业;
[0111]
s4733:按照归档策略的顺序,重复执行上述步骤直至所有的数据表均归档完毕。
[0112]
具体地,若归档成功,则对应的记录本次归档的表名、耗时、写入时间量,并放入所述统计队列中,然后重新获取任务并执行;直至任务队列为空,则向控制模块发送完成信号,并结束线程。否则,如果归档失败,则对失败的错误类型进行判断:a、若错误类型为数据类型错误,则忽略本次失败,并重新获取新的任务;其中,数据类型错误,是指用户上报的数据类型属于非数字类型,与原来的数据类型冲突,会导致统计异常;b、若为超时错误,则将所述聚合函数分开执行,若再次超时,则将所述监控项也分开执行;如果执行成功则继续进行归档,否则向控制模块发送异常信息,并结束线程。c、其他错误,向控制模块发送异常信息,并结束线程。
[0113]
具体地,在工作线程获得了任务后,假设任务是对数据库db1中的磁盘写速度这个表,在时间范围为[2020-06-01 12:00:00,2020-06-01 12:05:00)内,计算平均数、最大值、最小值、p95,则这里的监控项可能是物理机a的sda盘、物理机a的sdb盘、物理机c的sdd盘等。源库假设是1分钟1个点,则该时间范围内,每个监控项有5个点,计算聚合出1个点,是指这5分钟内的平均值、最大值、最小值、p95。更具体是指,通过构造语句,将源库、表、聚合函数等作为参数,发送给influxdb进行执行。
[0114]
当出现超时错误时,可将聚合函数分开执行,是指分别计算平均值、最大值、最小值、p95,例如上一例中要计算平均值、最大值、最小值、p95,则需要将执行的语句分成4句,分别进行计算;对应的将监控项分开执行,是指对这个表里的每一个监控项,分别生成语句并执行。
[0115]
进一步地,当控制模块接收到异常信息后,则同时各个线程结束归档,并记录失败信息;若控制模块接收到所有线程的完成信号,则表示本轮归档成功,并更新当前归档策略
的归档进度,并通知统计模块进行统计汇总。统计模块可从统计队列中拉取统计数据,计算总耗时、总写入量、最小耗时、最大耗时等数据。
[0116]
本发明提供的技术人工智能的数据自动归档方法,基于influxdb,以策略的方式对全库进行归档;能将用户上报的新的监控指标、监控项纳入归档范围,并忽略已废弃的监控指标及监控项,无须再重新设定规则;支持基于归档数据的二次归档,能自适应源库的进度;支持存量数据归档、并发数控制,并记录每轮归档的运行详情及统计数据,提供较为完整的全局的、表级别的自监控。
[0117]
如图4所示,是本发明基于人工智能的数据归档装置的功能模块图。
[0118]
本发明所述基于人工智能的数据归档装置100可以安装于电子设备中。根据实现的功能,所述基于人工智能的数据归档装置可以包括初始化单元101、自动归档规则列表确定单元102、归档请求发送单元103和数据归档单元104。本发所述单元也可以称之为模块,其主要是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
[0119]
在本实施例中,关于各模块/单元的功能如下:
[0120]
初始化单元101,用于初始化数据归档系统,并从预设配置源中加载归档信息至所述数据归档系统中。
[0121]
其中,数据归档系统进一步包括初始化模块、定时模块、控制模块、工作线程和统计模块;在对数据归档系统进行初始化时,可从预设配置文件或其它的预设配置源中加载并发数、原始库信息、归档策略列表等归档信息,以便后续对数据的自动归档处理。
[0122]
作为具体示例,如图2所示,其中的influxdb系统内包括有多种类型的数据库,即源库、目标库等数据库均是处于influxdb系统中的,原始库主要是指最原始的数据库,其中的数据未进行归档处理过,但是,其他的数据库中的数据均是基于原始库或其它库进行归档处理后的。其中,初始化模块用于初始化数据归档系统;控制模块用于根据归档请求创建工作线程,并进行数据归档处理;定时模块,用于定时判断控制模块的状态,以能够在控制模块处于空闲状态时,向器发送归档请求;统计模块用于获取归档的统计数据,计算对应的总耗时、总写入量、最小最大耗时等数据。
[0123]
具体地,每个归档策略的数据结构均可包括以下参数:
[0124]
1、源库,用于表示用于表示进行归档的数据来源;
[0125]
2、目标库,用于表示归档后的数据存储的位置;
[0126]
3、归档周期round,用于数据聚合的时间周期;
[0127]
4、聚合函数列表,包括平均值、最大值、p95等;
[0128]
5、延迟时间delay,用于表示数据集合的延迟时间;
[0129]
6、初始归档时间;
[0130]
7、失败重试次数。
[0131]
在上述归档策略中,初始归档时间主要是用于计算数据归档的进度,而数据归档的进度计算可包括:首先查询该归档策略的归档进度,若进度为空,表示该归档策略未运行过,则进一步判断初始归档时间;若初始归档时间也为空,表示不对存储数据进行归档,进而将归档进度设为当前时间,否则将归档进度设置为初始归档时间。
[0132]
自动归档规则列表确定单元102,用于对所述归档信息进行预处理,以确定所述归
档信息的自动归档规则列表。
[0133]
其中,该单元可进一步包括以下模块:
[0134]
初始列表形成模块,用于对所述归档信息中的归档策略进行汇总,形成初始列表;
[0135]
自动归档规则列表确定模块,用于按照预设规则对所述初始列表中的归档策略进行排序,以确定所述自动归档规则列表;其中,
[0136]
所述预设规则包括:将源库是原始库的所述归档策略排在前面,剩余的归档策略满足当前归档策略的前一个归档策略的目标库为所述当前归档策略的后一个归档策略的源库的准则,基于上述预设规则对所有的归档策略进行排序即可。
[0137]
此外,如果存在归档策略的源库不属于原始库也不是其余归档策略的目标库时,则将该归档策略标记为无效策略,无效的归档策略,在后续归档流程中会被忽略。进而,基于排序后的归档策略以及标记后的无效策略,确定所述自动归档规则列表。
[0138]
作为具体示例,如图3所示,db1是原始库,归档策略列表中包含4个归档策略,其中归档策略p1的含义是,对源库db1中的数据,每5分钟时间范围求平均值、最大值,聚合出一个点,并保存到目标库db2中。延迟时间,是指当前时间要大于求值的时间范围的最右点+延迟时间,例如p1中的延迟时间为10分钟,对于时间范围[2020-06-01 12:00:00,2020-06-01 12:05:00),则当前时间要大于2020-06-01 12:15:00,才能对这个时间范围进行数据聚合。关于归档策略列表的排序,由于原始库是必定有数据的,所以将源库为原始库的策略排在前面,优先进行归档。在上述示例中,策略p1、p2依赖于db1,p3依赖于db2,p4依赖于db4,所以优先对p1或p2进行归档处理。
[0139]
归档请求发送单元103,用于基于所述数据归档系统的空闲状态信息接收对所述自动归档规则列表中的数据进行归档的归档请求;其中,所述状态信息基于预设频率采集获取。
[0140]
其中,基于预设频率判断所述数据归档系统的控制模块的状态,并在所述控制模块的状态符合归档要求时,向所述控制模块发送归档请求,预设频率可根据业务场景或需求进行灵活设置,例如,每一分钟定时对控制模块的状态进行判断,若控制模块处于空闲状态,则可进一步向控制模块发送归档请求;否则,不发送归档请求。
[0141]
数据归档单元104,用于基于所述归档请求遍历所述自动归档规则列表,对所述自动归档规则列表中的数据进行归档处理。
[0142]
具体地,待处理数据库可统一设置在influxdb中,即该influxdb中包含原始库以及其他多个数据库,原始库中的数据为最原始的数据,例如从服务器获取的监控视频数据,也可理解为未进行归档处理的数据,而其他的数据库可以是基于原始库的数据进行归档处理后的数据库,也可以是其他数据库归档之后的数据库。
[0143]
由于,原始库中的数据并不一定均符合归档要求,在控制模块接收到归档请求之后,且遍历所述自动归档规则列表之前,还包括对原始库中的表进行筛选的过程,该过程可进一步包括:
[0144]
表集合形成模块,用于获取当前时间t时,所述原始库中的所有数据表,并形成表集合ms;
[0145]
最新值获取模块,用于遍历所述表集合ms,并基于last函数获取与各数据表相对应的最新值;
[0146]
过滤模块,用于判断各最新值的类型,并基于所述类型过滤不符合归档条件的数据表。其中,如果所述数据表的最新值的类型不是数字类型,则表明与该最新值对应的数据表不符合归档条件。
[0147]
具体地,由于在influxdb的各个数据库中,只有原始库中的数据是未进行归档处理过的,因此,在归档之前需要对该原始库中的数据进行筛选,而其他的数据库均是基于原始库或其他数据库归档之后的数据,因此,可以不对这类的数据库进行数据筛选操作,其内的数据可默认均是符合归档要求的。
[0148]
进而,通过last函数获取原始库中的各个表的最新值,如果该最新值的类型不是数字类型,则表明对应的该表不符合归档要求,可直接对此类的表进行过滤处理,以防其影响后续的归档操作。
[0149]
最后,在对待处理数据进行归档处理的过程中,所述控制模块以串行方式顺序遍历所述自动归档规则列表,对单个的归档策略进行归档处理。
[0150]
在本发明的一个具体实施方式中,对所述自动归档规则列表中的数据进行归档处理的过程包括:
[0151]
归档进度获取模块,用于获取当前归档策略的归档进度,若所述归档进度为空,则将所述归档进度设为所述当前归档策略的初始归档时间。
[0152]
判断模块,用于判断所述当前归档策略的源库是否为原始库,如果不是则继续寻找第二归档策略,并使第二归档策略的目标库为所述当前归档策略的源库。
[0153]
其中,当前归档策略的源库不是原始库,则表明源库的数据是其他归档策略形成的,故需要找出对应的第二归档策略,并对第二归档策略的进度判断,判断第二归档策略的源库数据是否能够进行当前归档策略的归档操作。
[0154]
此外,如果当前归档策略的源库是原始库,则执行下述步骤s460;如果第二归档策略不存在,则结束当前流程;以确保当前归档策略的源库先进行归档处理,进而才可确保本次归档的顺利进行。
[0155]
归档进度获取模块,用于获取所述第二归档策略的归档进度,并判断所述第二归档策略的归档进度是否小于本轮归档时间,如果所述第二归档策略的归档进度小于本轮归档时间则结束当前流程,否则,执行下一步。
[0156]
其中,本轮归档时间可基于上次归档时间和归档周期来确定,本轮归档时间=上次归档时间+归档周期。
[0157]
归档模块,用于判断本轮归档时间和当前时间t的关系,若当前时间t<本轮归档时间+延迟时间,则结束当前流程;否则,对所述当前归档策略对应的数据进行一轮归档操作。
[0158]
其中,若当前归档策略操作失败,则结束该流程,否则,记录当前归档策略的归档进度=本轮归档时间,然后重复上述步骤直至所有的归档策略均执行完毕为止。
[0159]
作为示例,每一个round表示一个归档周期,初始归档时间为第一归档周期的开始时间,每次的归档操作均是对一段时间进行归档,若当前时间>本轮归档时间+延迟时间,则对[上次归档时间,本轮归档时间)时间段内的数据进行归档处理。
[0160]
其中,可通过数据归档系统中的定时模块和归档进度保证最新数据的及时归档、异常恢复,在正常情况下,刚配置的自动归档,由于没有归档进度可言,因此会从初始归档
时间开始,一段一段的时间进行递进,对数据进行归档直至当前时间为止;进而,在后续定时触发归档时,当当前时间再次大于归档进度+延迟时间的时候,对新的一段时间内的数据进行归档;而异常恢复主要是指,在流程终端或程序异常的情况下,进行异常恢复并继续处理。
[0161]
进一步地,上述归档模块进一步包括:
[0162]
任务队列创建模块,用于基于所述控制模块创建任务队列,并根据所述表集合ms生成多个任务,并将多个任务放入所述任务队列中;其中,所述任务的内容包括数据表、归档策略、上次归档时间、本轮归档时间;
[0163]
工作线程创建模块,用于基于所述控制模块创建统计队列,以及按照所述归档信息中的并发数,创建并启动多个工作线程;
[0164]
数据归档模块,用于通过所述工作线程从所述任务队列中获取对应的任务信息,并基于所述任务信息以及所述自动归档规则列表,按照归档策略的顺序进行数据归档。
[0165]
上述数据归档模块中,所述通过所述工作线程从所述任务队列中获取对应的任务信息,并基于所述任务信息以及所述自动归档规则列表,按照归档策略的顺序进行数据归档的过程可包括:
[0166]
首先,基于所述任务信息,对所述当前归档策略对应的源库中的数据表进行预处理,获取对应的数据点;
[0167]
其中,数据点的获取过程可包括:将所述源库在[上次归档时间,本轮归档时间)段内的监控项,通过聚合函数聚合为一个点,即形成对应的数据点。
[0168]
其次,将所述数据点保存至与所述源库对应的目标库中,完成当前源库的数据表的归档作业;
[0169]
最后,按照归档策略的顺序,重复执行上述步骤直至所有的数据表均归档完毕。
[0170]
具体地,若归档成功,则对应的记录本次归档的表名、耗时、写入时间量,并放入所述统计队列中,然后重新获取任务并执行;直至任务队列为空,则向控制模块发送完成信号,并结束线程。否则,如果归档失败,则对失败的错误类型进行判断:a、若错误类型为数据类型错误,则忽略本次失败,并重新获取新的任务;其中,数据类型错误,是指用户上报的数据类型属于非数字类型,与原来的数据类型冲突,会导致统计异常;b、若为超时错误,则将所述聚合函数分开执行,若再次超时,则将所述监控项也分开执行;如果执行成功则继续进行归档,否则向控制模块发送异常信息,并结束线程。c、其他错误,向控制模块发送异常信息,并结束线程。
[0171]
具体地,在工作线程获得了任务后,假设任务是对数据库db1中的磁盘写速度这个表,在时间范围为[2020-06-01 12:00:00,2020-06-01 12:05:00)内,计算平均数、最大值、最小值、p95,则这里的监控项可能是物理机a的sda盘、物理机a的sdb盘、物理机c的sdd盘等。源库假设是1分钟1个点,则该时间范围内,每个监控项有5个点,计算聚合出1个点,是指这5分钟内的平均值、最大值、最小值、p95。更具体是指,通过构造语句,将源库、表、聚合函数等作为参数,发送给influxdb进行执行。
[0172]
当出现超时错误时,可将聚合函数分开执行,是指分别计算平均值、最大值、最小值、p95,例如上一例中要计算平均值、最大值、最小值、p95,则需要将执行的语句分成4句,分别进行计算;对应的将监控项分开执行,是指对这个表里的每一个监控项,分别生成语句
并执行。
[0173]
进一步地,当控制模块接收到异常信息后,则同时各个线程结束归档,并记录失败信息;若控制模块接收到所有线程的完成信号,则表示本轮归档成功,并更新当前归档策略的归档进度,并通知统计模块进行统计汇总。统计模块可从统计队列中拉取统计数据,计算总耗时、总写入量、最小耗时、最大耗时等数据。
[0174]
如图5所示,是本发明实现基于人工智能的数据归档方法的电子设备的结构示意图。
[0175]
所述电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如基于人工智能的数据归档程序12。
[0176]
其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:sd或dx存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(smart media card,smc)、安全数字(secure digital,sd)卡、闪存卡(flash card)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如基于人工智能的数据归档程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
[0177]
所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(central processing unit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(control unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如基于人工智能的数据归档程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。
[0178]
所述总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
[0179]
图5仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图5示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
[0180]
例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。
[0181]
进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括
有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。
[0182]
可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(display)、输入单元(比如键盘(keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light-emitting diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
[0183]
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
[0184]
所述电子设备1中的所述存储器11存储的基于人工智能的数据归档程序12是多个指令的组合,在所述处理器10中运行时,可以实现:
[0185]
初始化数据归档系统,并从预设配置源中加载归档信息至所述数据归档系统中;
[0186]
对所述归档信息进行预处理,以确定所述归档信息的自动归档规则列表;
[0187]
基于所述数据归档系统的空闲状态信息接收对所述自动归档规则列表中的数据进行归档的归档请求;其中,所述状态信息基于预设频率采集获取;
[0188]
基于所述归档请求遍历所述自动归档规则列表,对所述自动归档规则列表中的数据进行归档处理。
[0189]
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)。
[0190]
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0191]
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0192]
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0193]
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
[0194]
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
[0195]
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用
来表示名称,而并不表示任何特定的顺序。
[0196]
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1