CN111522805B - 分布式批量数据清理方法及*** - Google Patents
分布式批量数据清理方法及*** Download PDFInfo
- Publication number
- CN111522805B CN111522805B CN202010325609.1A CN202010325609A CN111522805B CN 111522805 B CN111522805 B CN 111522805B CN 202010325609 A CN202010325609 A CN 202010325609A CN 111522805 B CN111522805 B CN 111522805B
- Authority
- CN
- China
- Prior art keywords
- cleaning
- cleaned
- message queue
- data
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式批量数据清理方法及***,该方法包括:主节点将各个待清理表的清理指令,发送到第一消息队列;主节点对应的各个远程子节点从第一消息队列中读取待清理表的清理指令,根据待清理表的分库分表情况,生成待清理表的一个或多个单表清理指令,发送到第二消息队列;各个远程子节点对应一个或多个清理节点从第二消息队列中读取一个单表清理指令,对单表进行数据清理,并将单表的清理结果返回到第三消息队列;远程子节点从第三消息队列中读取单表的清理结果,汇总各个待清理表的清理结果,返回到第四消息队列;主节点从第四消息队列中读取各个待清理表的清理结果。本发明由多个节点同时对数据进行清理,大大提高了数据清理效率。
Description
技术领域
本发明涉及数据清理领域,尤其涉及一种分布式批量数据清理方法及***。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
对于业务***来说,业务量的不断增加,导致数据库中存储的数据表也越来越多。大量的历史数据表,占用过多的存储空间,会影响业务***的性能,因而,需要定期清理历史数据表。对于一些复杂场景的业务***,有些数据量比较大的表,经常存在分库分表存储的情况。
现有的数据清理方法,将应用程序部署于单台机器,采用串行方式清理每张数据表,且未考虑数据表分表分库的情况,这种数据清理方式存在效率低下、无法实现跨数据库的关联数据清理的技术问题,无法应对复杂场景下的业务数据清理。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例中提供了一种分布式批量数据清理方法,用以解决现有技术采用的数据清理方法是单机部署、串行方式清理,存在效率低下、无法实现跨数据库的关联数据清理的技术问题,该方法包括:主节点将各个待清理表的清理指令,发送到第一消息队列,其中,主节点对应多个远程子节点;远程子节点从第一消息队列中读取一个待清理表的清理指令,根据待清理表的分库分表情况,生成待清理表的一个或多个单表清理指令,发送到第二消息队列,其中,每个远程子节点对应一个或多个清理节点;清理节点从第二消息队列中读取待清理表的一个单表清理指令,对待清理表的一个单表进行数据清理,并将待清理表一个单表的清理结果返回到第三消息队列;远程子节点从第三消息队列中读取各个单表的清理结果,汇总各个待清理表的清理结果,并将各个待清理表的清理结果返回到第四消息队列;主节点从第四消息队列中读取各个待清理表的清理结果。
本发明实施例中还提供了一种分布式批量数据清理***,用以解决现有技术采用的数据清理方法是单机部署、串行方式清理,存在效率低下、无法实现跨数据库的关联数据清理的技术问题,该***包括:主节点模块、远程子节点模块和清理节点模块;主节点模块对应多个远程子节点模块;每个远程子节点模块对应一个或多个清理节点模块,每个远程子节点模块包括:主表清理模块;每个清理节点模块包括:数据清理模块;其中,主节点模块,用于将各个待清理表的清理指令,发送到第一消息队列;远程子节点模块,用于从第一消息队列中读取一个待清理表的清理指令,根据待清理表的分库分表情况,生成待清理表的一个或多个单表清理指令,发送到第二消息队列;清理节点模块,用于从第二消息队列中读取待清理表的一个单表清理指令,对待清理表的一个单表进行数据清理,并将待清理表一个单表的清理结果返回到第三消息队列;其中,远程子节点模块还用于从第三消息队列中读取各个单表的清理结果,汇总各个待清理表的清理结果,并将各个待清理表的清理结果返回到第四消息队列;主节点模块还用于从第四消息队列中读取各个待清理表的清理结果。
本发明实施例中还提供了一种计算机设备,用以解决现有技术采用的数据清理方法是单机部署、串行方式清理,存在效率低下、无法实现跨数据库的关联数据清理的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述分布式批量数据清理方法。
本发明实施例中还提供了一种计算机可读存储介质,用以解决现有技术采用的数据清理方法是单机部署、串行方式清理,存在效率低下、无法实现跨数据库的关联数据清理的技术问题,该计算机可读存储介质存储有执行上述分布式批量数据清理方法的计算机程序。
本发明实施例中,主节点对应多个远程子节点,每个远程节点对应一个或多个清理节点;当主节点将各个待清理表的清理指令,发送到第一消息队列后,由主节点对应的各个远程子节点从第一消息队列中读取一个待清理表的清理指令,根据待清理表的分库分表情况,生成待清理表的一个或多个单表清理指令,发送到第二消息队列;接着,由每个远程子节点对应各个清理节点从第二消息队列中读取待清理表的一个单表清理指令,对待清理表的一个单表进行数据清理,并将待清理表一个单表的清理结果返回到第三消息队列;再由远程子节点从第三消息队列中读取各个单表的清理结果,汇总各个待清理表的清理结果,并将各个待清理表的清理结果返回到第四消息队列;最后由主节点从第四消息队列中读取各个待清理表的清理结果。
通过发明实施例,由多个节点对数据进行清理,大大提高了数据清理效率;可适用于不同业务场景下的数据清理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中提供的一种分布式批量数据清理方法流程图;
图2为本发明实施例中提供的一种分布式批量数据清理方法的具体实现架构示意图;
图3为本发明实施例中提供的对某一待清理表进行数据清理的流程示意图;
图4为本发明实施例中提供的一种分布式批量数据清理***示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
本发明实施例中提供了一种分布式批量数据清理方法,图1为本发明实施例中提供的一种分布式批量数据清理方法流程图,如图1所示,该方法包括如下步骤:
S101,主节点将各个待清理表的清理指令,发送到第一消息队列,其中,主节点对应多个远程子节点。
可选地,本发明实施例中的第一消息队列采用Redis消息队列。
S102,远程子节点从第一消息队列中读取一个待清理表的清理指令,根据待清理表的分库分表情况,生成待清理表的一个或多个单表清理指令,发送到第二消息队列,其中,每个远程子节点对应一个或多个清理节点。
可选地,本发明实施例中的第二消息队列采用Redis消息队列。
需要说明的是,在执行上述S102的时候,本发明实施例中提供的分布式批量数据清理方法还可以包括如下步骤:远程子节点根据待清理表的清理指令,判断待清理表是否存在关联表,并在待清理表存在关联表的情况下,在对待清理表进行数据清理之前,先对待清理表的关联表进行数据清理。
需要注意的是,在对关联表进行数据清理的时候,也需要根据关联表的分库分表情况下,生成关联表的一个或多个单表清理指令,发送到第二消息队列,其中,每个远程子节点对应一个或多个清理节点。
本发明实施例中,分库分表是指一个数据表划分为多个分表且存储于不同数据库的情况。
S103,清理节点从第二消息队列中读取待清理表的一个单表清理指令,对待清理表的一个单表进行数据清理,并将待清理表一个单表的清理结果返回到第三消息队列。
需要说明的是,本发明实施例中单表清理指令是指对单数据库单表进行清理的指令,例如,对于待清理的表A和表B,如果表A分库分表共10个单表;表B不存在分库分表的情况,则主节点向远程子节点发送2条表清理指令(即对表A进行数据清理的第一指令、对表B进行数据清理的第二指令);接收到第一指令的远程子节点向清理节点发送10条单表清理指令;接收到第二指令的远程子节点向清理节点发送1条单表清理指令。当本发明实施例采用SQL执行数据库表清理的情况下,本发明实施例中单表清理指令可以是读、写SQL指令,通过读SQL指令查询待清理的数据;通过写SQL指令删除查询出的数据。
可选地,本发明实施例中的第三消息队列采用Redis消息队列。
在待清理表存在关联表的情况下,上述S103还可以包括如下步骤:当关联表与待清理表在同一数据库的情况下,清理节点直接在待清理表所在数据库中查询关联表中待删除的数据;当关联表与待清理表不在同一数据库的情况下,清理节点从待清理表所在数据库查询出关联字段,根据关联字段在关联表所在数据库查询关联表中待删除的数据。
S104,远程子节点从第三消息队列中读取各个单表的清理结果,汇总各个待清理表的清理结果,并将各个待清理表的清理结果返回到第四消息队列。
可选地,本发明实施例中的第四消息队列采用Redis消息队列。
在一个实施例中,本发明实施例中提供的分布式批量数据清理方法还可以包括如下步骤:远程子节点记录并更新各个待清理表的数据清理日志。
S105,主节点从第四消息队列中读取各个待清理表的清理结果。
由上可知,本发明实施例中提供的分布式批量数据清理方法,当主节点将各个待清理表的清理指令,发送到第一消息队列后,由主节点对应的各个远程子节点从第一消息队列中读取一个待清理表的清理指令,根据待清理表的分库分表情况,生成待清理表的一个或多个单表清理指令,发送到第二消息队列;接着,由每个远程子节点对应各个清理节点从第二消息队列中读取待清理表的一个单表清理指令,对待清理表的一个单表进行数据清理,并将待清理表一个单表的清理结果返回到第三消息队列;再由远程子节点从第三消息队列中读取各个单表的清理结果,汇总各个待清理表的清理结果,并将各个待清理表的清理结果返回到第四消息队列;最后由主节点从第四消息队列中读取各个待清理表的清理结果。
通过发明实施例中提供的分布式批量数据清理方法,由多个节点对数据进行清理,大大提高了数据清理效率;可适用于不同业务场景下的数据清理。
在一个实施例中,本发明实施例中提供的分布式批量数据清理方法还可以包括如下步骤:清理节点根据单表清理指令,判断待清理的单表是否需要备份数据,并在待清理的单表需要备份数据的情况下,根据预先配置的备份字段,读取待清理单表中的备份数据,发送到第五消息队列中。由于有些数据库中有些数据表的数据需要备份,因而,可通过配置备份字段的方式,在清理单表数据之前,对相应备份字段数据进行备份,本发明实施例中通过消息队列的形式进行数据备份,可实现异步数据备份存储的目的。
可选地,本发明实施例中的第五消息队列采用Kafka消息队列。通过Kafka消息队列可实现灵活备份数据的目的。
图2为本发明实施例中提供的一种分布式批量数据清理方法的具体实现架构示意图,如图2所示,主要包括:主节点单元、远程子节点单元、关联表数据清理单元、单表数据清理单元。需要注意的是,这四个单元可以部署于相同的机器上,也可以分别部署于不同的机器上。下面对各个单元一一进行说明:
(一)主节点单元:
该单元用于配置清理规则(包括但不限于是否分表,是否分库,所在数据库,是否需要备份,清理频率,清理条件等);主节点根据相关配置,按需要清理的表名进行分区(即将清理任务划分为每种表的清理任务),发送数据清理指令到消息队列(例如,Redis消息队列)。
(二)远程子节点单元:
该单元用于对待清理表的进一步解析拆分和流程的调度,具体的清理作业不在该单元执行。远程子节点单元在接收到来自主节点单元的数据清理指令后,将待清理表的清理分为三步:①清理关联表,根据待清理表分表分库后的单表,查询所有关联关系,以单个数据库单张表的每张关联表为粒度再次进行远程分区,并等待每个关联表数据清理作业步的清理结果消息,全部清理完毕后才进入下一步;②清理表数据,根据待清理表分表分库后的单表,以单个数据库单张表为粒度同样再次进行远程分区并等待每个关联表数据清理作业步的清理结果,全部清理完毕后才进入下一步;③统计更新清理日志,汇总记录更新过程日志到数据库。
(三)关联表数据清理单元:
该单元用于清理关联表数据。在接收到来自远程子节点单元的关联表数据清理指令后,解析配置好的关联关系,判断关联表与待清理包是否跨数据库(即属于不同的数据库),若在同一数据库,直接拼接关联关系的SQL,再根据筛选、备份的配置生成查询、删除SQL(也称读、写SQL);若不在同一数据库,则需对关联关系进一步解析,从主表中游标查询出需清理的数据的关联字段,再用查出的关联字段的值和解析的条件去关联表所在数据库删除掉关联字段。若存在备份,则在删除前,根据配置查询的备份所需字段内容,发送到kafka消息队列。
(四)单表数据清理单元:
该单元用于清理待清理表单表的数据清理指令后,根据筛选、备份的配置生成查询、删除SQL,完成清理,其中备份的字段内容,发送到kafka消息队列。
下面以SQL为例,对待清理表和关联表的数据清理进行说明:
(1)清理表数据:
需求:清理表TableA中colA小于date1的数据;
备份字段为colA,colB,colC,主键为colD;
清理节点执行如下程序:
读:通过游标去所在数据库执行
select colA,colB,colC,colD from TableA where colA<date1
处理:将colA,colB,colC备份字段的数据发送到kafka
写:通过主键colD删除数据,delete from TableA where colD=:id
(2)清理同一数据库的关联表:
需求:清理表TABLE_M中COL_F小于date1的数据;
先要清理其关联表中的关联数据。
TABLE_M与TABLE_R的关联关系为TABLE_M.COL_A1=TABLE_R.COL_A2AND TABLE_M.COL_B1=‘Y’AND TABLE_R.COL_B2='Y',TABLE_R的备份字段为COL_B2,COL_C2,主键为COL_D2;
清理节点执行如下程序:
读:select TABLE_R.COL_B2,TABLE_R.COL_C2,TABLE_R.COL_D2 from TABLE_M,TABLE_R where TABLE_M.COL_F<date1 and TABLE_M.COL_A1=TABLE_R.COL_A2 ANDTABLE_M.COL_B1=‘Y’TABLE_R.COL_B2='Y'
处理:将COL_B2,COL_C2备份字段的数据发送到kafka
写:通过主键COL_D2删除数据,delete from TABLE_R where COL_D2=:id
(3)清理跨数据库的关联表:
需求与(2)相同;
将关联关系的SQL按照AND切分,并分类:
①关联的SQL如TABLE_M.COL_A1=TABLE_R.COL_A2
②主表的筛选的SQL如TABLE_M.COL_B1='Y'
③关联表的筛选SQL如TABLE_R.COL_B2='Y'
清理节点执行如下程序:
读:select TABLE_M.COL_A1 from TABLE_M where TABLE_M.COL_F<date1andTABLE_M.COL_B1='Y'
处理:查询select COL_B2,COL_C2,COL_D2 from TABLE_R where COL_A2=:COL_A1 AND TABLE_R.COL_B2='Y',将COL_B2,COL_C2备份字段的数据发送到kafka
写:通过主键COL_D2删除数据,delete from TABLE_R where COL_D2=:id
需要注意的是,上述代码中“:id”是SQL的预处理的占位符,在执行过程中替换为之前读取的具体值。
图2中主节点单元、远程子节点单元、关联表数据清理单元、单表数据清理单元在对待清理表执行数据清理时执行如下步骤:
①主节点发送数据清理指令:根据配置的清理规则,按每个需要清理的表名进行一个分区,通过消息队列,发送待清理表的数据清理指令到远程的子节点。
②远程子节点接收数据清理指令,执行如下数据处理:A.判断是否有关联表数据需要清理,若有,再根据分库分表规则,对该表涉及的关联表进行二次分区,再次通过消息队列发送清理关联表数据的指令到清理节点;B.清理完关联表数据之后,通过消息队列发送清理主表数据的指令到清理节点。
③清理节点接收数据清理指令,执行如下数据处理:清理节点读取请求队列消息,进行数据解析,若是清理关联表数据指令,则调起关联表数据清理作业步清理关联表中的数据。若是清理表数据指令,则调起数据清理作业步清理表中的数据。在清理作业步中,如果需要备份则根据配置的备份字段获取备份数据发送至kafka消息队列。
④清理节点返回处理结果:清理节点在完成相关清理作业步后,通过消息队列返回处理结果到远程子节点。
⑤远程子节点返回处理结果:远程子节点在完成清理表作业后,通过消息队列返回处理结果到主节点。
图3为本发明实施例中提供的对某一待清理表进行数据清理的流程示意图,如图3所示,对于待清理表A,首先判断其是否存在关联表,若不存在关联,则直接对表A进行清理;若存在关联表,则先清理关联表的数据;并在关联表数据清理完毕后,再对表A进行清理。在对表A或关联表进行清理时,判断表A或关联表是否存在分库分表的情况,根据分库分表情况进行相应的数据清理。对于存在关联表的主表,先清理完毕所有关联表后,才对主表进行清理;对于存在分库分表的主表,先清理完毕所有分表后才算对该表清理完毕。
基于同一发明构思,本发明实施例中还提供了一种分布式批量数据清理***,如下面的实施例所述。由于该***实施例解决问题的原理与分布式批量数据清理方法相似,因此该***实施例的实施可以参见方法的实施,重复之处不再赘述。
图4为本发明实施例中提供的一种分布式批量数据清理***示意图,如图4所示,该***包括:主节点模块41、远程子节点模块42和清理节点模块43;主节点模块41对应多个远程子节点模块42;每个远程子节点模块42对应一个或多个清理节点模块43,每个远程子节点模块42包括:主表清理模块421;每个清理节点模块43包括:数据清理模块431;
其中,主节点模块41,用于将各个待清理表的清理指令,发送到第一消息队列,其中,主节点对应多个远程子节点;
远程子节点模块42,用于从第一消息队列中读取一个待清理表的清理指令,根据待清理表的分库分表情况,生成待清理表的一个或多个单表清理指令,发送到第二消息队列,其中,每个远程子节点对应一个或多个清理节点;
清理节点模块43,用于从第二消息队列中读取待清理表的一个单表清理指令,对待清理表的一个单表进行数据清理,并将待清理表一个单表的清理结果返回到第三消息队列;
其中,远程子节点模块42还用于从第三消息队列中读取各个单表的清理结果,汇总各个待清理表的清理结果,并将各个待清理表的清理结果返回到第四消息队列;主节点模块41还用于从第四消息队列中读取各个待清理表的清理结果。
由上可知,本发明实施例中提供的分布式批量数据清理***中,通过主节点模块41将各个待清理表的清理指令,发送到第一消息队列;通过主节点模块41对应的各个远程子节点模块42从第一消息队列中读取一个待清理表的清理指令,根据待清理表的分库分表情况,生成待清理表的一个或多个单表清理指令,发送到第二消息队列;通过每个远程子节点模块42对应各个清理节点模块43从第二消息队列中读取待清理表的一个单表清理指令,对待清理表的一个单表进行数据清理,并将待清理表一个单表的清理结果返回到第三消息队列;再通过各个远程子节点模块42从第三消息队列中读取各个单表的清理结果,汇总各个待清理表的清理结果,并将各个待清理表的清理结果返回到第四消息队列;最后通过主节点模块41从第四消息队列中读取各个待清理表的清理结果。
通过发明实施例中提供的分布式批量数据清理***,由多个节点对数据进行清理,大大提高了数据清理效率;可适用于不同业务场景下的数据清理。
一个实施例中,清理节点模块43还可以包括:数据备份模块432,用于根据单表清理指令,判断待清理的单表是否需要备份数据,并在待清理的单表需要备份数据的情况下,根据预先配置的备份字段,读取待清理单表中的备份数据,发送到第五消息队列中。
一个实施例中,远程子节点模块42还可以包括:关联表清理模块422,用于根据待清理表的清理指令,判断待清理表是否存在关联表,并在待清理表存在关联表的情况下,在对待清理表进行数据清理之前,先对待清理表的关联表进行数据清理。
进一步地,基于上述实施例,远程子节点模块42还可以包括:日志记录模块423,用于记录并更新各个待清理表的数据清理日志。
基于同一发明构思,本发明实施例中还提供了一种计算机设备,用以解决现有技术采用的数据清理方法是单机部署、串行方式清理,存在效率低下、无法实现跨数据库的关联数据清理的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述分布式批量数据清理方法。
基于同一发明构思,本发明实施例中还提供了一种计算机可读存储介质,用以解决现有技术采用的数据清理方法是单机部署、串行方式清理,存在效率低下、无法实现跨数据库的关联数据清理的技术问题,该计算机可读存储介质存储有执行上述分布式批量数据清理方法的计算机程序。
综上所述,本发明实施例中还提供了一种分布式批量数据清理方法、***、计算机设备及计算机可读存储介质,采用多级远程分区的方式,多节点并行清理表数据及其关联数据,既提升了数据清理效率,又能够满足复杂多样的清理需求。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种分布式批量数据清理方法,其特征在于,包括:
主节点将各个待清理表的清理指令,发送到第一消息队列,其中,所述主节点对应多个远程子节点;
远程子节点从所述第一消息队列中读取一个待清理表的清理指令,根据待清理表的分库分表情况,生成待清理表的一个或多个单表清理指令,发送到第二消息队列,其中,每个远程子节点对应一个或多个清理节点;
清理节点从所述第二消息队列中读取待清理表的一个单表清理指令,对待清理表的一个单表进行数据清理,并将待清理表一个单表的清理结果返回到第三消息队列;
远程子节点从所述第三消息队列中读取各个单表的清理结果,汇总各个待清理表的清理结果,并将各个待清理表的清理结果返回到第四消息队列;
主节点从所述第四消息队列中读取各个待清理表的清理结果。
2.如权利要求1所述的方法,其特征在于,所述第一消息队列、所述第二消息队列、所述第三消息队列和所述第四消息队列均为Redis消息队列。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
清理节点根据单表清理指令,判断待清理的单表是否需要备份数据,并在待清理的单表需要备份数据的情况下,根据预先配置的备份字段,读取待清理单表中的备份数据,发送到第五消息队列中。
4.如权利要求3所述的方法,其特征在于,所述第五消息队列为Kafka消息队列。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
远程子节点根据待清理表的清理指令,判断待清理表是否存在关联表,并在待清理表存在关联表的情况下,在对待清理表进行数据清理之前,先对待清理表的关联表进行数据清理。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
当关联表与待清理表在同一数据库的情况下,清理节点直接在待清理表所在数据库中查询关联表中待删除的数据;
当关联表与待清理表不在同一数据库的情况下,清理节点从待清理表所在数据库查询出关联字段,根据关联字段在关联表所在数据库查询关联表中待删除的数据。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
远程子节点记录并更新各个待清理表的数据清理日志。
8.一种分布式批量数据清理***,其特征在于,包括:主节点模块、远程子节点模块和清理节点模块;所述主节点模块对应多个远程子节点模块;每个所述远程子节点模块对应一个或多个清理节点模块,每个所述远程子节点模块包括:主表清理模块;每个所述清理节点模块包括:数据清理模块;
其中,主节点模块,用于将各个待清理表的清理指令,发送到第一消息队列;
远程子节点模块,用于从所述第一消息队列中读取一个待清理表的清理指令,根据待清理表的分库分表情况,生成待清理表的一个或多个单表清理指令,发送到第二消息队列;
清理节点模块,用于从所述第二消息队列中读取待清理表的一个单表清理指令,对待清理表的一个单表进行数据清理,并将待清理表一个单表的清理结果返回到第三消息队列;
其中,所述远程子节点模块还用于从所述第三消息队列中读取各个单表的清理结果,汇总各个待清理表的清理结果,并将各个待清理表的清理结果返回到第四消息队列;所述主节点模块还用于从所述第四消息队列中读取各个待清理表的清理结果。
9.如权利要求8所述的***,其特征在于,所述清理节点模块还包括:数据备份模块,用于根据单表清理指令,判断待清理的单表是否需要备份数据,并在待清理的单表需要备份数据的情况下,根据预先配置的备份字段,读取待清理单表中的备份数据,发送到第五消息队列中。
10.如权利要求8所述的***,其特征在于,所述远程子节点模块还包括:关联表清理模块,用于根据待清理表的清理指令,判断待清理表是否存在关联表,并在待清理表存在关联表的情况下,在对待清理表进行数据清理之前,先对待清理表的关联表进行数据清理。
11.如权利要求8所述的***,其特征在于,所述远程子节点模块还包括:
日志记录模块,用于记录并更新各个待清理表的数据清理日志。
12.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述分布式批量数据清理方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至7任一项所述分布式批量数据清理方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010325609.1A CN111522805B (zh) | 2020-04-23 | 2020-04-23 | 分布式批量数据清理方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010325609.1A CN111522805B (zh) | 2020-04-23 | 2020-04-23 | 分布式批量数据清理方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111522805A CN111522805A (zh) | 2020-08-11 |
CN111522805B true CN111522805B (zh) | 2023-05-02 |
Family
ID=71910982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010325609.1A Active CN111522805B (zh) | 2020-04-23 | 2020-04-23 | 分布式批量数据清理方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111522805B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463799A (zh) * | 2020-12-11 | 2021-03-09 | 天冕信息技术(深圳)有限公司 | 数据提取方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107479829A (zh) * | 2017-08-03 | 2017-12-15 | 杭州铭师堂教育科技发展有限公司 | 一种基于消息队列的Redis集群海量数据快速清理***及方法 |
CN107783975A (zh) * | 2016-08-24 | 2018-03-09 | 北京京东尚科信息技术有限公司 | 分布式数据库同步处理的方法和装置 |
CN109753531A (zh) * | 2018-12-26 | 2019-05-14 | 深圳市麦谷科技有限公司 | 一种大数据统计方法、***、计算机设备及存储介质 |
CN110287181A (zh) * | 2019-07-01 | 2019-09-27 | 网联清算有限公司 | 数据清理方法、装置、电子设备和介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107967117B (zh) * | 2016-10-20 | 2020-10-20 | 杭州海康威视数字技术股份有限公司 | 一种数据存储、读取、清理方法、装置及云存储*** |
-
2020
- 2020-04-23 CN CN202010325609.1A patent/CN111522805B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107783975A (zh) * | 2016-08-24 | 2018-03-09 | 北京京东尚科信息技术有限公司 | 分布式数据库同步处理的方法和装置 |
CN107479829A (zh) * | 2017-08-03 | 2017-12-15 | 杭州铭师堂教育科技发展有限公司 | 一种基于消息队列的Redis集群海量数据快速清理***及方法 |
CN109753531A (zh) * | 2018-12-26 | 2019-05-14 | 深圳市麦谷科技有限公司 | 一种大数据统计方法、***、计算机设备及存储介质 |
CN110287181A (zh) * | 2019-07-01 | 2019-09-27 | 网联清算有限公司 | 数据清理方法、装置、电子设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111522805A (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220171781A1 (en) | System And Method For Analyzing Data Records | |
US11650971B2 (en) | System and method for large-scale data processing using an application-independent framework | |
Marcu et al. | Spark versus flink: Understanding performance in big data analytics frameworks | |
CN108564470B (zh) | 一种区块链中并行建块的交易分发方法 | |
EP2831767B1 (en) | Method and system for processing data queries | |
US10769147B2 (en) | Batch data query method and apparatus | |
US20130138731A1 (en) | Automated client/server operation partitioning | |
CN111752959B (zh) | 一种实时数据库跨库sql交互方法和*** | |
US20070250517A1 (en) | Method and Apparatus for Autonomically Maintaining Latent Auxiliary Database Structures for Use in Executing Database Queries | |
CN111061788A (zh) | 一种基于云架构的多源异构数据转换整合***及其实现方法 | |
CN109033109B (zh) | 数据处理方法及*** | |
CN101996102A (zh) | 数据关联规则挖掘实现方法与*** | |
CN102063490A (zh) | 一种数据库分区方法和分区装置 | |
CN109885642B (zh) | 面向全文检索的分级存储方法及装置 | |
CN110928851B (zh) | 处理日志信息的方法、装置、设备及存储介质 | |
CN110941602B (zh) | 数据库的配置方法、装置、电子设备及存储介质 | |
CN105989163A (zh) | 数据实时处理方法及*** | |
CN103765381A (zh) | 对b+树的并行操作 | |
CN111522805B (zh) | 分布式批量数据清理方法及*** | |
US20060143206A1 (en) | Interval tree for identifying intervals that intersect with a query interval | |
CN111984625A (zh) | 数据库负载特征处理方法、装置、介质和电子设备 | |
Raıssi et al. | Need for speed: Mining sequential patterns in data streams | |
CN114756629A (zh) | 基于sql的多源异构数据交互分析引擎及方法 | |
CN115794783A (zh) | 数据去重方法、装置、设备和介质 | |
CN111881323B (zh) | 基于排序字段与时间路由的表分离方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |