基于大数据的生产库数据统一清理方法及相关设备与流程

文档序号:18301627发布日期:2019-07-31 10:13阅读:174来源:国知局
基于大数据的生产库数据统一清理方法及相关设备与流程

本发明涉及大数据技术领域,尤其涉及一种基于大数据的生产库数据统一清理方法及相关设备。



背景技术:

现有的一些项目,比如电话销售系统,由于历史需求设计纷繁,项目生产数据量日益增大,导致到表数据查询时,查询速度日渐变慢,因此对历史数据清理是一项重要的清理任务。而现有的业务系统目前自己的数据清理程序多设定在自己系统中,需要更改数据清理程序时,只能自行进行版本更新完成,不能达到即时即用的目的。



技术实现要素:

有鉴于此,有必要针对一些系统的数据量大,查询数据速度缓慢,清理不便的问题,提供一种基于大数据的生产库数据统一清理方法及相关设备。

一种基于大数据的生产库数据统一清理方法,包括:

接收用户发送的配置信息,将所述配置信息记录到配置数据表中,所述配置信息包括业务系统编码、业务系统数据库连接池、清理任务定时时间、数据清理脚本;

读取所述配置数据表,根据所述配置数据表中的配置信息批量生成多个清理任务,一个所述清理任务对应一项所述配置信息;

开启多个子线程,通过所述子线程读取所述清理任务,根据所述清理任务中的清理任务定时时间,连接所述业务系统编码对应的业务系统,对所述业务系统数据库连接池中的数据执行所述数据清理脚本。

一种可能的设计中,所述接收用户发送的配置信息,将所述配置信息记录到配置数据表中,所述配置信息包括业务系统编码、业务系统数据库连接池、清理任务定时时间、数据清理脚本,包括:

接收用户发送的配置请求,展示登陆页面,通过所述登陆页面获取用户输入的账密信息;

验证所述账密信息,若未通过验证,则返回错误提示,若通过验证,则判断所述账密信息对应的权限,若具有配置权限,则展示配置页面,否则返回错误提示;

通过所述配置页面获取用户输入的配置信息,将所述配置信息记录到所述配置数据表中。

一种可能的设计中,还包括:

接收用户发送的更改请求,展示登陆页面,通过所述登陆页面获取用户输入的账密信息;

验证所述账密信息,若未通过验证,则返回错误提示,若通过验证,则判断所述账密信息对应的权限,若具有更改权限,则展示更改页面,否则返回错误提示;

通过所述更改页面获取用户输入的更改信息,所述更改信息包括执行更新时间、业务系统编码、及与所述业务系统编码对应的业务系统数据库连接池、清理任务定时时间或数据清理脚本中的至少一项,判断所述账密信息对应是否具有更改所述业务系统编码对应的业务系统的权限,若不具有更改权限,则返回错误提示;

若具有更改权限,则将所述更改信息添加入所述配置数据表中所述业务系统编码对应的配置信息中。

一种可能的设计中,所述若具有更改权限,则将所述更改信息添加入所述配置数据表中所述业务系统编码对应的配置信息中,包括:

读取所述配置数据表中所述业务系统编码对应的配置信息中的清理任务定时时间,判断所述执行更新时间与所述清理任务定时时间之间的时间差是否超过预设的时间阈值,若不超过,则返回错误提示;

若超过,则将所述更改信息添加入所述配置数据表中所述业务系统编码对应的配置信息中。

一种可能的设计中,所述读取所述配置数据表,根据所述配置数据表中的配置信息批量生成多个清理任务,一个所述清理任务对应一项所述配置信息,包括:

逐个读取所述配置数据表中的配置信息,获取所述配置信息中的所述业务系统编码、所述业务系统数据库连接池、所述清理任务定时时间和所述数据清理脚本;

调用预设的任务模板,将所述配置信息中的所述业务系统编码、所述业务系统数据库连接池、所述清理任务定时时间和所述数据清理脚本分别赋值给所述任务模板中的变量,生成一个清理任务,将所述清理任务放入任务池中;

遍历所述配置数据表,每个所述配置信息均生成一个对应的清理任务,并将生成的所述清理任务放入任务池中。

一种可能的设计中,还包括:

定时对所述配置数据表进行检索,依次获取每个更改信息,判断当前时间是否到达所述更改信息中的执行更新时间;

若到达或超过,则读取所述配置信息对应的清理任务,根据更改信息更改所述清理任务中的所述业务系统数据库连接池、所述清理任务定时时间或所述数据清理脚本中的至少一项,生成一个新的清理任务,将所述清理任务放入任务池中;

将所述配置数据表中的更改信息覆盖对应的配置信息后,删除更改信息。

一种可能的设计中,所述开启多个子线程,通过所述子线程读取所述清理任务,根据所述清理任务中的清理任务定时时间,连接所述业务系统编码对应的业务系统,对所述业务系统数据库连接池中的数据执行所述数据清理脚本,包括:

开启多个子线程,将多个子线程放入工作线程池;

读取所述工作线程池中的一个子线程,读取所述任务池中的一个清理任务,将所述清理任务分配给所述子线程执行;

通过所述子线程根据所述清理任务中的清理任务定时时间,定时连接所述业务系统编码对应的业务系统,对所述业务系统数据库连接池中的数据执行所述数据清理脚本;

当所述子线程完成所述清理任务后,将所述子线程再次放入工作线程池中。

一种基于大数据的生产库数据统一清理装置,包括:

获取信息模块,用于接收用户发送的配置信息,将所述配置信息记录到配置数据表中,所述配置信息包括业务系统编码、业务系统数据库连接池、清理任务定时时间、数据清理脚本;

生成清理任务模块,用于读取所述配置数据表,根据所述配置数据表中的配置信息批量生成多个清理任务,一个所述清理任务对应一项所述配置信息;

清理数据模块,用于开启多个子线程,通过所述子线程读取所述清理任务,根据所述清理任务中的清理任务定时时间,连接所述业务系统编码对应的业务系统,对所述业务系统数据库连接池中的数据执行所述数据清理脚本。

一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述基于大数据的生产库数据统一清理方法的步骤。

一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述基于大数据的生产库数据统一清理方法的步骤。

上述基于大数据的生产库数据统一清理方法及相关设备,包括接收用户发送的配置信息,将所述配置信息记录到配置数据表中,所述配置信息包括业务系统编码、业务系统数据库连接池、清理任务定时时间、数据清理脚本;读取所述配置数据表,根据所述配置数据表中的配置信息批量生成多个清理任务,一个所述清理任务对应一项所述配置信息;开启多个子线程,通过所述子线程读取所述清理任务,根据所述清理任务中的清理任务定时时间,连接所述业务系统编码对应的业务系统,对所述业务系统数据库连接池中的数据执行所述数据清理脚本。本发明统一管理所有数据清理任务,完成各个业务系统的数据清理工作,业务系统自身不进行数据的清理任务,若数据清理脚本发生更改,也无需进行业务系统的版本更新,只要更新对应清理任务的数据清理脚本即可,本发明的数据清理工作相对独立,数据清理脚本的维护更为简单方便。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。

图1为本发明一个实施例中的基于大数据的生产库数据统一清理方法的流程图;

图2为本发明一个实施例中基于大数据的生产库数据统一清理装置的结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。

图1为本发明一个实施例中的基于大数据的生产库数据统一清理方法的流程图,如图1所示,一种基于大数据的生产库数据统一清理方法,包括以下步骤:

步骤s1,获取信息:接收用户发送的配置信息,将配置信息记录到配置数据表中,配置信息包括业务系统编码、业务系统数据库连接池、清理任务定时时间、数据清理脚本。

本步骤的主体可以是页面管理项目数据平台,平台预设有一张配置数据表,用于存储各项配置信息。平台通过web前端网页接收用户发送的配置信息,将配置信息添加入预设的配置数据表中,平台在获取配置信息时,采用如下方式:

在一个实施例中,步骤s1,包括:

步骤s101,接收配置请求:接收用户发送的配置请求,展示登陆页面,通过登陆页面获取用户输入的账密信息。

外部业务系统的用户可以通过web前端页面访问平台,由于对清理任务的配置不是所有用户都可以操作,平台通过展示登陆页面获取用户的账密信息来确定用户是否具有配置权限。

步骤s102,验证账密信息:验证账密信息,若未通过验证,则返回错误提示,若通过验证,则判断账密信息对应的权限,若具有配置权限,则展示配置页面,否则返回错误提示。

在进行本步骤之前,业务系统的用户可以在平台上注册操作角色,每个操作角色可以绑定多个账号,平台给予操作角色和多个账号具有此业务系统配置或更改的权限。

本步骤中的配置页面可以包括业务系统编码字段、业务系统数据库连接池字段、清理任务定时时间字段、数据清理脚本上传入口等信息。业务系统的用户通过配置页面输入配置信息,其中业务系统编码为此业务系统的具体编码,是业务系统和平台预先设定的编码,例如电话销售系统的业务系统编码tm001。业务系统数据库连接池为业务系统需要清理的数据库路径。清理任务定时时间为业务系统需要清理的时间,例如每天的凌晨1点开始清理,或每一周的周日晚上11点开始清理。数据清理脚本为业务系统需要清理的具体清理程序,可以采用sql脚本实现。

步骤s103,记录配置信息:通过配置页面获取用户输入的配置信息,将配置信息记录到配置数据表中。

本步骤在获取到用户输入的配置信息后,还可以判断账密信息对应是否具有配置此配置信息中业务系统编码对应的业务系统的权限。若无配置权限,则返回错误提示,若有配置权限,则继续本步骤。这样可以限定业务系统对应的用户只能配置自己系统的配置信息。

本实施例通过前端页面获取外部业务系统对应的用户请求的配置信息,可以实现远程灵活的记录配置信息,任一注册于本平台的业务系统对应的用户均可以通过网页访问本平台,实现业务系统的远程清理配置目的。

在一个实施例中,还包括:

步骤s111,接收更改请求:接收用户发送的更改请求,展示登陆页面,通过登陆页面获取用户输入的账密信息。

本步骤不仅获取用户发送的配置请求并记录配置信息,还具有更改配置功能,以便于对独立更新业务系统的数据清理工作。

步骤s122,验证账密信息:验证账密信息,若未通过验证,则返回错误提示,若通过验证,则判断账密信息对应的权限,若具有更改权限,则展示更改页面,否则返回错误提示。

本步骤的验证方式与步骤s102相似,通过对账密信息进行验证,确定用户是否具有更改权限。本步骤的更改页面与配置页面相似,更改页面包括必填字段的业务系统编码字段、执行更新时间字段,和选填的业务系统数据库连接池字段、清理任务定时时间字段或数据清理脚本上传入口等信息。其中执行更新时间为更新更改信息的操作时间,比如在2019年2月1日的凌晨1点执行此更改信息对应的数据清理工作,在2019年2月1日的凌晨1点之前,依然执行原始的配置信息对应的数据清理工作。

步骤s123,判断更改权限:通过更改页面获取用户输入的更改信息,更改信息包括执行更新时间、业务系统编码、及与业务系统编码对应的业务系统数据库连接池、清理任务定时时间或数据清理脚本中的至少一项,判断账密信息对应是否具有更改业务系统编码对应的业务系统的权限,若不具有更改权限,则返回错误提示。

本步骤的判断方式与步骤s103相似,只有具有更改业务系统编码对应的业务系统的权限,才可以对业务系统进行更改。

步骤s124,添加更改信息:若具有更改权限,则将更改信息添加入配置数据表中业务系统编码对应的配置信息中。

本步骤在对更改信息存储时,由于具有执行更新时间的时间差,因此并不是覆盖配置信息的方式,而是将更改信息添加入配置数据表中。在添加前,本步骤还对执行更新时间进行判断:

读取配置数据表中业务系统编码对应的配置信息中的清理任务定时时间,判断执行更新时间与清理任务定时时间之间的时间差是否超过预设的时间阈值,若不超过,则返回错误提示;若超过,则将更改信息添加入配置数据表中业务系统编码对应的配置信息中。

为了避免执行更新时间和已配置的清理任务定时时间之间发生冲突,若执行更新时间与清理任务定时时间相同,或相差在预设时间阈值内,则通过更改页面提示用户更改执行更新时间,以便于能稳定可靠的更新配置信息。

本实施例通过前端页面获取外部业务系统对应的用户请求的更改信息,可以实现远程灵活的添加更改信息,任一注册于本平台的业务系统对应的用户均可以通过网页访问本平台,实现业务系统的远程更改配置信息目的,且更改信息独立于业务系统本身的运行程序,业务系统无需更新版本,就能实现清理数据脚本的快速稳定更新。

步骤s2,生成清理任务:读取配置数据表,根据配置数据表中的配置信息批量生成多个清理任务,一个清理任务对应一项配置信息。

本步骤可以通过开启预设的子线程管理软件,如spring技术框架,根据配置信息封装成对应的清理任务。

在一个实施例中,步骤s2,包括:

步骤s201,读取配置信息:逐个读取配置数据表中的配置信息,获取配置信息中的业务系统编码、业务系统数据库连接池、清理任务定时时间和数据清理脚本。

在生成清理任务前,首先从配置数据表中逐个读取配置信息,一个配置信息对应生成一个清理任务。

步骤s202,生成任务:调用预设的任务模板,将配置信息中的业务系统编码、业务系统数据库连接池、清理任务定时时间和数据清理脚本分别赋值给任务模板中的变量,生成一个清理任务,将清理任务放入任务池中。

由于各个清理任务之间的主要差别就在于业务系统编码、业务系统数据库连接池、清理任务定时时间和数据清理脚本这四个参数,因此本步骤通过任务模板,根据不同的配置信息,配置不同的清理任务,得到一个配置信息对应生成一个清理任务的目的。

为了避免同一时刻相同的清理任务同时执行,在生成清理任务时,可以通过spring技术框架的concurrent属性指定任务类型,默认情况下是无状态的清理任务,本步骤可以将concurrent属性设置为false,配置成有状态的清理任务,有状态的清理任务不能并发执行,避免了清理数据脚本的重复执行,降低清理错误发生。

步骤s203,生成任务:遍历配置数据表,每个配置信息均生成一个对应的清理任务,并将生成的清理任务放入任务池中。

将清理任务放入任务池,可以根据任务池的先进先出特点,依次读取清理任务执行清理数据脚本。

本实施例通过遍历配置数据表,利用spring技术框架批量生成有状态的清理任务,由独立的平台统一管理清理任务,清理任务独立于业务系统,能更好的维护和更新数据清理脚本。

在一个实施例中,步骤s2,还包括:

步骤s211,定时检索:定时对配置数据表进行检索,依次获取每个更改信息,判断当前时间是否到达更改信息中的执行更新时间。

若用户对配置信息进行更改,则配置数据表中会含有对应的更改信息。例如下表1为一种配置数据表,在对配置信息和更改信息写入配置数据表时,可以根据行标题或列标题写入。检索配置数据表时,可以根据标题查找对应的单元格是否含有更改信息。

表1

步骤s212,更新清理任务:若到达或超过,则读取配置信息对应的清理任务,根据更改信息更改清理任务中的业务系统数据库连接池、清理任务定时时间或数据清理脚本中的至少一项,生成一个新的清理任务,将清理任务放入任务池中。

当到达执行更新时间后,认为可以更新配置信息,将更改信息中的所有信息覆盖于对应的配置信息。比如更改信息只更改了数据清理脚本,则将配置信息中的数据清理脚本进行替换。将替换后的配置信息,重新调用预设的任务模板,生成一个新的清理任务并放入任务池中。

若清理任务在步骤s202时设置为有状态的清理任务,则在更新配置信息前,还判断清理任务的当前状态,若状态为执行中,则等待子线程完成执行任务后,更新清理任务。当处理更新配置信息时,将清理任务的当前状态设为更新中的状态。若生成了一个新的清理任务,则将清理任务的当前状态设置为空闲的状态,并放入任务池中。

步骤s213,更新配置数据表:将配置数据表中的更改信息覆盖对应的配置信息后,删除更改信息。

本步骤不仅需要更新清理任务,还对配置数据表进行对应更新,保证后续继续能更改配置信息。

本实施例给出了配置信息的更改方式,只有到达执行更新时间的更改信息,才能进行更新,且在更新时,只对单独的清理任务进行更新,不影响其他清理任务的清理数据过程。

步骤s3,执行清理任务:开启多个子线程,通过子线程读取清理任务,根据清理任务中的清理任务定时时间,连接业务系统编码对应的业务系统,对业务系统数据库连接池中的数据执行数据清理脚本。

在一个实施例中,步骤s3,包括:

步骤s301,开启子线程:开启多个子线程,将多个子线程放入工作线程池。

本步骤开启的子线程个数可以与清理任务数相同,也可以少于清理任务数。在平台启动时,自动开启多个子线程,并自动将多个子线程放入工作线程池中。

步骤s302,分配任务:读取工作线程池中的一个子线程,读取任务池中的一个清理任务,将清理任务分配给子线程执行。

本步骤的工作线程池中放入了所有空闲的子线程,首先从工作线程池中确定是否含有空闲的子线程,只有含有空闲子线程时,才从任务池中取出清理任务,分配给空闲的子线程。

步骤s303,清理数据:通过子线程根据清理任务中的清理任务定时时间,定时连接业务系统编码对应的业务系统,对业务系统数据库连接池中的数据执行数据清理脚本。

本步骤通过子线程等待清理任务定时时间的触发,从清理任务定时时间开始通过预设的api接口对接业务系统编码对应的业务系统,查找到业务系统数据库连接池,执行数据清理脚本,实现外部业务数据的数据清理工作。

步骤s304,重放子线程:当子线程完成清理任务后,将子线程再次放入工作线程池中。

子线程完成清理任务后,为了执行其他清理任务,本步骤将已完成清理任务的子线程重新放入工作线程池中,用于分配给其他清理任务。

本实施例通过多个子线程分别定时执行清理任务的方式,完成各个业务系统的数据清理工作,对各个业务系统在清理数据时相互独立,清理数据更简单快捷。

本实施例基于大数据的生产库数据统一清理方法,通过对不同业务系统的配置信息均生成一个清理任务,对清理任务分配独立的子线程执行数据清理工作,在更新清理任务时,无需对业务系统进行版本更新,了更新清理任务方便快捷。且各个业务系统清理数据时,均独立工作,清理工作无任何阻塞,清理数据效率高。

在一个实施例中,提出了一种基于大数据的生产库数据统一清理装置,如图2所示,包括如下模块:

获取信息模块,用于接收用户发送的配置信息,将配置信息记录到配置数据表中,配置信息包括业务系统编码、业务系统数据库连接池、清理任务定时时间、数据清理脚本;

生成清理任务模块,用于读取配置数据表,根据配置数据表中的配置信息批量生成多个清理任务,一个清理任务对应一项配置信息;

清理数据模块,用于开启多个子线程,通过子线程读取清理任务,根据清理任务中的清理任务定时时间,连接业务系统编码对应的业务系统,对业务系统数据库连接池中的数据执行数据清理脚本。

在一个实施例中,提出了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行计算机可读指令时实现上述各实施例的基于大数据的生产库数据统一清理方法中的步骤。

在一个实施例中,提出了一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例的基于大数据的生产库数据统一清理方法中的步骤。其中,存储介质可以为非易失性存储介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明一些示例性实施例,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1