CN111666286B - 分库分表检测方法、装置、计算机设备和存储介质 - Google Patents
分库分表检测方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111666286B CN111666286B CN202010438062.6A CN202010438062A CN111666286B CN 111666286 B CN111666286 B CN 111666286B CN 202010438062 A CN202010438062 A CN 202010438062A CN 111666286 B CN111666286 B CN 111666286B
- Authority
- CN
- China
- Prior art keywords
- sub
- library
- detected
- database
- type
- 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/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
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种分库分表检测方法、装置、计算机设备和存储介质。所述方法包括:获取待检测分表分库信息;根据所述待检测分库分表信息,获取待检测分库分表特征;根据所述待检测分库分表特征,获取所述待检测分库分表的类型;根据所述待检测分库分表的类型,生成预期分库分表列表;将所述待检测分库分表与所述预期分库分表列表作对比;若所述预期分库分表列表中每一个分库分表,都在所述待检测分库分表中存在,则确认所述待检测分库分表无漏表。本申请实施例的方法,能实现对分库分表的自动检测,无需人工干预,提高了分库分表检测的效率,还能提高分库分表检测的准确性。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种分库分表检测方法、装置、计算机设备和存储介质。
背景技术
随着互联网的发展,对数据库的使用越来越多。当前互联网普通使用MySQL作为数据库存储软件,因为互联网业务具备并发高,数据量大的特点,而MySQL自身对于大表也存在性能及管理不便问题,因此在互联网业务中,使用MySQL时大都会使用分库分表来解决上述的性能和管理问题。
一般分库分表会存在非常多种规则,整个系统的分库分表数量可能会从几十到上千万。在大量的分表下,随着时间推移及版本变更,会存在多种风险,一是一系列的分表可能有漏表,另一个是一系列分表的结构可能不一致。上述风险中的任意一个出问题,都会导致业务报错,甚至可能导致严重的后果。
现有技术中,通常采用人工的方法通过预配置规来检查是否存在漏表,效率较低,准确率也较低。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种分库分表检测方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种分库分表检测方法,所述方法包括:
获取待检测分表分库信息;
根据所述待检测分库分表信息,获取待检测分库分表特征;
根据所述待检测分库分表特征,获取所述待检测分库分表的类型;
根据所述待检测分库分表的类型,生成预期分库分表列表;
将所述待检测分库分表与所述预期分库分表列表作对比;
若所述预期分库分表列表中每一个分库分表,都在所述待检测分库分表中存在,则确认所述待检测分库分表无漏表。
第二方面,本申请提供了一种分库分表检测装置,包括:
信息获取单元,用于获取待检测分表分库信息;
特征获取单元,用于根据所述待检测分库分表信息,获取待检测分库分表特征;
类型获取单元,用于根据所述待检测分库分表特征,获取所述待检测分库分表的类型;
生成单元,用于根据所述待检测分库分表的类型,生成预期分库分表列表;
对比单元,用于将所述待检测分库分表与所述预期分库分表列表作对比;
漏表检测单元,用于若所述预期分库分表列表中每一个分库分表,都在所述待检测分库分表中存在,则确认所述待检测分库分表无漏表。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以上步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以上步骤。
本申请实施例提供了一种分库分表检测方法,所述方法包括:获取待检测分表分库信息;根据所述待检测分库分表信息,获取待检测分库分表特征;根据所述待检测分库分表特征,获取所述待检测分库分表的类型;根据所述待检测分库分表的类型,生成预期分库分表列表;将所述待检测分库分表与所述预期分库分表列表作对比;若所述预期分库分表列表中每一个分库分表,都在所述待检测分库分表中存在,则确认所述待检测分库分表无漏表。本申请实施例的方法,能自动实现对分库分表的检测,无需人工干预,提高了分库分表检测的效率,还能提高分库分表检测的准确性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中分库分表检测方法的应用环境图;
图2为本申请实施例中分库分表检测方法的流程示意图;
图3为本申请实施例中分库分表检测方法的流程示意图;
图4为本申请实施例中分库分表检测方法的流程示意图;
图5为本申请实施例中分表分库检测装置的结构框图;
图6为本申请实施例中计算机设备的内部结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为一个实施例中分库分表检测方法的应用环境图。参照图1,该分库分表检测方法应用于分库分表检测系统。该分库分表检测系统包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,在一个实施例中,提供了一种分库分表检测方法。本实施例主要以该方法应用于上述图1中的终端110(或服务器120)来举例说明。参照图2,该分库分表检测方法具体包括如下步骤:
步骤210,获取待检测分表分库信息。
数据库中的分库分表有多种,简单划分可以有系统表及业务表。本申请实施例中,对分库分表的检测是对业务表的检测,因此本申请实施例中,获取待检测分库分表信息是获取除系统表之外的所有业务表的信息。
获取到的分库分信息可以是:db_00.table_201901、db_00.table_201902......db_99.table_201912。
步骤220,根据待检测分库分表信息,获取待检测分库分表特征。
本申请实施例中,步骤220,所述根据待检测分库分表信息,获取待检测分库分表特征,包括:
将所述待检测分库分表信息中包含的全部序号用特定字符代替后的字符串,作为所述待检测分库分表特征。
一个较为典型的分库分表可以是:db_00.table_201901,将该分库分表信息中通常包括表征属性或特性的字符以及序号,表征属性的字符可以是db、table等,其余表征序号,将该分库分表信息中的全部序号用特定字符“#”代替后得到的字符串为db_##.table_######,该字符串可以是上述分库分表特征。将序号用特定字符替代后的字符串,仍然保留了原分库分表中表征属性的字符,因此可以用来作为分库分表的特征。
步骤230,根据待检测分库分表特征,获取待检测分库分表的类型。
本申请实施例中,步骤230,根据所述待检测分库分表特征,获取所述待检测分库分表的类型,包括:
将所述待检测分库分表特征相同的待检测分库分表作为同一聚类的分库分表;
获取所述同一聚类的分库分表的类型。
本申请实施例中,将所述分库分表特征相同的分库分表作为同一聚类的分库分表,可以采用聚类的方法,例如有系统聚类法、动态聚类法等,在此不再赘述。
本申请实施例中,获取所述同一聚类的分库分表的类型,包括:
判断所述同一聚类的分库分表中的任意一个分库分表的分表序号是否为合法日期;
若所述同一聚类的分库分表中的任意一个分库分表的分表序号为合法日期,则确认所述类型为日期分库分表;
若所述同一聚类的分库分表中的任意一个分库分表的分表序号不是合法日期,则确认所述类型为散列分库分表或为范围分库分表。
其中,散列分库分表也称为hash分库分表。
分库分表基础类型主要为hash类型、范围类型和日期类型,因hash和范围本质上都是相似的,因此,这两者可以归为一个聚类。
分库分表中包含的分表序号可以作为区分不同类型的标准。合法日期是指符合日常规范的日期。例如分表序号可以是当前时刻之前的日期,或确实存在的日期。
如果当前时刻是2020年4月22日16:00,那么分表序号如果指示的是上述时刻之前的日期,则认为可能是合法日期,在上述时刻之后的日期,则认为肯定是不合法日期。
分表序号如果指示的是确实存在的日期,例如2019年2月25日,则认为可能是合法日期,如果指示的是不存在的例如,例如2019年2月30日,则认为肯定是不合法日期。
步骤240,根据待检测分库分表的类型,生成预期分库分表列表。
本申请实施例中,在步骤240之前,所述方法还包括:
获取待检测分库分表的范围。
分库分表的数量是非常多的,为了提高检测效率,通常需要获取待检测分库分表的范围。
待检测分库分表的范围可以是某一时间段,待检测分库分表的范围可以是系统中预设的,或者是按照约定俗成的范围,或者是用户自行设定的范围,例如24小时,1个小时等。
例如一种分库分表的类型为:db_[xx].table_[yyyymm],范围为:['00-09','201901-201912']。根据是上述分库分表的类型和上述分库分表的范围,生成的预期分库列表为包含db_00.table_201901、db_00.table_201902...db_09.table_201912在内的120张表。
步骤250,将待检测分库分表与预期分库分表列表作对比。
步骤260,若预期分库分表列表中每一个分库分表,都在所述待检测分库分表中存在,则确认待检测分库分表无漏表。
例如,根据是上述分库分表的类型和上述分库分表的范围,生成的预期分库分表列表为包含db_00.table_201901、db_00.table_201902...db_09.table_201912在内的120张表。如果这120张表在待检测分库分表中都存在,则确认待检测分库分表无漏表,如果这120张表中有任意一张表在待检测分库分表中不存在,则确认待检测分库分表有漏表。
预期分库分表列表是该类别下按照数据库分库分表的预设规则生成的,是该类别理论上应该存在所有分库分表。由于上述预设规则是数据库的基础的规则之一,所以以预期分库分表的作为漏表判断的标准,准确度较高。
本申请实施例提供了一种分库分表检测方法,包括:获取待检测分表分库信息;根据所述待检测分库分表信息,获取待检测分库分表特征;根据所述待检测分库分表特征,获取所述待检测分库分表的类型;根据所述待检测分库分表的类型,生成预期分库分表列表;将所述待检测分库分表与所述预期分库分表列表作对比;若所述预期分库分表列表中每一个分库分表,都在所述待检测分库分表中存在,则确认所述待检测分库分表无漏表。本申请实施例中,获取待检测分库分表的类别,根据分库分表的类别生成预期分库分表列表,将预期分库分表列表和待检测分库分表进行对比,从而确定待检测分库分表中是否有漏表,可以自动检测分库分表是否有漏表,无需人工干预,效率较高;同时本申请实施例通过预期分库分表列表作为检测标准,精确度较高。
本申请实施例中还提供了另一种获取同一聚类的分库分表的类型的方法,包括:
将所述同一聚类的分库分表的分库分表特征,与预设白名单中分库分表特征作匹配;
若所述同一聚类的分库分表的分库分表特征,与所述预设白名单中任一项分库分表特征相匹配,则确认所述同一聚类的分库分表的类型为相匹配分库分表特征所对应的类型。
本申请实施例的某些应用场景下,可能存在非标准的分库分表序号,为了能够正确识别该分库分表,本申请实施例中设定了白名单,在获取同一聚类的分库分表的类型时,在白名单中指定该聚类分库分表对应的类型,可以提高分库分表类型确认的准确率,进而提高判断分库分表是否有漏表的准确率。
本申请实施例中,所述待检测将分库分表特征相同的待检测分库分表作为同一聚类的分库分表之后,所述方法还包括:
获取所述同一聚类的分库分表的总数量;
若所述总数量小于预设值,则确认所述同一聚类的分库分表为非标准类型;
过滤非标准类型的分库分表。
通常情况下,每一聚类的分库分表一般都会存在若干个表,但在本申请的某些应用场景中,特别是根据白名单确定的分库分表,可能出现某一个聚类的分库分表数量过少,如果某一聚类的分库分表数量少于某一个值N,则一般可认为该聚类的分库分表为非标准分库分表,因此本申请实施例中通过设定预设值来过滤掉非标准分库分表。根据实际情况和经验值,预设值可配置为大于0的任意整数。
过滤非标准型分库分表这一步骤可以在确定某一聚类的分库分表的类型之前进行,或可以在确定某一聚类的分库分表的类型之后进行,显然在确定类型之前进行效率更好,对资源的消耗更少。
通过设置预设值来过滤非标准分库分表,可以提高分库分表类型确认的准确率,进而提高判断分库分表是否有漏表的准确率。
本申请实施例的上述方法,可以自动检测分库分表是否有漏表,无需人工干预,效率较高;同时本申请实施例通过预期分库分表列表作为检测标准,精确度较高。此外,本申请实施例的方法,还可以提高分库分表类型确认的准确率,进而提高判断分库分表是否有漏表的准确率。
本申请实施例还提供了在确认待检测分库分表类型之后,判断该类型的分库分表的一致性的方法。
在上述步骤230之后,即在获取待检测分库分表的类型之后,所述方法还包括:
根据所述待检测分库分表的类型,获取对应的模板表;
将所述类型的所有待检测分库分表与所述对应的模板表作对比;
若所述类型的所有待检测分库分表与所述对应的模板表一致,则确认所述类型的待检测分库分表具有一致性。
本申请实施例中,根据数据库的构造,每一个类型的分库分表对应模板表,将待检测分库分表与对应的模板表作对比,如果所有待检测分库分表与对应的模板表一致,即说明所有的该类型的分库分表具有一致性。本申请实施例的方法,在分类之后,通过中间文档模板表可以确定待检测分库分表的一致性,无需人工干预,效率较高,准确度也较高。
本申请实施例中,根据待检测分库分表的类型,获取对应的模板表,包括:
若所述待检测分库分表的类型是日期分库分表,则:
获取当前日期正在使用的分库分表的类型;
根据所述当前日期正在使用的分库分表的类型中的分表规则,获取所述对应的模板表。
本申请实施例中,所述根据当前日期正在使用的分库分表的类型中的分表规则,获取对应的模板表,包括:
若当前正在使用的分库分表的分表规则是按照年分库分表,则当前年份正在使用的分库分表为所述对应的模板表;
若当前正在使用的分库分表的分表规则是按照年月分库分表,则当前年月正在使用的分库分表为所述对应的模板表;
若当前正在使用的分库分表的分表规则是按照年月日分库分表,则当前年月日正在使用的分库分表为所述对应的模板表。
本申请实施例中,按日期分库分表存在历史表,而历史表不一定需要访问,因此需要找出当前日期正在使用的分表作为所述对应的模板表。
本申请实施例中,所述根据待检测分库分表的类型,获取对应类型的模板表,包括:
若所述待检测分库分表的类型是hash分库分表或范围分库分表,则:
获取所述类型的任意一个分库分表作为所述对应类型的模板表。
根据数据库的规则,如果是hash分库分表或者范围分库分表,这两类分库分表类型具有平均分配的特性,意味着每一张分库分表都是当前的系统在读写的,属于使用中的分库分表,因此该类型的所有分库分表都可以作为模板表。因此本申请实施例中,对于hash分库分表,就获取任意一个hash类型的分库分表作为模板表;对于范围分库分表,就获取任意一个范围类型的分库分表作为模板表。
在实际应用中,还存在一些复杂的组合分库分表类型,针对这种分库分表,需要先将组合分库分表类型分解为基础的分库分表,然后获取拆分后的分库分表对应的类型,然后再进行一致性的判断。
例如先把组合分库分表类型中的任意一个组合分库分表拆分成多个分库分表,这些拆分后的分库分表可能包括hash类型的分库分表、范围分库分表和日期分库分表。对每一种类型的分库分表,分别判断一致性。在该组合分库分表拆分后的所有分库分表都与对应的模板表一致,则可以认为该组合分库分表与模板表一致。在该组合分库分表类型中的所有组合分库分表与模板表一致,才能认为该组合分库分表类型中的所有组合分库分表具有一致性。
现有技术中检测分库分表中是否有漏表和一致性是通过人工检测的,对于大型数据库,检测一次大概需要几十个人天,借助本申请实施例的方法,可以自动对分库分表进行漏表检测和一致性判断,无需人工干预,极大的提高了工作效率。
在超大型互联网系统中,整个系统分库分表数量会达到千万级,现有技术中的方案都需要人工介入,由于人工介入时效性很差,还容易有疏漏,所以会存在至少几个小时甚至更多的空白时间,这个时间段内,由于分库分表的漏表或不一致性导致的其他严重问题不能及时被发现。本申请只要在数据库创建了分库分表就可以进行自动化实时检测,有异常在秒级就可以发现,最大程度保证了系统可用性,减少了系统异常,减少业务损失,还能提高漏表及一致性检测的准确度。
图3所示为本申请实施例的分库分表检测方法的流程图,如图3所示,所述方法包括:
步骤310,获取待检测分表分库信息。
步骤320,根据待检测分库分表信息,获取待检测分库分表特征。
步骤330,将所述待检测分库分表特征相同的待检测分库分表作为同一聚类的分库分表。
步骤340,将同一聚类的待检测分库分表特征,与预设白名单中分库分表特征作匹配与预设白名单中分库分表特征作匹配,若匹配,转至步骤350,若不匹配,转至步骤360。
步骤350,确认待检测分库分表的类型为相匹配特征所对应的类型,转至步骤340。
步骤360,判断同一聚类的分库分表的总数量是否小于预设值,如果否,则转至步骤380;若是,则转至步骤370。
步骤370,过滤该聚类的分库分表,转至步骤360。
步骤380,判断该聚类的任意一个分库分表的分表序号是否为合法日期,若是,则转至步骤390,若否,则转至步骤391。
步骤390,确认所述类型为日期分库分表;
步骤391,确认所述类型为hash分库分表或为范围分库分表。
图4所示为本申请实施例的分库分表检测方法的流程图,如图4所示,所述方法包括:
步骤410,获取待检测分表分库信息;
步骤420,根据待检测分库分表信息,获取待检测分库分表特征;
步骤430,根据待检测分库分表特征,获取待检测分库分表的类型;
步骤440,获取待检测的分库分表的范围。若要进行漏表判断,则转至步骤450,若是要进行一致性判断,则转至步骤480。
步骤450,根据所述待检测分库分表的类型,生成预期分库分表列表;
步骤460,将待检测分库分表与预期分库分表列表作对比;
步骤470,若所述预期分库分表列表中每一个分库分表,都在所述待检测分库分表中存在,则确认所述待检测分库分表无漏表。
若还是需要进行一致性判断,则转至步骤480。
步骤480,根据所述待检测分库分表的类型,获取对应的模板表。
步骤490,将所述类型的所有待检测分库分表与所述对应的模板表作对比;
步骤491,若所述类型的所有待检测分库分表与所述对应的模板表一致,则确认所述类型的待检测分库分表具有一致性。
若是需要进行漏表检测,则转至步骤450。
本申请实施例的方法中,可以先进行漏表检测,或可以先进行一致性检测,或是可以一致性检测和漏表检测并行。
图2至4为一个实施例中分库分表检测方法的流程示意图。应该理解的是,虽然图2至4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图5所示为本申请实施例的分库分表检测装置的示意图,如图5所示,所述装置包括:
信息获取单元510,用于获取待检测分表分库信息;
特征获取单元520,用于根据所述待检测分库分表信息,获取待检测分库分表特征;
类型获取单元530,用于根据所述待检测分库分表特征,获取所述待检测分库分表的类型;
生成单元540,用于根据所述待检测分库分表的类型,生成预期分库分表列表;
对比单元550,用于将所述待检测分库分表与所述预期分库分表列表作对比;
漏表检测单元560,用于若所述预期分库分表列表中每一个分库分表,都在所述待检测分库分表中存在,则确认所述待检测分库分表无漏表。
本申请实施例中,所述装置还包括范围获取单元,所述范围获取单元用于获取待检测分库分表的范围;
所述生成单元540还用于根据所述待检测分库分表的类型及所述待检测分库分表的范围,生成预期分库分表列表。
本申请实施例中,所述特征获取单元520还用于将所述待检测分库分表信息中包含的全部序号用特定字符代替后的字符串,作为所述待检测分库分表特征。
本申请实施例中,类型获取单元530还用于:
将所述待检测分库分表特征相同的待检测分库分表作为同一聚类的分库分表;
获取所述同一聚类的分库分表的类型。
本申请实施例中,类型获取单元530还用于:
判断所述同一聚类的分库分表中的任意一个分库分表的分表序号是否为合法日期;
若所述同一聚类的分库分表中的任意一个分库分表的分表序号为合法日期,则确认所述类型为日期分库分表;
若所述同一聚类的分库分表中的任意一个分库分表的分表序号不是合法日期,则确认所述类型为散列分库分表或为范围分库分表。
本申请实施例中,类型获取单元530还用于:
将所述同一聚类的分库分表的分库分表特征,与预设白名单中分库分表特征作匹配;
若所述同一聚类的分库分表的分库分表特征,与所述预设白名单中任一项分库分表特征相匹配,则确认所述同一聚类的分库分表的类型为相匹配分库分表特征所对应的类型。
本申请实施例中,所述装置还包括过滤单元,用于:
获取所述同一聚类的分库分表的总数量;
若所述总数量小于预设值,则确认所述同一聚类的分库分表为非标准类型;
过滤非标准类型的分库分表。
本申请实施例中,所述装置还包括一致性判断单元,用于:
根据所述待检测分库分表的类型,获取对应的模板表;
将所述类型的所有待检测分库分表与所述对应的模板表作对比;
若所述类型的所有待检测分库分表与所述对应的模板表一致,则确认所述类型的待检测分库分表具有一致性。
本申请实施例中,一致性判断单元还用于:
若所述待检测分库分表的类型是日期分库分表,则:
获取当前日期正在使用的分库分表的类型;
根据所述当前日期正在使用的分库分表的类型中的分表规则,获取所述对应的模板表。
本申请实施例中,一致性判断单元还用于:
若当前正在使用的分库分表的分表规则是按照年分库分表,则当前年份正在使用的分库分表为所述对应的模板表;
若当前正在使用的分库分表的分表规则是按照年月分库分表,则当前年月正在使用的分库分表为所述对应的模板表;
若当前正在使用的分库分表的分表规则是按照年月日分库分表,则当前年月日正在使用的分库分表为所述对应的模板表。
本申请实施例中,一致性判断单元还用于:
若所述待检测分库分表的类型是hash分库分表或范围分库分表,则:
获取所述类型的任意一个分库分表作为所述对应类型的模板表。
本申请实施例的分库分表检测单元,能提高分库分表检测的效率和准确率。
在一个实施例中,本申请提供的分库分表检测装置可以实现为一种计算机程序的形式,计算机程序可在如图6所示的计算机设备上运行。计算机设备的存储器中可存储组成该分库分表装置的各个程序模块,比如,图5所示的信息获取单元510、特征获取单元520、类型获取单元530、生成单元540、对比单元550和漏表检测单元560块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的分库分表检测方法中的步骤。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取待检测分表分库信息;根据所述待检测分库分表信息,获取待检测分库分表特征;根据所述待检测分库分表特征,获取所述待检测分库分表的类型;根据所述待检测分库分表的类型,生成预期分库分表列表;将所述待检测分库分表与所述预期分库分表列表作对比;若所述预期分库分表列表中每一个分库分表,都在所述待检测分库分表中存在,则确认所述待检测分库分表无漏表。
在一个实施例中,处理器执行计算机程序时实现上述方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取待检测分表分库信息;根据所述待检测分库分表信息,获取待检测分库分表特征;根据所述待检测分库分表特征,获取所述待检测分库分表的类型;根据所述待检测分库分表的类型,生成预期分库分表列表;将所述待检测分库分表与所述预期分库分表列表作对比;若所述预期分库分表列表中每一个分库分表,都在所述待检测分库分表中存在,则确认所述待检测分库分表无漏表。
在一个实施例中,计算机程序被处理器执行时还实现上述方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种分库分表检测方法,其特征在于,所述方法包括:
获取待检测分表分库信息;
根据所述待检测分库分表信息,获取待检测分库分表特征;
根据所述待检测分库分表特征,获取所述待检测分库分表的类型;
根据所述待检测分库分表的类型,生成预期分库分表列表;
将所述待检测分库分表与所述预期分库分表列表作对比;
若所述预期分库分表列表中每一个分库分表,都在所述待检测分库分表中存在,则确认所述待检测分库分表无漏表;
其中,所述根据所述待检测分库分表信息,获取待检测分库分表特征,包括:
将所述待检测分库分表信息中包含的全部序号用特定字符代替后的字符串,作为所述待检测分库分表特征,所述特定字符为“#”字符;
所述根据所述待检测分库分表特征,获取所述待检测分库分表的类型,包括:
将所述待检测分库分表特征相同的待检测分库分表作为同一聚类的分库分表;
获取所述同一聚类的分库分表的类型。
2.根据权利要求1所述的方法,其特征在于,所述生成预期分库分表列表之前,所述方法还包括:
获取待检测分库分表的范围;
所述根据所述待检测分库分表的类型,生成预期分库分表列表,还包括:
根据所述待检测分库分表的类型及所述待检测分库分表的范围,生成预期分库分表列表。
3.根据权利要求1所述的方法,其特征在于,所述获取所述同一聚类的分库分表的类型,包括:
判断所述同一聚类的分库分表中的任意一个分库分表的分表序号是否为合法日期;
若所述同一聚类的分库分表中的任意一个分库分表的分表序号为合法日期,则确认所述类型为日期分库分表;
若所述同一聚类的分库分表中的任意一个分库分表的分表序号不是合法日期,则确认所述类型为散列分库分表或为范围分库分表。
4.根据权利要求1所述的方法,其特征在于,所述获取所述同一聚类的分库分表的类型,包括:
将所述同一聚类的分库分表的分库分表特征,与预设白名单中分库分表特征作匹配;
若所述同一聚类的分库分表的分库分表特征,与所述预设白名单中任一项分库分表特征相匹配,则确认所述同一聚类的分库分表的类型为相匹配分库分表特征所对应的类型。
5.根据权利要求1所述的方法,其特征在于,所述将所述待检测分库分表特征相同的分库分表作为同一聚类的分库分表之后,所述方法还包括:
获取所述同一聚类的分库分表的总数量;
若所述总数量小于预设值,则确认所述同一聚类的分库分表为非标准类型;
过滤非标准类型的分库分表。
6.根据权利要求1所述的方法,其特征在于,所述获取所述待检测分库分表的类型之后,所述方法还包括:
根据所述待检测分库分表的类型,获取对应的模板表;
将所述类型的所有待检测分库分表与所述对应的模板表作对比;
若所述类型的所有待检测分库分表与所述对应的模板表一致,则确认所述类型的待检测分库分表具有一致性。
7.根据权利要求6所述的方法,其特征在于,所述根据所述待检测分库分表的类型,获取对应的模板表,包括:
若所述待检测分库分表的类型是日期分库分表,则:
获取当前日期正在使用的分库分表的类型;
根据所述当前日期正在使用的分库分表的类型中的分表规则,获取所述对应的模板表。
8.根据权利要求7所述的方法,其特征在于,所述根据所述当前日期正在使用的分库分表的类型中的分表规则,获取所述对应的模板表,包括:
若当前正在使用的分库分表的分表规则是按照年分库分表,则当前年份正在使用的分库分表为所述对应的模板表;
若当前正在使用的分库分表的分表规则是按照年月分库分表,则当前年月正在使用的分库分表为所述对应的模板表;
若当前正在使用的分库分表的分表规则是按照年月日分库分表,则当前年月日正在使用的分库分表为所述对应的模板表。
9.根据权利要求6所述的方法,其特征在于,所述根据所述待检测分库分表的类型,获取对应类型的模板表,包括:
若所述待检测分库分表的类型是散列分库分表或范围分库分表,则:
获取所述类型的任意一个分库分表作为所述对应类型的模板表。
10.一种分库分表检测装置,其特征在于,所述装置包括:
信息获取单元,用于获取待检测分表分库信息;
特征获取单元,用于根据所述待检测分库分表信息,获取待检测分库分表特征;
类型获取单元,用于根据所述待检测分库分表特征,获取所述待检测分库分表的类型;
生成单元,用于根据所述待检测分库分表的类型,生成预期分库分表列表;
对比单元,用于将所述待检测分库分表与所述预期分库分表列表作对比;
漏表检测单元,用于若所述预期分库分表列表中每一个分库分表,都在所述待检测分库分表中存在,则确认所述待检测分库分表无漏表;
所述特征获取单元还用于将所述待检测分库分表信息中包含的全部序号用特定字符代替后的字符串,作为所述待检测分库分表特征,所述特定字符为“#”字符;
所述类型获取单元还用于将所述待检测分库分表特征相同的待检测分库分表作为同一聚类的分库分表;获取所述同一聚类的分库分表的类型。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010438062.6A CN111666286B (zh) | 2020-05-21 | 2020-05-21 | 分库分表检测方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010438062.6A CN111666286B (zh) | 2020-05-21 | 2020-05-21 | 分库分表检测方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111666286A CN111666286A (zh) | 2020-09-15 |
CN111666286B true CN111666286B (zh) | 2023-06-30 |
Family
ID=72384244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010438062.6A Active CN111666286B (zh) | 2020-05-21 | 2020-05-21 | 分库分表检测方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111666286B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527785B (zh) * | 2020-12-16 | 2023-07-21 | 平安银行股份有限公司 | 数据补录方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110320414A1 (en) * | 2010-06-28 | 2011-12-29 | Nhn Corporation | Method, system and computer-readable storage medium for detecting trap of web-based perpetual calendar and building retrieval database using the same |
CN108874828A (zh) * | 2017-05-12 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 数据迁移的方法和装置 |
CN109828979A (zh) * | 2019-01-31 | 2019-05-31 | 浙江小泰科技有限公司 | 一种数据一致性检测方法及系统 |
CN110209650A (zh) * | 2019-05-05 | 2019-09-06 | 苏宁易购集团股份有限公司 | 数据规整迁移方法、装置、计算机设备和存储介质 |
CN110909004A (zh) * | 2019-11-29 | 2020-03-24 | 南京领行科技股份有限公司 | 一种分库分表的数据校验方法及设备 |
-
2020
- 2020-05-21 CN CN202010438062.6A patent/CN111666286B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110320414A1 (en) * | 2010-06-28 | 2011-12-29 | Nhn Corporation | Method, system and computer-readable storage medium for detecting trap of web-based perpetual calendar and building retrieval database using the same |
CN108874828A (zh) * | 2017-05-12 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 数据迁移的方法和装置 |
CN109828979A (zh) * | 2019-01-31 | 2019-05-31 | 浙江小泰科技有限公司 | 一种数据一致性检测方法及系统 |
CN110209650A (zh) * | 2019-05-05 | 2019-09-06 | 苏宁易购集团股份有限公司 | 数据规整迁移方法、装置、计算机设备和存储介质 |
CN110909004A (zh) * | 2019-11-29 | 2020-03-24 | 南京领行科技股份有限公司 | 一种分库分表的数据校验方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111666286A (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10242016B2 (en) | Systems and methods for management of data platforms | |
CN111459985B (zh) | 标识信息处理方法及装置 | |
US20160078064A1 (en) | Automatic generation of logical database schemas from physical database tables and metadata | |
US20120203745A1 (en) | System and method for range search over distributive storage systems | |
CN111552687A (zh) | 时序数据的存储方法、查询方法、装置、设备及存储介质 | |
US11321315B2 (en) | Methods and systems for database optimization | |
CN109117440B (zh) | 一种元数据信息获取方法、系统和计算机可读存储介质 | |
US10776345B2 (en) | Efficiently updating a secondary index associated with a log-structured merge-tree database | |
CN111190901B (zh) | 业务数据存储方法、装置、计算机设备和存储介质 | |
CN111008200A (zh) | 数据查询方法、装置和服务器 | |
CN109299205B (zh) | 将规划行业使用的空间数据进行入库的方法和装置 | |
CN111666286B (zh) | 分库分表检测方法、装置、计算机设备和存储介质 | |
CN112685415A (zh) | 数据导入方法、装置、计算机设备和存储介质 | |
CN109344163B (zh) | 一种数据校验方法、装置和计算机可读介质 | |
CA3142579A1 (en) | Method and apparatus for validation of event tracking acquired data | |
CN114153898A (zh) | 梳理数据库表间关系的方法、装置及应用 | |
KR20170137756A (ko) | 다수의 중첩하는 소스들로부터 대량의 시간적 데이터의 어그리게이트 | |
CN116303628B (zh) | 基于Elasticsearch的告警数据查询方法、系统及设备 | |
CN110442634B (zh) | 数据存储的方法及装置 | |
CN115309702B (zh) | 基于usn日志的文件检索管理方法、装置、系统、设备 | |
CN115510289A (zh) | 一种数据立方体配置方法、装置、电子设备及存储介质 | |
CN112487039B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN113934729A (zh) | 一种基于知识图谱的数据管理方法、相关设备及介质 | |
EP3436988B1 (en) | "methods and systems for database optimisation" | |
CN111651466A (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 |