CN111459931A - 数据查重方法和数据查重装置 - Google Patents
数据查重方法和数据查重装置 Download PDFInfo
- Publication number
- CN111459931A CN111459931A CN201910053375.7A CN201910053375A CN111459931A CN 111459931 A CN111459931 A CN 111459931A CN 201910053375 A CN201910053375 A CN 201910053375A CN 111459931 A CN111459931 A CN 111459931A
- Authority
- CN
- China
- Prior art keywords
- data
- checking
- database
- time
- duplicate
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 230000008859 change Effects 0.000 claims abstract description 29
- 238000004422 calculation algorithm Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 abstract description 23
- 238000012545 processing Methods 0.000 description 22
- 238000005516 engineering process Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 239000000463 material Substances 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 230000005236 sound signal Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 229910000831 Steel Inorganic materials 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Abstract
本发明公开了一种数据查重方法和数据查重装置。该数据查重方法应用于包括源数据库、客户端、缓存、结果存储数据库的系统,所述方法包括:在第一时刻,获取针对待查重数据的查重请求,所述待查重数据具有唯一标识;针对所述待查重数据,判断所述结果存储数据库中是否存在对应的唯一标识;当判断所述唯一标识存在时,获取该唯一标识对应的查重时刻;获取查重时刻到第一时刻之间的源数据库中的变化数据,与所述待查重数据进行查重比对;将查重比对结果存储至所述结果存储数据库中。本发明能够提高数据查重效率,既能保证查重准确性高,又能同时适用于首次查重和后续多次再查重,即能够保证在首次查重和业务流程过中的多次再查重提高效率。
Description
技术领域
本发明涉及存储领域,尤其涉及一种数据查重方法和装置。
背景技术
企业的主数据是用来描述企业核心业务实体的数据,比如客户、合作伙伴、产品、物料等;它是具有高业务价值的、可以在企业内跨越各个业务部门被重复使用的数据,并且存在于多个异构的应用系统中。
由于数据的多源性、使得企业的数据在不同系统中重叠现象日益严重,同一数据在不同系统中的标识和描述也不统一;即使在同一系统中,随着数据规模的不断扩大,也存在同一数据被维护成不同实例的现象,从而造成企业数据冗余,数据准确性不高,业务差错率上升,以至于影响企业的管理及战略决策。
因此,如何提高数据的质量就成了很关键的问题。业界一般使用数据清洗的方法提高数据质量。数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。
数据清洗又可以分为单数据源清洗(Single Resource)和多数据源清洗(Multiple Resource)问题。对于单数据问题,数据质量主要依赖于其受模式和完整性约束的规范程度。而当为多数据源时,数据清洗问题会更加复杂。可能的情况是,尽管单个数据源可能是一致的,但是当数据集成在一起时,他们的某些部分缺失重叠的或是矛盾的。例如针对某个实体(例如企业需要的用品等)有两个数据来源A和B,A包括数据X(a1,a2,a3),其中a1的属性为购入时间、a2的属性为重量、a3的属性为材质;B包括数据X(a1,a2,b3,b4);其中a1的属性为购入时间、a2的属性为重量、b3的属性为材质、b4的属性为归属部门。由此可见,两个数据来源可能出现的问题至少包括:其中一个数据来源所包括的属性多于另一数据来源(例如B包括b4,而A未包括这一属性)两个数据来源针对同一属性的属性值不同(例如b3和a3为同一属性,但是值不同)。
因此,数据清洗比较典型的方法主要包括缺失值处理、噪声数据处理、数据冲突、数据重复,归并与切割、聚类等方法,但通常存在只能根据特定的实例进行选择,不能自动识别一个数据实例和另一数据实例是否相同。
本领域提出了基于编辑距离的数据清洗方法研究。例如万方数据库中“TP393.09F719.2基于编辑距离和条件函数依赖的酒店数据清洗方法研究”所述的方法,编辑距离算法提高了字符串重复的识别度,但是编辑距离算法一般计算时间都比较长,比较耗时。在初始比对时,尤其数据集是比较庞大时,对于大型集团上百万的数据记录如何提高查重速度该文缺少处理方法。而文中所述的递增匹配算法主要是指新要加入的数据集与原有数据集进行比对,因数据管理流程中一般新的数据在进入系统时会涉及各方管理人员的审核,在审核中的每一步也要对数据做查重,此时如果每个环节都对该条记录与原有集合做查重比对,也会浪费大量的系统时间。
发明内容
鉴于上述问题,本发明一实施例提出一种数据查重方法和数据查重装置,以解决现有技术存在的问题。
本发明的目的之一在于,提出一种提高数据查重效率的数据查重方法和装置,既能保证查重准确性高,又能保证在首次查重和业务流程过中的多次再查重提高效率。
为解决上述问题,本发明实施例提出一种数据查重方法,应用于包括源数据库、客户端、缓存、结果存储数据库的系统,其中所述源数据库用于存储源数据,所述缓存用于存储关键属性数据,所述客户端用于发出查重请求,所述结果存储数据库用于存储查重比对结果;所述方法包括:
在第一时刻,获取针对待查重数据的查重请求,所述待查重数据具有唯一标识;
针对所述待查重数据,判断所述结果存储数据库中是否存在对应的唯一标识;
当判断所述唯一标识存在时,获取该唯一标识对应的查重时刻;
获取查重时刻到第一时刻之间的所述源数据库中的变化数据,与所述待查重数据进行查重比对;
将查重比对结果存储至所述结果存储数据库中。
在一实施例中,所述待查重数据为多条,每一条待查重数据对应一个唯一标识;
所述获取查重时刻到第一时刻之间的源数据库中的变化数据,与所述待查重数据进行查重比对的步骤中,采用多线程的方式进行查重比对。
在一实施例中,所述方法还包括:
从所述源数据库中的源数据的多个属性中提取部分关键属性,利用关键属性生成关键属性数据。
在第一时刻之前的初始时刻,将所述关键属性数据存储至缓存中。
在一实施例中,所述源数据库为关系型数据库,所述结果数据库为列式数据库。
在一实施例中,所述针对所述待查重数据,判断所述结果存储数据库中是否存在对应的唯一标识之后,所述方法还包括:
当不存在所述唯一标识时,将所述缓存中的关键属性数据与所述待查重数据进行查重比对;
将比对后的查重结果存储在所述结果存储数据库中。
在一实施例中,所述获取查重时刻到第一时刻之间的所述源数据库中的变化数据,与所述待查重数据进行查重比对的步骤包括:
获取查重时刻到第一时刻之间的源数据库中的变化数据并存储在所述缓存中,在所述缓存中与所述待查重数据进行查重比对。
在一实施例中,所述缓存为分布式缓存。
在一实施例中,所述存储结果数据库中存储有经过比对查重的数据和查重时间。
在一实施例中,所述获取查重时刻到第一时刻之间的源数据库中的变化数据,与所述待查重数据进行查重比对的步骤中,所述查重比对包括:
采用余弦定理和/或编辑距离算法,确定待查重数据和参照数据之间的相似度分值。
本发明实施例提出一种数据查重装置,应用于包括源数据库、客户端、缓存、结果存储数据库的系统,所述源数据库用于存储源数据,所述缓存用于存储关键属性数据,所述客户端用于发出查重请求,所述结果存储数据库用于存储查重比对结果;所述数据查重装置包括:
处理器,
存储器,用于存储计算机可读指令,当所述计算机可读指令被处理器执行时,所述装置用于执行如下操作:
在第一时刻,获取针对待查重数据的查重请求,所述待查重数据具有唯一标识;
针对所述待查重数据,判断所述结果存储数据库中是否存在对应的唯一标识;
当判断所述唯一标识存在时,获取该唯一标识对应的查重时刻;
获取查重时刻到第一时刻之间的源数据库中的变化数据,与所述待查重数据进行查重比对;
将查重比对结果存储至所述结果存储数据库中。
由上述可知,本发明实施例提出一种数据查重方法和装置,能够提高数据查重效率,既能保证查重准确性高,又能同时适用于首次查重和后续多次再查重,即能够保证在首次查重和业务流程过中的多次再查重提高效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为采用分布式缓存技术进行比对的示意图。
图2是采用多线程技术提高查重效率的方法示意图。
图3是采用列式存储数据库后增量比对流程的示意图。
图4是本发明实施例的数据查重方法的流程图。
图5示意性地示出了用于执行根据本发明的方法的终端设备的框图。
图6示意性地示出了用于保持或者携带实现根据本发明的方法的程序代码的存储单元。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
对于大型集团来说,其数据,例如物料数据动辄上百万记录,而与之关联的辅助数据更是成倍增加,且数据每年以一定的速度增长。
如果将数据看作一个例如C(C1,C2,C 3…Cm.)的数据集合,其中C 1到C m各自为一条数据,每一条数据可以包括多个属性/属性值的键值对(key/value),例如C1(c11,c12,c13)这一条数据代表第一个属性(例如购买时间)对应的属性值为c1(例如2018年1月1日);第二个属性(例如重量)对应的属性值为c2(例如1kg);第三个属性(例如材质)对应的属性值为c3(例如为钢)。对于新进来的一条数据Cn,在查重时该条数据Cn需要与已经存在的每一条记录C1,C2,C 3…Cm做全表比对,即与数据集合C中的所有数据进行比对,因为数量庞大,就需要比对的效率较高。同时考虑到系统的访问并发量,进一步对数据的比对速度提高了要求。
分布式缓存能够处理大量的动态数据,具有高性能、动态扩展和高可用的特性。它是为了解决当传统数据库面临大规模数据访问时,磁盘I/O 往往成为性能瓶颈,从而导致过高的响应延迟。分布式缓存将高速内存作为数据对象的存储介质,数据以属性/属性值(key/value) 形式存储,理想情况下可以获得DRAM 级的读写性能,支持弹性扩展,通过动态增加或减少节点应对变化的数据访问负载,提供可预测的性能与扩展性,同时最大限度地提高资源利用率,可用性包含数据可用性与服务可用性两方面。基于冗余机制实现高可用性、无单点失效(single point of failure),支持故障的自动发现,透明地实施故障切换,不会因服务器故障而导致缓存服务中断或数据丢失,动态扩展时自动均衡数据分区,同时保障缓存服务持续可用。
本发明的数据查重系统可以包括关系型数据库10、分布式缓存20、执行查重的客户端30、列式数据库40。关系型数据库10用于存储大量数据,例如企业主数据。分布式缓存20从关系型数据库10中获取关键属性数据,用于执行查重比对。关键属性数据定义为,这些数据的属性在执行查重比对时的重要程度大于其他未采用的属性。另外,这些属性均可以配置特定的权重。具体属性的选择以及权重的设置可以由实施人员确定,这些权重的总和可以为100。
在一实施例中,关系型数据库10中例如有N条源数据,每条源数据有M个属性;这些属性中有m个属性是查重需要的关键属性。在一实施例中,可以提取关键属性数据到分布式缓存20,关键属性数据的属性维度m小于源数据的属性维度M,但是每个属性的重要程度大于源数据中其余的(M-m)个属性的重要程度。
执行查重的客户端30为本发明实施例的执行主体,客户端30可以安装有查重比对控件、接入关系型数据库10和/或分布式缓存20的接口等。这些控件接口和实例可以通过软件来实现。
本发明利用分布式缓存的优势,在t0时间点(例如系统初始化时),将需要比对的数据(例如企业的主数据)从关系型数据库10提取到分布式缓存20中,在每次比对时,从关系型数据库10中提取变化后时间的数据再次放到分布式缓存20中,然后从分布式缓存20中取数据进行比对。
图1所示为采用分布式缓存技术进行比对的示意图。如图1所示,在步骤S101,系统初始化时(t0时刻)把数据一次性从关系型数据库10载入分布式缓存20中。在一些实施例中,这些数据是以全部加载的方式加载到分布式20中,即每一条数据的每一个属性都需要加载;在另一些实施例中,考虑到如果把所有数据的属性都放到缓存,会造成占用空间过大,造成没必要的浪费,为了降低系统负担,只进行部分加载,即只加载那些它真正需要做查重比对的数据属性而非每条数据的全部属性,例如加载配置权重的属性。在这些实施例中,每条数据的每条属性均对应有属性的权重,用于表征该属性在查重时的重要程度,例如表1所示为一企业的铜锭分类属性,可见属性相关的内容包括属性编码、属性名称和属性权重。在一些实施例中,可以加载权重较高的属性。在此不再赘述。
序号 | 属性编码 | 属性名称 | 属性权重 |
1 | MATNAME | 物料名称 | 10 |
2 | MATDXLG | 大小量纲 | 20 |
3 | ZADDINFO | 附加信息 | 10 |
4 | ZCZBM | 材质 | 20 |
5 | ZCAM | 材质标准 | 20 |
6 | MATISDESC | 工业标准描述 | 20 |
表1
S102,在t1时刻,客户端30发出查重请求。例如客户端30通过查重比对控件发出查重请求。
S103,将t0时刻至t1时刻这段时间变化的数据载入分布式缓存20中。在这一步骤中,客户端30的加载控件可以从关系型数据库中读取t0时刻至t1时刻这段时间变化的数据,载入分布式缓存20中。
S104,将t0时刻至t1时刻的失效数据从分布式缓存20中清除。
在这一步骤中,失效数据主要指企业已经作废该主数据或修改了该主数据的内容。在实例中,每一条数据可以具有一个作废标记,用于判断该数据是否作废。一些数据在修改之后存储为新数据,则原数据作废。在这一步骤中,当关系型数据库10中的数据作废后,分布式缓存20需要与之同步,对应的数据同时作废。
S105,根据查重属性规则,算法和比重用请求的数据与缓存数据做查重比对。
在可选实施例中,还可以通过多线程技术提高查重效率。图2是采用多线程技术提高查重效率的方法示意图。如图2所示,为了提高查重效率,还可以利用多线程技术提高查重效率。数据进入系统时大部分是通过excel一次导入大批数据,这样如果查重时是顺序一条条处理必然影响查重效率。本发明采用多线程技术以提高查重效率。
多线程是指操作系统支持一个进程中执行多个线程的能力。软件编写中,采用多线程的编程技术,整个软件含有完成不同功能的多个线程,如数据采集、数据处理、实时数据显示线程、图形曲线生成线程和用户界面线程。这样,多个线程的同时执行,在一段时间内并行完成更多的任务,既加快了系统的反映速度,又提高了执行效率。
如图2所示,Master进程为主要进程,用于接收要查重的批量记录,它维护一个Worker进程队列、子任务队列。Worker进程队列中的Worker进程不停从任务队列中提取要查重处理的子任务,并将查重结果写入结果集。Master进程和Worker进程的协作,能够较好地将一个大任务分解成若干个小任务,并行执行,从而提高系统的吞吐量。
在查重比对算法上,有的数据的属性,比如属性描述:中国北京与北京中国相似度是100%,而有的属性,比如规格型号:aabb与bbaa相似度是50%。这要求查重算法根据不同的属性需求可以进行查重算法配置。同时能够根据属性查重的权重,给出分值并进行排序。
根据对数据属性值的研究,在本发明中,可以分别采用余弦定理和编辑距离算法,确定数据和数据之间的相似度分值。在其他实施例中,在数据系统中定义查重属性时,可以灵活配置各种算法,以应对不同属性特性的需求。
表2所示为一种新记录与原有数据相似度分值,相似度分值用于表征新记录与原记录的相似度,如果相似度分值很高,则认为是重复数据,如下。
表2
在本发明实施例中,还可以采用列式存储大数据库技术进行增量方式查重。数据管理系统在流程的各个环节都会进行查重比对,例如数据刚进入系统时要进行查重比对,数据进行审核、发布的各个环节,也都要进行查重比对。如果每次都重新进行全表比对,必然造成大量计算资源浪费,并且效率极低。为了提高查重比对速度,节约资源,采取了增量方式进行比对,即把新进入系统的数据第一次查重比对的结果记录下来,在流程各个环节再进行比对时,只获取这段时间变化的增量数据,对增量数据做查重比对。
例如,企业内有多个需要查重的环节,在本发明实施例提出的方案中,新增数据只需要在第一个环节跟分布式数据库中的缓存数据做对比,在第二到第N个环节,新增数据只跟这一段时间内新增的数据对比。例如,第一个环节是t2时间点进行的,第二个环节是t3时间点进行的。那么第二个环节查重时,只需要将新增数据与t2到t3之间关系型数据库20中新增的数据作比对即可。而对废弃的数据进行删除,并按照属性查重的比重,每次针对查重结果重新进行排序。虽然每次查重比对结果虽然是结构化数据,但是每次结果的记录长度、查重属性都不一样,为了解决存储查重比对结果、并快速提取出来的问题,本发明实施例采用了列式数据库。
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。其特点:高性能、易部署、易使用,存储数据非常方便。主要功能特性有:面向集合存储,易存储对象类型的数据;模式自由;支持动态查询;支持完全索引,包含内部对象;支持查询;支持复制和故障恢复;使用高效的二进制数据存储,包括大型对象(如视频等);自动处理碎片,以支持云计算层次的扩展性;支持RUBY,PYTHON,JAVA,C++,PHP等多种语言;文件存储格式为BSON(一种JSON的扩展)。
采用列式存储数据库后增量比对流程如图3所示,采用列式存储大数据技术的增量比对方式极大地提高了二次(多次)查重比对的速度。如图3所示,该方法可以包括如下步骤:
S301,t0时刻,例如系统初始化时,客户端30可以发出控制指令,把数据一次性从关系型数据库10载入分布式缓存20中。在一些实施例中,与步骤S101类似地,可以只加载那些它真正需要做查重比对的数据的属性。
S302,t1时刻,当客户端30发出请求时,即一批记录要进行相似度查重,客户端30的增量比对控件先把这段时间(t0时刻到t1时刻之间)变化的数据载入分布式缓存20。
S303,客户端30的增量比对控件把失效数据从分布式缓存20中清除。
S304,客户端30的增量比对控件把失效数据从对应记录的列式数据库40中清除。
S305, 查找列式数据库40中是否已存在有比对的结果,如果没有则进行首次查重比对。
在一个具体示例中,客户端发来一批需要查重的数据,针对这批数据中的每一条,可以在列式数据库中查找是否存在该数据,以及该数据被查重的时间。当列式数据库中不存在该数据时,说明该数据并未经过查重;当列式数据库中存在该数据时,可以获知该数据的查重时间。即,根据列式数据库40的存储结果,判断请求的数据是否已经过查重。如果没有,则在下面的步骤中从t0时刻载入的数据开始查重。
S306,根据查重属性规则、算法和查重权重,用请求的数据与缓存数据做比对。
S307,将本次查重比对结果写入列式数据库40。
在另一种情况下,如果列式数据库40中存储有查重比对结果,则说明t0时刻导入的数据已经经过了查重,则无需再次查重,只需要针对t0到t1时刻的数据进行查重即可。
如果列式数据库40中有查重比对结果(表明之前做过查重比对),可以获取列式数据库40中该记录的创建时间(例如在t0和t1之间的t_mid时刻已经经过一次查重,在t_mid时刻创建了查重比对结果并存储了新的数据,此时可以做增量比对,举例来说,t0时刻向分布式缓存导入第一批数据,t1时刻客户端30发出了查重请求,检索列式数据库时发现t_mid时刻已经查过一次,并且已存储了更新的数据。所以这时从关系型数据库10中去查找获取[t_mid, t1]这段时间变化的数据,载入分布式缓存20,并且只对这些新增的数据进行查重。
具体增量对比步骤如下:
S308,从关系数据库20中提取大于等于该时间t_mid的所有数据;
S309,从关系数据库10中提取大于等于该时间t_mid的所有失效数据;
S310, 从已有对比结果中删除失效的数据。在这一步骤中,由于数据已经失效,这些数据的比对结果可以从列式数据库40中删除。
S311,将待查重的一条数据与新提取的大于等于该时间t_mid的数据做比对,将比对结果与之前存入到列式数据库40中的比对结果进行合并排序,优选地,可以删除查重相似度低的记录,按照查重的相似度分值由高到低排序。
S312,将最终的比对结果写入列式数据库40。
表3所示为一种查重比对结果。为了直观说明采用了二维表方式表达,实际存储时是列式存储方式。
记录流水号字段CO_ID | 查重比对时间 | 相似度记录 | 相似度分值 | 相似度属性明细 |
1 | 15:01.0 | 10001 | 89 | CO_ID:10001,MATNAME:10,MATDXLG:20,ZADDINFO:10,ZCZBM:20,ZCAM:20,MATISDESC:20 |
87 | CO_ID:10001,MATNAME:10,MATDXLG:20,ZADDINFO:10,ZCZBM:20,ZCAM:18,MATISDESC:20 | |||
85 | CO_ID:10001,MATNAME:10,MATDXLG:20,ZADDINFO:10,ZCZBM:18,ZCAM:20,MATISDESC:18 | |||
…… | ……… |
表3
本发明采用分布式缓存技术,以提高查重速度;对于批量数据查重时,采用多线程技术以提高比对速度;对于业务流程中审批各环节的查重,采用列式存储大数据库技术和增量比对查重技术,以加快查重速度。
具体来说,与现有技术相比,本发明提出的技术方案中为提高查重效率,在系统数据初始化时,先采用分布式缓存技术把数据一次性提取到缓存,这样以后比对只从缓存中比对,而对于这期间变化的数据,则从关系数据库中提取数据比对,从而提高了比对的速度。对于批量数据的比对,因编辑距离算法比较耗时,对一批数据做查重比对时,采用了多线程技术,以便提高执行效率。对于业务流程中审批的各个环节的查重,采用了基于增量模式匹配和列式存储大数据库技术,以节省查重时间,提高查重效率。
在一个具体应用示例中,采用该方案前,数据库中物料数据为140万条记录,要查重的一批数据为50条记录,需要20多分钟。采用该方案后,线程数设置为3,初次查重时间,需要6分钟;对于业务流程中审批的各环节的查重,仅需要3秒钟,达到了应用的要求。
图4所示为本发明一实施例的数据查重方法的示意图。该方法应用于包括源数据库、客户端、缓存、结果存储数据库的系统,其中所述源数据库用于存储源数据,所述缓存用于存储关键属性数据,所述客户端用于发出查重请求,所述结果存储数据库用于存储查重比对结果;所述方法包括如下步骤:
S1,在第一时刻,获取针对待查重数据的查重请求,所述待查重数据具有唯一标识;
S2,针对所述待查重数据,判断所述结果存储数据库中是否存在对应的唯一标识;
S3,当判断所述唯一标识存在时,获取该唯一标识对应的查重时刻;
S4,获取查重时刻到第一时刻之间的源数据库中的变化数据,与所述待查重数据进行查重比对;
S5,将查重比对结果存储至所述结果存储数据库中。
在一可选实施例中,所述待查重数据为多条,每一条待查重数据对应一个唯一标识;
所述步骤S4,即获取查重时刻到第一时刻之间的源数据库中的变化数据,与所述待查重数据进行查重比对的步骤中,采用多线程的方式进行查重比对。
在一可选实施例中,所述方法还包括:
S01,从源数据库中的源数据的多个属性中提取部分关键属性,利用关键属性生成关键属性数据。
S02,在第一时刻之前的初始时刻,将所述关键属性数据存储至缓存中。
在一可选实施例中,所述源数据库为关系型数据库,所述结果数据库为列式数据库。
在一可选实施例中,所述步骤S2,即针对所述待查重数据,判断所述结果存储数据库中是否存在对应的唯一标识之后,所述方法还可以包括如下步骤:
S31,当不存在所述唯一标识时,将所述缓存中的关键属性数据与所述待查重数据进行查重比对;
S32,将比对后的查重结果存储在所述结果存储数据库中。
在一可选实施例中,所述步骤S4,即获取查重时刻到第一时刻之间的源数据库中的变化数据,与所述待查重数据进行查重比对的步骤可以包括如下内容:
获取查重时刻到第一时刻之间的源数据库中的变化数据并存储在所述缓存中,在所述缓存中与所述待查重数据进行查重比对。
在一可选实施例中,所述缓存为分布式缓存。
在一可选实施例中,所述存储结果数据库中存储有经过比对查重的数据和查重时间。
在一可选实施例中,所述步骤S4,即获取查重时刻到第一时刻之间的源数据库中的变化数据,与所述待查重数据进行查重比对的步骤中,所述查重比对包括:
采用余弦定理和/或编辑距离算法,确定待查重数据和参照数据之间的相似度分值。
图5为本发明一实施例提供的终端设备的硬件结构示意图。如图5所示,该终端设备可以包括输入设备90、处理器91、输出设备92、存储器93和至少一个通信总线94。通信总线94用于实现元件之间的通信连接。存储器93可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,存储器93中可以存储各种程序,用于完成各种处理功能以及实现本实施例的方法步骤。
可选的,上述处理器91例如可以为中央处理器(Central Processing Unit,简称CPU)、应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,该处理器91通过有线或无线连接耦合到上述输入设备90和输出设备92。
可选的,上述输入设备90可以包括多种输入设备,例如可以包括面向用户的用户接口、面向设备的设备接口、软件的可编程接口、摄像头、传感器中至少一种。可选的,该面向设备的设备接口可以是用于设备与设备之间进行数据传输的有线接口、还可以是用于设备与设备之间进行数据传输的硬件插入接口(例如USB接口、串口等);可选的,该面向用户的用户接口例如可以是面向用户的控制按键、用于接收语音输入的语音输入设备以及用户接收用户触摸输入的触摸感知设备(例如具有触摸感应功能的触摸屏、触控板等);可选的,上述软件的可编程接口例如可以是供用户编辑或者修改程序的入口,例如芯片的输入引脚接口或者输入接口等;麦克风等音频输入设备可以接收语音数据。输出设备92可以包括显示器、音响等输出设备。
在本实施例中,该终端设备的处理器包括用于执行各设备中数据处理装置各模块的功能,具体功能和技术效果参照上述实施例即可,此处不再赘述。
图6为本发明另一实施例提供的终端设备的硬件结构示意图。图6是对图5在实现过程中的一个具体的实施例。如图6所示,本实施例的终端设备包括处理器101以及存储器102。
处理器101执行存储器102所存放的计算机程序代码,实现上述实施例中图1至图3的数据查重方法。
存储器102被配置为存储各种类型的数据以支持在终端设备的操作。这些数据的示例包括用于在终端设备上操作的任何应用程序或方法的指令,例如消息,图片,视频等。存储器102可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
可选地,处理器101设置在处理组件100中。该终端设备还可以包括:通信组件103,电源组件104,多媒体组件105,音频组件106,输入/输出接口107和/或传感器组件108。 终端设备具体所包含的组件等依据实际需求设定,本实施例对此不作限定。
处理组件100通常控制终端设备的整体操作。处理组件100可以包括一个或多个处理器101来执行指令,以完成上述图1至图3方法的全部或部分步骤。此外,处理组件100可以包括一个或多个模块,便于处理组件100和其他组件之间的交互。例如,处理组件100可以包括多媒体模块,以方便多媒体组件105和处理组件100之间的交互。
电源组件104为终端设备的各种组件提供电力。电源组件104可以包括电源管理系统,一个或多个电源,及其他与为终端设备生成、管理和分配电力相关联的组件。
多媒体组件105包括在终端设备和用户之间的提供一个输出接口的显示屏。在一些实施例中,显示屏可以包括液晶显示器(LCD)和触摸面板(TP)。如果显示屏包括触摸面板,显示屏可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
音频组件106被配置为输出和/或输入音频信号。例如,音频组件106包括一个麦克风(MIC),当终端设备处于操作模式,如语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或经由通信组件103发送。在一些实施例中,音频组件106还包括一个扬声器,用于输出音频信号。
输入/输出接口107为处理组件100和外围接口模块之间提供接口,上述外围接口模块可以是点击轮,按钮等。这些按钮可包括但不限于:音量按钮、启动按钮和锁定按钮。
传感器组件108包括一个或多个传感器,用于为终端设备提供各个方面的状态评估。例如,传感器组件108可以检测到终端设备的打开/关闭状态,组件的相对定位,用户与终端设备接触的存在或不存在。传感器组件108可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在,包括检测用户与终端设备间的距离。在一些实施例中,该传感器组件108还可以包括摄像头等。
通信组件103被配置为便于终端设备和其他设备之间有线或无线方式的通信。终端设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个实施例中,该终端设备中可以包括SIM卡插槽,该SIM卡插槽用于插入SIM卡,使得终端设备可以登录GPRS网络,通过互联网与服务端建立通信。
由上可知,在图6实施例中所涉及的通信组件103、音频组件106以及输入/输出接口107、传感器组件108均可以作为图5实施例中的输入设备的实现方式。
因此,本发明实施例还提出一种数据查重装置,应用于包括源数据库、客户端、缓存、结果存储数据库的系统,其中所述源数据库用于存储源数据,所述缓存用于存储关键属性数据,所述客户端用于发出查重请求,所述结果存储数据库用于存储查重比对结果;所述装置可以包括:
处理器,
存储器,用于存储计算机可读指令,当所述计算机可读指令被处理器执行时,所述装置用于执行前述数据查重方法的操作,例如:
S1,在第一时刻,获取针对待查重数据的查重请求,所述待查重数据具有唯一标识;
S2,针对所述待查重数据,判断所述结果存储数据库中是否存在对应的唯一标识;
S3,当判断所述唯一标识存在时,获取该唯一标识对应的查重时刻;
S4,获取查重时刻到第一时刻之间的源数据库中的变化数据,与所述待查重数据进行查重比对;
S5,将查重比对结果存储至所述结果存储数据库中。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种数据查重方法和数据查重装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据查重方法,应用于包括源数据库、客户端、缓存、结果存储数据库的系统,其中所述源数据库用于存储源数据,所述缓存用于存储关键属性数据,所述客户端用于发出查重请求,所述结果存储数据库用于存储查重比对结果;所述方法包括:
在第一时刻,获取针对待查重数据的查重请求,所述待查重数据具有唯一标识;
针对所述待查重数据,判断所述结果存储数据库中是否存在对应的唯一标识;
当判断所述唯一标识存在时,获取该唯一标识对应的查重时刻;
获取查重时刻到第一时刻之间的所述源数据库中的变化数据,与所述待查重数据进行查重比对;将查重比对结果存储至所述结果存储数据库中。
2.根据权利要求1所述的方法,其特征在于,所述待查重数据为多条,每一条待查重数据对应一个唯一标识;
所述获取查重时刻到第一时刻之间的源数据库中的变化数据,与所述待查重数据进行查重比对的步骤中,采用多线程的方式进行查重比对。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:从所述源数据库中的源数据的多个属性中提取部分关键属性,利用关键属性生成关键属性数据,在第一时刻之前的初始时刻,将所述关键属性数据存储至缓存中。
4.根据权利要求3所述的方法,其特征在于,所述源数据库为关系型数据库,所述结果数据库为列式数据库。
5.根据权利要求3所述的方法,其特征在于,所述针对所述待查重数据,判断所述结果存储数据库中是否存在对应的唯一标识之后,所述方法还包括:
当不存在所述唯一标识时,将所述缓存中的关键属性数据与所述待查重数据进行查重比对;
将比对后的查重结果存储在所述结果存储数据库中。
6.根据权利要求1所述的方法,其特征在于,所述获取查重时刻到第一时刻之间的所述源数据库中的变化数据,与所述待查重数据进行查重比对的步骤包括:
获取查重时刻到第一时刻之间的源数据库中的变化数据并存储在所述缓存中,在所述缓存中与所述待查重数据进行查重比对。
7.根据权利要求1所述的方法,其特征在于,所述缓存为分布式缓存。
8.根据权利要求1所述的方法,其特征在于,所述存储结果数据库中存储有经过比对查重的数据和查重时间。
9.根据权利要求1所述的方法,其特征在于,所述获取查重时刻到第一时刻之间的源数据库中的变化数据,与所述待查重数据进行查重比对的步骤中,所述查重比对包括:采用余弦定理和/或编辑距离算法,确定待查重数据和参照数据之间的相似度分值。
10.一种数据查重装置,应用于包括源数据库、客户端、缓存、结果存储数据库的系统,所述源数据库用于存储源数据,所述缓存用于存储关键属性数据,所述客户端用于发出查重请求,所述结果存储数据库用于存储查重比对结果;所述数据查重装置包括:
处理器,存储器,用于存储计算机可读指令,当所述计算机可读指令被处理器执行时,所述装置用于执行如下操作:
在第一时刻,获取针对待查重数据的查重请求,所述待查重数据具有唯一标识;
针对所述待查重数据,判断所述结果存储数据库中是否存在对应的唯一标识;
当判断所述唯一标识存在时,获取该唯一标识对应的查重时刻;
获取查重时刻到第一时刻之间的源数据库中的变化数据,与所述待查重数据进行查重比对;
将查重比对结果存储至所述结果存储数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910053375.7A CN111459931A (zh) | 2019-01-21 | 2019-01-21 | 数据查重方法和数据查重装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910053375.7A CN111459931A (zh) | 2019-01-21 | 2019-01-21 | 数据查重方法和数据查重装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111459931A true CN111459931A (zh) | 2020-07-28 |
Family
ID=71685589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910053375.7A Pending CN111459931A (zh) | 2019-01-21 | 2019-01-21 | 数据查重方法和数据查重装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111459931A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112364024A (zh) * | 2020-11-30 | 2021-02-12 | 上海二三四五网络科技有限公司 | 一种表数据批量自动比对的控制方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060036580A1 (en) * | 2004-08-13 | 2006-02-16 | Stata Raymond P | Systems and methods for updating query results based on query deltas |
US20120296889A1 (en) * | 2011-05-17 | 2012-11-22 | Microsoft Corporation | Net change notification based cached views with linked attributes |
JP2013003637A (ja) * | 2011-06-13 | 2013-01-07 | Nippon Telegr & Teleph Corp <Ntt> | データベースシステム及び制御方法 |
US20130124667A1 (en) * | 2011-11-11 | 2013-05-16 | Mobophiles, Inc. dba Mobolize | System and method for managing dedicated caches |
US20140310232A1 (en) * | 2013-04-11 | 2014-10-16 | Hasso-Plattner-Institut für Softwaresystemtechnik GmbH | Aggregate query-caching in databases architectures with a differential buffer and a main store |
US20150220583A1 (en) * | 2014-01-31 | 2015-08-06 | Microsoft Corporation | External data access with split index |
-
2019
- 2019-01-21 CN CN201910053375.7A patent/CN111459931A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060036580A1 (en) * | 2004-08-13 | 2006-02-16 | Stata Raymond P | Systems and methods for updating query results based on query deltas |
US20120296889A1 (en) * | 2011-05-17 | 2012-11-22 | Microsoft Corporation | Net change notification based cached views with linked attributes |
JP2013003637A (ja) * | 2011-06-13 | 2013-01-07 | Nippon Telegr & Teleph Corp <Ntt> | データベースシステム及び制御方法 |
US20130124667A1 (en) * | 2011-11-11 | 2013-05-16 | Mobophiles, Inc. dba Mobolize | System and method for managing dedicated caches |
US20140310232A1 (en) * | 2013-04-11 | 2014-10-16 | Hasso-Plattner-Institut für Softwaresystemtechnik GmbH | Aggregate query-caching in databases architectures with a differential buffer and a main store |
US20150220583A1 (en) * | 2014-01-31 | 2015-08-06 | Microsoft Corporation | External data access with split index |
Non-Patent Citations (1)
Title |
---|
余通 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112364024A (zh) * | 2020-11-30 | 2021-02-12 | 上海二三四五网络科技有限公司 | 一种表数据批量自动比对的控制方法及装置 |
CN112364024B (zh) * | 2020-11-30 | 2024-02-27 | 上海二三四五网络科技有限公司 | 一种表数据批量自动比对的控制方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9904722B1 (en) | Log-based distributed transaction management | |
JP5387757B2 (ja) | 並列データ処理システム、並列データ処理方法及びプログラム | |
US10331657B1 (en) | Contention analysis for journal-based databases | |
US8904225B2 (en) | Stream data processing failure recovery method and device | |
CN111400408A (zh) | 数据同步方法、装置、设备及存储介质 | |
CN111209352B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US10198346B1 (en) | Test framework for applications using journal-based databases | |
US10133767B1 (en) | Materialization strategies in journal-based databases | |
US9811573B1 (en) | Lineage information management in data analytics | |
WO2019109854A1 (zh) | 分布式数据库数据处理方法、装置、存储介质及电子装置 | |
US10423625B2 (en) | Exactly-once semantics for streaming analytics in non-idempotent output operations | |
CN114722119A (zh) | 数据同步方法及系统 | |
CN111680017A (zh) | 一种数据同步的方法及装置 | |
US11836190B2 (en) | Method and system for identifying, managing, and monitoring data dependencies | |
CN112328592A (zh) | 数据存储方法、电子设备及计算机可读存储介质 | |
US8539492B1 (en) | Managing data dependencies among multiple jobs using separate tables that store job results and dependency satisfaction | |
US20160203032A1 (en) | Series data parallel analysis infrastructure and parallel distributed processing method therefor | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
CN111459931A (zh) | 数据查重方法和数据查重装置 | |
US10025680B2 (en) | High throughput, high reliability data processing system | |
WO2023065868A1 (zh) | 事务执行方法、装置、计算设备及存储介质 | |
CN111444148A (zh) | 基于MapReduce的数据传输方法和装置 | |
CN110019045B (zh) | 日志落地方法及装置 | |
CN107590199B (zh) | 一种面向内存的多线程数据库设计方法 | |
EP3264254B1 (en) | System and method for a simulation of a block storage system on an object storage system |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200728 |
|
WD01 | Invention patent application deemed withdrawn after publication |