一种基于频度分区的数据表比对更新方法与装置制造方法
【专利摘要】本公开涉及一种基于频度分区的数据表比对更新方法与装置。该方法包括基于接收到的数据表中各字段对应的数据分别计算数据表的各个分区的CRC校验码,其中,数据表的各个分区是按照数据表中各字段的更新频率划分的;利用数据表中的主键和计算出的各个分区的CRC校验码与存储的主键和各个分区的CRC校验码进行比对,以根据CRC校验码的不同确定数据有更新的分区;根据处理需求对数据有更新的分区进行相应的处理;更新存储的CRC校验码。本公开可以较快的定位有更新的字段区域,提高数据比对效率。
【专利说明】一种基于频度分区的数据表比对更新方法与装置
【技术领域】
[0001] 本公开涉及云计算领域,特别地,涉及一种数据表比对更新方法与装置。
【背景技术】
[0002] 随着大数据时代的到来,在企业数据应用中,经常需要对数据,特别是对诸如系统 间共享的主数据进行稽核、增量更新上传、生命周期管理等处理,这些处理在数据库中更多 涉及到对数据表进行全字段的比对更新等操作。如果数据表中字段多、数据量大,则该环节 将成为数据处理的性能瓶颈所在,因此,如何对较大的数据表中的各项数据进行高效地比 对是目前亟待解决的技术问题。
【发明内容】
[0003] 本公开鉴于以上问题中的至少一个提出了新的技术方案。
[0004] 本公开在其一个方面提供了一种数据表比对更新方法,其可以较快的定位有更新 的字段区域,提高数据比对效率。
[0005] 本公开在其另一方面提供了一种数据表比对更新装置,其可以较快的定位有更新 的字段区域,提高数据比对效率。
[0006] 根据本公开,提供一种数据表比对更新方法,包括:
[0007] 基于接收到的数据表中各字段对应的数据分别计算数据表的各个分区的CRC校 验码,其中,数据表的各个分区是按照数据表中各字段的更新频率划分的;
[0008] 利用数据表中的主键和计算出的各个分区的CRC校验码与存储的主键和各个分 区的CRC校验码进行比对,根据CRC校验码的不同确定数据有更新的分区;
[0009] 根据处理需求对数据有更新的分区进行相应的处理;
[0010] 更新存储的CRC校验码。
[0011] 在本公开的一些实施例中,更新存储的CRC校验码的步骤包括:
[0012] 如果计算出的CRC校验码与存储的CRC校验码不同,则利用计算出的CRC校验码 更新相应分区的存储的CRC校验码。
[0013] 在本公开的一些实施例中,更新存储的CRC校验码的步骤包括:
[0014] 判断数据表中各字段的更新频率在维护周期内是否超过预定的分区范围或阈 值;
[0015] 如一个或多个字段超过预定的分区范围或阈值,则根据一个或多个字段的更新频 率重新调整分区;
[0016] 基于调整后的分区生成并存储各个分区的CRC校验码。
[0017] 根据本公开,还提供了一种数据表比对更新装置,包括:
[0018] CRC校验码计算单元,用于基于接收到的数据表中各字段对应的数据分别计算数 据表的各个分区的CRC校验码,其中,数据表的各个分区是按照数据表中各字段的更新频 率划分的;
[0019] CRC比对单元,用于利用数据表中的主键和计算出的各个分区的CRC校验码与存 储的主键和各个分区的CRC校验码进行比对,以根据CRC校验码的不同确定数据有更新的 分区;
[0020] 数据处理单元,用于根据处理需求对数据有更新的分区进行相应的处理;
[0021] CRC校验码更新单元,用于更新存储的CRC校验码。
[0022] 在本公开的一些实施例中,如果计算出的CRC校验码与存储的CRC校验码不同,则 CRC校验码更新单元利用计算出的CRC校验码更新相应分区的存储的CRC校验码。
[0023] 在本公开的一些实施例中,CRC校验码更新单元判断数据表中各字段的更新频率 在维护周期内是否超过预定的分区范围或阈值;如一个或多个字段超过预定的分区范围或 阈值,则根据一个或多个字段的更新频率重新调整分区;基于调整后的分区生成并存储各 个分区的CRC校验码。
[0024] 在本公开的技术方案中,由于根据数据表各字段的更新频率对数据表的字段进行 了分区,在进行比对时,就可以不像现有技术那样逐个字段地进行比较,而是先对所分的各 个区的CRC校验码进行比较,在CRC校验码相同的情况下,就可以知道该区域内的数据与上 次相比没有发生变化,而仅针对CRC校验码发生变化的区域再根据用户需求确定是否需要 逐个字段地进行比较,显著提高了对变更数据的定位速度。
【专利附图】
【附图说明】
[0025] 此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分。在附 图中:
[0026] 图1是本公开一个实施例的数据表比对更新方法的流程示意图。
[0027] 图2是本公开一个实施例的数据表比对更新方法的流程示意图。
[0028] 图3是本公开对数据表进行更新频度分区的示意图。
[0029] 图4是本公开一个实施例的数据表比对更新装置的结构示意图。
【具体实施方式】
[0030] 下面将参照附图描述本公开。要注意的是,以下的描述在本质上仅是解释性和示 例性的,决不作为对本公开及其应用或使用的任何限制。除非另外特别说明,否则,在实施 例中阐述的部件和步骤的相对布置以及数字表达式和数值并不限制本公开的范围。另外, 本领域技术人员已知的技术、方法和装置可能不被详细讨论,但在适当的情况下意在成为 说明书的一部分。
[0031] 为了解决对数据表进行全字段对比更新时资源消耗大、耗时长的问题,本公开下 述实施例根据数据表字段的更新频度,对数据表各字段进行了分区并根据各分区内字段的 数值生成各分区的CRC (Cyclic Redundancy Check,循环冗余校验)校验码;利用新表的主 键加 CRC检验码与上次存储的主键加 CRC校验码进行比对,获取有更新的字段对应的值和 变更的分区;对有更新的记录进行操作,需要更新的进行分区字段的更新;数据处理完成 后,基于新的数据更新变化分区的CRC校验码。
[0032] 图1是本公开一个实施例的数据表比对更新方法的流程示意图。
[0033] 如图1所示,该实施例可以包括以下步骤:
[0034] S102,基于接收到的数据表中各字段对应的数据分别计算数据表的各个分区的 CRC校验码,其中,数据表的各个分区是按照数据表中各字段的更新频率划分的;
[0035] 例如,如需定位出数据表中到底哪儿字段有更新,则可以根据数据表中各字段的 更新频率对数据表的字段进行分区,可以将更新频率较高的字段分到一个区,将更新频率 较低的字段分到另一个区,在将几乎不更新的字段分到一个区,这样在进行数据表比对时, 就可以集中地对某个或某几个字段区的数值进行比较,显著提高了数据表的比对效率。
[0036] 具体地,可以根据业务场景来确定如何分区,例如,客户性别、身份证号码等信息 更新频率较低的可以分在一个区,客户时长等随客户行为变化的信息更新频率较高的分在 一个区,分区个数根据数据表的字段数和字段的变更属性而定,要从业务角度和技术角度 综合考虑,并不是分的区越多越好。
[0037] 如仅需判断整个数据表是否发生变换,无需定位出发生变化的字段,则可以将整 个表作为一个区,而不再根据更新频率对其进行细分。
[0038] 在对数据表进行分区后,将每个区中各字段对应的数值按照固定的顺序串起来, 作为一个字符串输入到CRC函数中就可以计算出各个分区的CRC校验码。
[0039] S104,利用数据表中的主键和计算出的各个分区的CRC校验码与存储的主键和各 个分区的CRC校验码进行比对,以根据CRC校验码的不同确定数据有更新的分区;
[0040] 其中,数据表中的主键用于唯一标识数据表,其可以是一个或多个标识,能够唯一 的标识数据表中的一条记录,此外,主键也可以由多个字段联合组成。
[0041] 利用该主键在存储区中查找与其对应的数据表的上次CRC校验码,将本次新计算 出的每个分区的CRC校验码与上次存储的CRC校验码一一比对,就可以知道数据表中哪个 分区的数值有变化了。
[0042] S106,根据处理需求对数据有更新的分区进行相应的处理;
[0043] 例如,可以根据处理需求对数据表进行更改、增加或删除。例如,可以通过当前数 据表的主键和CRC码,与在存储中的表的主键和CRC码进行关联比对,如果某记录在当前数 据表中存在而在存储中的表中不存在,则为新增的记录;如果存储中数据表的某条记录在 当前数据表中关联不上,则说明该条记录需要删除。
[0044] 如果在比对过程中发现存储的某个主键对应的值在新的数据表中不存在,则表 明,需要删除与该主键对应的整个数据条目。
[0045] 如果将新数据表中的主键对应的值与存储的历史表中的主键对应的值比较,两者 相同,再继续比较各个分区的CRC校验码,如校验码相同,则表明此条主键对应的记录未改 变,如某个分区的CRC校验码不同,则表明该分区内某个/些字段对应的数值发生了变化, 此时,可以利用分区覆盖法或相应字段数值更新法更新存储区内该字段的数值,同时更新 该分区的CRC校验码。
[0046] S108,更新存储的CRC校验码。
[0047] 该实施例由于根据数据表各字段的更新频率对数据表的字段进行了分区,在进行 比对时,就可以不像现有技术那样逐个字段地进行比较,而是先对所分的每个区的CRC校 验码进行比较,在CRC校验码相同的情况下,就可以知道该区域内的数据与上次相比没有 发生变化,而仅针对CRC校验码发生变化的区域再根据用户需求确定是否需要逐个字段地 进行比较,显著提高了对变更数据的定位速度。
[0048] 其中,步骤S108中更新存储的CRC校验码的步骤可以包括:
[0049] 如果计算出的CRC校验码与存储的CRC校验码不同,则利用计算出的CRC校验码 更新相应分区的存储的CRC校验码。同时,也将更新相应分区中各字段对应的数值。
[0050] 进一步地,步骤S108中更新存储的CRC校验码的步骤可以包括:
[0051] 判断数据表中各字段的更新频率在维护周期内是否超过预定的分区范围或阈 值;
[0052] 如一个或多个字段超过预定的分区范围或阈值,则根据该一个或多个字段的更新 频率重新调整分区;
[0053] 基于调整后的分区生成并存储各个分区的CRC校验码。
[0054] 例如,某个字段从更新频率较低转为更新频率较高,则可以将该字段添加到更新 频率较高的分区中,如发现数据表中原来更新频率较低的字段几乎不太更新,则也可以将 该字段从更新频率较低的分区中重新划分到几乎不更新的分区中,防止多个分区同时都有 更新,因此,这种动态调整数据表中各字段分区的方式可以进一步提高数据表的比对效率。
[0055] 此外,在比对需求为比较数据表内的数据是否发生变化时,将整个数据表中除主 键外的所有字段作为一个分区。如果除主键之外的所有字段对应的数值的CRC校验码有变 化,则表明当前数据表与存储的历史数据表存在不同。如想了解具体的不同在哪里,可以再 根据前述方法根据数据表中各个字段的更新频率对数据表进行分区,以进一步定位是哪个 分区内的字段所对应的数值有变化。
[0056] 图2是本公开一个实施例的数据表比对更新方法的流程示意图。
[0057] 如图2所示,该实施例可以包括以下步骤:
[0058] S202,接收待处理数据;
[0059] 其中,根据场景的不同,待处理数据可以是自业务系统抽取过来的数据,也可以是 由数据仓库汇总计算后的数据。
[0060] S204,基于当前数据生成CRC比对辅助临时表,该表由主键和各个分区的CRC校验 码构成,其中,根据接收数据表中各个字段的更新频率对数据表进行分区;
[0061] 具体地,频度分区主要是根据数据表中各字段的更新频率对数据表进行区域划 分,然后针对每个频度区域的字段分别生成相应的CRC检验码,并生成主键加 CRC检验码的 临时结果集或临时表。
[0062] 图3是本公开对数据表进行更新频度分区的示意图。
[0063] 如图3所示,统计周期与产权客户标识为该数据表的联合主键,用于唯一标识该 数据表。根据各个字段的更新频度,将该数据表划分为3个区域,第一个区域内的各字段的 更新频率低,第二个区域内的各字段的更新频率适中,第三个区域内的各字段的更新频率 高。但是图3中的区域划分方法并不固定,在每次比对后,可以根据实际各个字段的更新频 率调整各个区域的划分,并基于新划分后的区域生成CRC校验码进行存储。
[0064] 其中,更新频率是指某字段在周期内变化的机率,例如,客户性别、证件号码等字 段可能在客户的全生命周期内都不会发生变化,客户拥有的手机个数、固话个数等字段只 有在客户办理新业务时才会发生变化,客户当月通话时长、上网时长等字段每个周期都会 发生变化。
[0065] 其中,CRC检验码是指通过数据库系统自带的CRC或MD5 (Message Digest5,消 息摘要5)函数生成的唯一串码,一个分区的CRC函数输入为该分区内的所有字段对应的数 值。
[0066] S206,将存储区内上次存储的CRC比对辅助表与当前生成的CRC比对辅助临时表 进行比较,如各个区的CRC校验码均相同,则表明前后两个数据表的数据未发生变化,无需 更新存储的CRC比对辅助表,否则,转S208。
[0067] S208,如某个/些区域的CRC校验码不相同,则表明该/这些区域内的数据有更 新,此时可以根据比对结果,按照业务需求进行数据的下一步处理,例如,增量数据上传、增 量数据的增、删、改,数据预警等操作。例如,某次来的数据发现90%对不上了,可以考虑怀 疑原始数据存在问题,并且可以进一步通知相关人员查询源数据或者过程中是否出现了异 常,以防止盲目地将错误数据更新到存储区内。
[0068] 其中,在对数据表中的数据进行更新时,只需要更新CRC校验码不相等的字段所 在的区域,而不用对全部字段进行更新操作,显著减少了不必要的更新操作,提高了比对与 更新的效率。
[0069] 在数据处理完后,需要将最新数据的CRC码更新到存储区内的CRC比对辅助表,以 便下次进行数据比对时使用。
[0070] 本领域普通技术人员可以理解,实现上述方法实施例的全部和部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算设备可读取存储介质中,该程 序在执行时,执行包括上述方法实施例的步骤,而前述的存储介质可以包括ROM、RAM、磁碟 和光盘等各种可以存储程序代码的介质。
[0071] 图4是本公开一个实施例的数据表比对更新装置的结构示意图。
[0072] 如图4所示,该实施例中的装置40可以包括CRC校验码计算单元402、CRC比对单 元404、数据处理单元406以及CRC校验码更新单元408。其中,
[0073] CRC校验码计算单元402,用于基于接收到的数据表中各字段对应的数据分别计 算数据表的各个分区的CRC校验码,其中,数据表的各个分区是按照数据表中各字段的更 新频率划分的;
[0074] CRC比对单元404,用于利用数据表中的主键和计算出的各个分区的CRC校验码与 存储的主键和各个分区的CRC校验码进行比对,以根据CRC校验码的不同确定数据有更新 的分区;
[0075] 数据处理单元406,用于根据处理需求对数据有更新的分区进行相应的处理;
[0076] CRC校验码更新单元408,用于更新存储的CRC校验码。
[0077] 该实施例由于根据数据表各字段的更新频率对数据表的字段进行了分区,在进行 比对时,就可以不像现有技术那样逐个字段地进行比较,而是先对所分的每个区的CRC校 验码进行比较,在CRC校验码相同的情况下,就可以知道该区域内的数据与上次相比没有 发生变化,而仅针对CRC校验码发生变化的区域再根据用户需求确定是否需要逐个字段地 进行比较,显著提高了对变更数据的定位速度。
[0078] 进一步地,如果计算出的CRC校验码与存储的CRC校验码不同,则CRC校验码更新 单元利用计算出的CRC校验码更新相应分区的存储的CRC校验码。
[0079] 此外,CRC校验码更新单元判断数据表中各字段的更新频率在维护周期内是否超 过预定的分区范围或阈值;如一个或多个字段超过预定的分区范围或阈值,则根据该一个 或多个字段的更新频率重新调整分区;基于调整后的分区生成并存储各个分区的CRC校验 码。
[0080] 进一步地,在比对需求为比较数据表内的数据是否发生变化时,分区单元将整个 数据表中除主键外的所有字段作为一个分区。
[0081] 本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其 他实施例的不同之处,各个实施例之间相同和相似的部分可以相互参见。对于装置实施例 而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处可以参见方法实施例 部分的说明。
[0082] 虽然已参照示例性实施例描述了本公开,但应理解,本公开不限于上述的示例性 实施例。对于本领域技术人员显然的是,可以在不背离本公开的范围和精神的条件下修改 上述的示例性实施例。所附的权利要求的范围应被赋予最宽的解释,以包含所有这样的修 改以及等同的结构和功能。
【权利要求】
1. 一种数据表比对更新方法,其特征在于,包括: 基于接收到的数据表中各字段对应的数据分别计算数据表的各个分区的CRC校验码, 其中,数据表的各个分区是按照数据表中各字段的更新频率划分的; 利用数据表中的主键和计算出的各个分区的CRC校验码与存储的主键和各个分区的 CRC校验码进行比对,以根据CRC校验码的不同确定数据有更新的分区; 根据处理需求对数据有更新的分区进行相应的处理; 更新存储的CRC校验码。
2. 根据权利要求1所述的数据表比对更新方法,其特征在于,所述更新存储的CRC校验 码的步骤包括: 如果计算出的CRC校验码与存储的CRC校验码不同,则利用计算出的CRC校验码更新 相应分区的存储的CRC校验码。
3. 根据权利要求1所述的数据表比对更新方法,其特征在于,所述更新存储的CRC校验 码的步骤包括: 判断数据表中各字段的更新频率在维护周期内是否超过预定的分区范围或阈值; 如一个或多个字段超过预定的分区范围或阈值,则根据所述一个或多个字段的更新频 率重新调整分区; 基于调整后的分区生成并存储各个分区的CRC校验码。
4. 一种数据表比对更新装置,其特征在于,包括: CRC校验码计算单元,用于基于接收到的数据表中各字段对应的数据分别计算数据表 的各个分区的CRC校验码,其中,数据表的各个分区是按照数据表中各字段的更新频率划 分的; CRC比对单元,用于利用数据表中的主键和计算出的各个分区的CRC校验码与存储的 主键和各个分区的CRC校验码进行比对,以根据CRC校验码的不同确定数据有更新的分 区; 数据处理单元,用于根据处理需求对数据有更新的分区进行相应的处理; CRC校验码更新单元,用于更新存储的CRC校验码。
5. 根据权利要求4所述的数据表比对更新装置,其特征在于,如果计算出的CRC校验码 与存储的CRC校验码不同,则所述CRC校验码更新单元利用计算出的CRC校验码更新相应 分区的存储的CRC校验码。
6. 根据权利要求4所述的数据表比对更新装置,其特征在于,所述CRC校验码更新单元 判断数据表中各字段的更新频率在维护周期内是否超过预定的分区范围或阈值;如一个或 多个字段超过预定的分区范围或阈值,则根据所述一个或多个字段的更新频率重新调整分 区;基于调整后的分区生成并存储各个分区的CRC校验码。
【文档编号】G06F17/30GK104142954SQ201310170579
【公开日】2014年11月12日 申请日期:2013年5月10日 优先权日:2013年5月10日
【发明者】张青, 谢晓军, 陈康, 向勇, 陈翀 申请人:中国电信股份有限公司