CN115809228A - 数据比对方法、装置、存储介质及电子设备 - Google Patents
数据比对方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN115809228A CN115809228A CN202211644571.XA CN202211644571A CN115809228A CN 115809228 A CN115809228 A CN 115809228A CN 202211644571 A CN202211644571 A CN 202211644571A CN 115809228 A CN115809228 A CN 115809228A
- Authority
- CN
- China
- Prior art keywords
- data
- mapping
- field name
- field
- data source
- 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
Images
Abstract
本公开涉及数据处理技术领域,具体涉及一种数据比对方法、数据比对装置、存储介质及电子设备。该数据比对方法包括:从多个数据源中提取对应的多个数据源数据;其中,所述数据源数据包括字段名对应的字段数据;将所述多个数据源数据中含义相同的字段名均映射为同一映射字段名,以得到各所述数据源数据分别对应的映射字段名列表;基于各所述数据源数据分别对应的映射字段名列表,得到由相同映射字段名组成的待比对映射字段名列表;遍历所述待比对映射字段名列表,分别提取各所述映射字段名在各所述数据源数据中的字段数据以得到数据比对结果。本公开提供的数据比对方法能够的多个数据源数据的数据比对效率。
Description
技术领域
本公开涉及数据处理技术领域,具体涉及一种数据比对方法、数据比对装置、存储介质及电子设备。
背景技术
数据测试从大面上分为离线数据测试与实时数据的测试,他们又来自于不同的数据源。一般来说,对于测试而言,依据离线数据来测试实时数据是一种常用的方法,这样就需要对不同数据源的数据进行数据对比。
现有的对于不同数据源的数据比对方法,一般是逐个字段一一对比或是采用excel进行复杂的公式编写对比。一一对比对于数据量大、字段个数多、字段类型多的情况,费时费力,而且还不能排除人工带来的错误,准确度和精准度很差;而excel编写函数对比这种方式遇到字段较多、字段种类较多、数据量大等的情况,也存在一些性能或格式不兼容的问题,这都会给对比数据带来一定的困扰。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种数据比对方法、数据比对装置、存储介质及电子设备,旨在解决多个数据源数据的数据比对效率低的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的一方面,提供了一种数据比对方法,其特征在于,包括:从多个数据源中提取对应的多个数据源数据;其中,所述数据源数据包括字段名对应的字段数据;将所述多个数据源数据中含义相同的字段名均映射为同一映射字段名,以得到各所述数据源数据分别对应的映射字段名列表;基于各所述数据源数据分别对应的映射字段名列表,得到由相同映射字段名组成的待比对映射字段名列表;遍历所述待比对映射字段名列表,分别提取各所述映射字段名在各所述数据源数据中的字段数据以得到数据比对结果。
根据本公开的一些实施例,基于前述方案,所述将所述多个数据源数据中含义相同的字段名均映射为同一映射字段名,以得到各所述数据源数据分别对应的映射字段名列表,包括:获取所述各所述数据源数据的由字段名构成的字段名列表;在判断所述多个数据源数据中存在含义相同的字段名时,将含义相同的字段名确定为目标字段名并确定一映射字段名;将各所述数据源数据对应的字段名列表中的目标字段名替换为所述映射字段名,以得到各所述数据源数据对应的映射字段名列表。
根据本公开的一些实施例,基于前述方案,所述方法还包括:判断所述多个数据源数据中是否存在含义相同的字段名,所述判断所述多个数据源数据中是否存在含义相同的字段名,包括:选取任意两个数据源数据中由相对应的两个字段名组成字段名对;利用文本相似度算法计算所述字段名对中两个字段名之间的文本相似度值;在所述文本相似度值超过预设阈值时,判断存在含义相同的字段名。
根据本公开的一些实施例,基于前述方案,在得到各所述数据源数据分别对应的映射字段名列表之后,所述方法还包括:选取任意两个数据源数据的映射字段名列表,得到分别由两个数据源数据中两个含义不同的字段名组成的非对应字段名对;遍历所述非对应字段名对,对所述非对应字段名对中的两个字段名进行含义一致性校验;在含义一致性校验通过时,将所述非对应字段名对中的两个字段名均映射为同一映射字段名,以更新所述两个数据源数据的映射字段名列表。
根据本公开的一些实施例,基于前述方案,所述方法还包括:基于各所述数据源数据更新后的映射字段名列表调整所述预设阈值,以基于调整后的所述预设阈值重新判断所述对应字段名对中的两个字段名含义是否相同。
根据本公开的一些实施例,基于前述方案,所述遍历所述待比对映射字段名列表,分别提取各所述映射字段名在各所述数据源数据中的字段数据以得到数据比对结果,包括:针对所述映射字段名列表中一映射字段名,将所述映射字段名在各所述数据源数据中的字段数据进行数据追加得到映射字段数据;将所述映射字段数据进行数据去重得到所述映射字段名的数据比对结果;遍历所述待比对映射字段名列表,得到各所述映射字段名的数据比对结果。
根据本公开的一些实施例,基于前述方案,在将所述多个数据源数据中含义相同的字段名映射为同一映射字段名,以得到各所述数据源数据分别对应的映射字段名列表之后,所述方法还包括:将配置映射关系的字段名和映射字段名存储至映射数据库,以基于所述映射数据库进行下一次数据比对的字段名映射。
根据本公开实施例的第二方面,提供了一种数据比对装置,包括:提取模块,用于从多个数据源中提取对应的多个数据源数据;其中,所述数据源数据包括字段名对应的字段数据;映射模块,用于将所述多个数据源数据中含义相同的字段名均映射为同一映射字段名,以得到各所述数据源数据分别对应的映射字段名列表;准备模块,用于基于各所述数据源数据分别对应的映射字段名列表,得到由相同映射字段名组成的待比对映射字段名列表;比对模块,用于遍历所述待比对映射字段名列表,分别提取各所述映射字段名在各所述数据源数据中的字段数据以得到数据比对结果。
根据本公开实施例的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中的数据比对方法。
根据本公开实施例的第四方面,提供了一种电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中的数据比对方法。
本公开示例性实施例可以具有以下部分或全部有益效果:
在本公开的一些实施例所提供的技术方案中,进行多个数据源数据的数据比对时,能够将含义相同的字段名映射为统一的映射字段名,之后再根据映射字段名提取在各数据源数据中的字段数据进行对比,一方面将字段名先映射后比对,可以用于批量处理数据量大、字段个数多、字段类型多的情况,减少人工比对的人力成本和比对误差,提高不同数据源数据比对的效率和准确率,降本增效;另一方面能够将含义实质相同的字段名对应的不同数据源的字段数据进行比对,能够得到有差异地得到无参数标准的数据比对结果,能够实现对数据比对结果中的差异数据进一步地数据分析和挖掘,提高数据利用价值。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出本公开示例性实施例中一种数据比对方法的流程示意图;
图2示意性示出本公开示例性实施例中一种确定映射字段名列表方法的流程示意图;
图3示意性示出本公开示例性实施例中一种字段名映射方法的流程示意图;
图4示意性示出本公开示例性实施例中一种按映射字段名进行数据比对方法的流程示意图;
图5示意性示出本公开示例性实施例中一种数据比对装置的组成示意图;
图6示意性示出本公开示例性实施例中一种计算机可读存储介质的示意图;
图7示意性示出本公开示例性实施例中一种电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
数据测试从大面上分为离线数据测试与实时数据的测试,他们又来自于不同的数据源。
一般来说,对于离线数据验证,测试会根据指标口径的定义(这些指标来源于哪些表,哪些字段,如何加工得来)查询对应的数据库、表进行相应的计算,与研发计算结果进行对比来验证是否正确;而对于实时数据,按照不同的实时加工框架,会从日志、消息队列等动态变化的地方取,这样对于测试经常会由于权限或技术等无法获取到。
所以,对于测试而言,依据离线数据来测试实时数据就成了其中一种途径,这样就需要对不同数据源的数据进行对比。
目前对于不同数据源的数据对比对比不管只是简单的几个指标对比,还是是数以万计条明细、几十个字段的对比,基本都是直接一一比对,或者是采用excel进行复杂的公式编写对比。
逐个字段一一对比的方法可以满足少量简单指标的不同数据源的数据对比,对于数据量大、字段个数多、字段类型多的情况,如果仅仅人工一一对比,显然是不合理的,费时费力,而且还不能排除人工带来的错误,从而多次重复对比。
同样地,excel编写函数对比这种方式遇到字段较多、字段种类较多、数据量大等的情况,也存在一些性能或格式不兼容的问题,这都会给对比数据带来一定的困扰。
因此,针对现有技术中的缺陷,本公开提供一种数据比对方法,可以将不同数据源的字段快速准确地映射为统一字段名,这样同字段名无论是采用代码脚本去对比,还是直接用工具、excel等对比都是比较方便快捷的,这样就可以实现多数据源的快速对比,提高数据对比的速度与精度。
以下对本公开实施例的技术方案的实现细节进行详细阐述。
图1示意性示出本公开示例性实施例中一种数据比对方法的流程示意图。如图1所示,该数据比对方法包括步骤S101至步骤S104:
步骤S101,从多个数据源中提取对应的多个数据源数据;其中,所述数据源数据包括字段名对应的字段数据;
步骤S102,将所述多个数据源数据中含义相同的字段名均映射为同一映射字段名,以得到各所述数据源数据分别对应的映射字段名列表;
步骤S103,基于各所述数据源数据分别对应的映射字段名列表,得到由相同映射字段名组成的待比对映射字段名列表;
步骤S104,遍历所述待比对映射字段名列表,分别提取各所述映射字段名在各所述数据源数据中的字段数据以得到数据比对结果。
下面,将结合附图及实施例对本示例实施方式中的数据比对方法的各个步骤进行更详细的说明。
在步骤S101中,从多个数据源中提取对应的多个数据源数据;其中,所述数据源数据包括字段名对应的字段数据。
具体地,需要进行数据比对的是来自多个不同数据源对应的数据源数据。举例来说,在测试过程中涉及到的商家经常要求实时数据和离线数据分界面均展示,但可能展示的内容会稍有差别,这时对于同样含义的字段在同样的条件下两套逻辑产出的应该是一致的,对于有难度验证的一方数据就需要用另一方来验证,这种情况下就需要进行含义一致的数据进行对比。
例如,验证某商家B2C(business to customer,企业对消费者)运单模型,要求分别可以展示实时和离线模型数据,实时模型数据则从实时模型的数据源中提取,离线模型数据则从离线模型的数据源中提取。
具体地,数据中包括了不同字段名,以及各字段名分别对应的字段数据。例如实时模型数据包括“waybill_code”、“waybill_weight”、“start_city_name”等字段名对应的字段数据;离线模型数据包括“waybill_code”、“order_weight”、“start_city_name”等字段名对应的字段数据。
在步骤S102中,将所述多个数据源数据中含义相同的字段名均映射为同一映射字段名,以得到各所述数据源数据分别对应的映射字段名列表。
具体地,在不同的数据源中,实质含义相同的字段名在不同的数据原则中可能存在名称的差异,为了能够将这些字段数据进行对比,可以将数据源数据中的字段名进行修改,进而便于后续的数据比对。
图2示意性示出本公开示例性实施例中一种确定映射字段名列表方法的流程示意图。如图2所示,步骤S102中确定映射字段名列表具体过程如下:
步骤S201,获取所述各所述数据源数据的由字段名构成的字段名列表;
步骤S202,在判断所述多个数据源数据中存在含义相同的字段名时,将含义相同的字段名确定为目标字段名并确定一映射字段名;
步骤S203,将各所述数据源数据对应的字段名列表中的目标字段名替换为所述映射字段名,以得到各所述数据源数据对应的映射字段名列表。
接下来,对步骤S201至步骤S203进行详细说明。
在步骤S201中,首先将数据源数据中所有字段名依次排列得到字段名列表。以上述的B2C运单实时模型和离线模型为例,根据实时模型数据和离线模型数据得到两个字段名列表如表1所示:
表1实时模型数据和离线模型数据的字段名列表
序号 | 实时模型数据 | 离线模型数据 |
1 | waybill_code | waybill_code |
2 | waybill_weight | order_weight |
3 | start_city_name | start_city_name |
4 | start_city_id | start_city_id |
5 | range_code | range_code |
6 | order_time | order_time |
7 | end_city_id | end_city_id |
8 | end_city_name | end_city_name |
9 | pick_up_start_time | expect_pickup_time |
10 | end_province_id | end_province_id |
11 | start_province_id | start_province_id |
12 | end_province_name | end_province_name |
13 | start_province_name | start_province_name |
14 | data_type | data_type |
15 | redelv_rsn | redelv_cause |
16 | waybill_volume | order_volume |
17 | pick_up_end_time | expect_pickup_time_end |
18 | trader_code | trader_code |
19 | products_type | pro_type |
20 | ord_user_name | order_amount |
在步骤S202中,首先需要判断数据源数据中含义相同的字段名,并且为含义相同的字段名配置一个映射字段名。
因此,所述方法还包括:判断所述多个数据源数据中是否存在含义相同的字段名。所以,在步骤S202中判断的过程如下:
步骤(1)选取任意两个数据源数据中由相对应的两个字段名组成字段名对;
步骤(2)利用文本相似度算法计算所述字段名对中两个字段名之间的文本相似度值;
步骤(3)在所述文本相似度值超过预设阈值时,判断存在含义相同的字段名。
具体而言,在确定含义相同的字段名时,需要将两两数据源数据中字段名进行比较。实际操作时,将实时模型数据和离线模型数据的两个字段名列表作为输入,采用文本相似算法依次计算列表下两个字段名之间的文本相似度值。
按照连续字符一致个数的规则来判断文本相似度,进行文本相似度值的定义:相似度值=sum(多个数据源连续字符一致的个数)/(sum(第一个数据源字符数)+sum(第二个数据源字符数)+…+sum(第N个数据源字符数))。
以上述的实时模型数据和离线模型数据的字段名列表为例,计算得到各字段对的文本相似度值结果如表2所示:
表2实时模型数据和离线模型数据的字段名文本相似度值结果
序号 | 实时模型数据 | 离线模型数据 | 文本相似度值 |
1 | waybill_code | waybill_code | 1 |
2 | waybill_weight | order_weight | (6+6)/(14+12)=0.43 |
3 | start_city_name | start_city_name | 1 |
4 | start_city_id | start_city_id | 1 |
5 | range_code | range_code | 1 |
6 | order_time | order_time | 1 |
7 | end_city_id | end_city_id | 1 |
8 | end_city_name | end_city_name | 1 |
9 | pick_up_start_time | expect_pickup_time | (4+4)/(18+18)=0.22 |
10 | end_province_id | end_province_id | 1 |
11 | start_province_id | start_province_id | 1 |
12 | end_province_name | end_province_name | 1 |
13 | start_province_name | start_province_name | 1 |
14 | data_type | data_type | 1 |
15 | redelv_rsn | redelv_cause | (6+6)/(10+12)=0.55 |
16 | waybill_volume | order_volume | (6+6)/(14+12)=0.43 |
17 | pick_up_end_time | expect_pickup_time_end | (4+4)/(14+22)=0.22 |
18 | trader_code | trader_code | 1 |
19 | products_type | pro_type | (4+4)/(13+8)=0.38 |
20 | ord_user_name | order_amount | (3+3)/(13+12)=0.24 |
预设阈值是预先配置的,取值位于[0,1]区间,当计算的文本相似度值超过预设阈值时,则判断为两个字段名的含义是相同的。
在具体实施过程中,预设阈值可以按照经验设置为0.3,进行相似匹配。按照0.3来进行筛选,可以确定第9、17、20为非对应字段名对,即视为含义不相同,而其余的均为对应字段名对。
在对字段名的含义判断结束后,需要为每一个对应字段名对配置一个映射字段名。具体地,如果文本相似度值为1,也就是说两个字段名完全相同,那么此时映射字段名就可以取该字段名。而如果文本相似度值在预设阈值和1之间,例如第2、15、16、19的文本相似度值不为1的对应字段名对,可以将其中一个字段名设置为映射字段名。当然也可以另外设置一个与这两个字段名不同的映射字段名。
在步骤S203中,将各所述数据源数据对应的字段名列表中的目标字段名替换为所述映射字段名,以得到各所述数据源数据对应的映射字段名列表。
具体地,由于文本相似度值超过预设阈值即视为字段名含义相同,所以将字段名替换为映射字段名,这样就将含义相同的字段名全部修改为相同的字段名。
以上述实施例为例,得到实时模型数据和离线模型数据的映射字段名列表如表3所示:
表3实时模型数据和离线模型数据的映射字段名列表
序号 | 实时模型数据 | 离线模型数据 |
1 | waybill_code | waybill_code |
2 | waybill_weight | waybill_weight |
3 | start_city_name | start_city_name |
4 | start_city_id | start_city_id |
5 | range_code | range_code |
6 | order_time | order_time |
7 | end_city_id | end_city_id |
8 | end_city_name | end_city_name |
9 | pick_up_start_time | expect_pickup_time |
10 | end_province_id | end_province_id |
11 | start_province_id | start_province_id |
12 | end_province_name | end_province_name |
13 | start_province_name | start_province_name |
14 | data_type | data_type |
15 | redelv_rsn | redelv_rsn |
16 | waybill_volume | waybill_volume |
17 | pick_up_end_time | expect_pickup_time_end |
18 | trader_code | trader_code |
19 | products_type | products_type |
20 | ord_user_name | order_amount |
在本公开的一个实施例中,在基于文本相似度值判断之后,还可以增加一个校验环节,因此,所述方法还包括:
步骤(1)选取任意两个数据源数据的映射字段名列表,得到分别由两个数据源数据中两个含义不同的字段名组成的非对应字段名对;
步骤(2)遍历所述非对应字段名对,对所述非对应字段名对中的两个字段名进行含义一致性校验;
步骤(3)在含义一致性校验通过时,将所述非对应字段名对中的两个字段名均映射为同一映射字段名,以更新所述两个数据源数据的映射字段名列表。
具体地,首先根据映射字段名列表得到含义不同的非对应字段名对,如上述的第9、17、20的非对应字段名对。对每一非对应字段名进行含义一致性校验,当校验通过时,也就是发现虽然文本相似度值不高,但含义实质相同时,将非对应字段名对变为对应字段名,进行字段名的映射。其中,含义一致性校验可以采用人工校验或语音分析等方式。
以上述实施例为例,在对非对应字段名对进行含义一致性校验时,发现第9对中“pick_up_start_time”和“expect_pickup_time”实质的含义都是指拣选开始时间,以及第17对中“pick_up_end_time”和“expect_pickup_time_end”实质含义都是指拣选结束时间,因此含义一致性校验通过,需要将第9对和第17对中字段名按照步骤S202中的方法进行映射,得到如表4所示的结果:
表4实时模型数据和离线模型数据更新后的映射字段名列表
在本公开的一个实施例中,所述方法还包括:基于各所述数据源数据更新后的映射字段名列表调整所述预设阈值,以基于调整后的所述预设阈值重新判断所述对应字段名对中的两个字段名含义是否相同。
具体地,经过含义一致性校验后的映射字段名列表可以用于进行数据对比,根据更新后的映射字段名列表可以对预设阈值进行调整,以减少需要含义一致性校验的数据量。
在实际操作过程中,可以引入机器学习机制,根据每次数据对比中文本相似度值与得到的映射字段名列表进行特征提取,以优化配置的预设阈值。以本例来说,根据实时模型数据和离线模型数据更新后的映射字段名列表,可以观察出,相似度值大于0.38的都是同样意义的字段,那么我们将初始的预设阈值更改为0.38。
需要说明的是,本公开提供的数据比对方法可以适用于对多个数据源的数据进行对比,上述对实时模型数据和离线数据模型的两个数据源数据仅是示例性说明,并不影响本公开的保护范围。
图3示意性示出本公开示例性实施例中一种字段名映射方法的流程示意图。参考图3所示,首先获取多个数据源的数据;然后利用文本相似算法计算文本相似度值,并根据预设阈值进行筛选和判断,得到基础映射后的各数据源数据的映射字段名列表;之后再进行含义一致性校验,对映射字段名列表进行更新,得到完全映射的映射字段名列表,并且根据含义一致性校验的结果还可以利用机器学习模型对预设阈值进行修改。
在步骤S103中,基于各所述数据源数据分别对应的映射字段名列表,得到由相同映射字段名组成的待比对映射字段名列表。
具体地,在经过字段名映射之后,含义相同的字段名都映射为了同一个映射字段名,在数据比对时,仅比较这些具有相同的映射字段名的字段数据。
基于上述的实施例中,待比对的数据是两个数据源中前19个映射字段名对应的字段数据,所以得到待比对映射字段名列表则是序号1-序号19的映射字段名构成的列表。
在步骤S104中,遍历所述待比对映射字段名列表,分别提取各所述映射字段名在各所述数据源数据中的字段数据以得到数据比对结果。
具体地,确定了待对比映射字段名列表,遍历列表中的各映射字段名,以将映射字段名在各数据源数据中的字段数据进行比对。
因此,在本公开的一个实施例中,所述遍历所述待比对映射字段名列表,分别提取各所述映射字段名在各所述数据源数据中的字段数据以得到数据比对结果,包括:
步骤(1)针对所述映射字段名列表中一映射字段名,将所述映射字段名在各所述数据源数据中的字段数据进行数据追加得到映射字段数据;
步骤(2)将所述映射字段数据进行数据去重得到所述映射字段名的数据比对结果;
步骤(3)遍历所述待比对映射字段名列表,得到各所述映射字段名的数据比对结果。
具体而言,在数据比对时采用按关键字匹配,按映射字段名提取到个数据源数据中该映射字段名对应的字段数据,追加在同一列作为该映射字段名对应的映射字段数据。然后对同一列的数据进行去重处理作为该映射字段名的数据比对结果。
这样依次遍历列表中的映射字段名得到数据比对结果,若各数据源数据中的字段数据相同,则将相同的字段数据删除,若各数据源数据中的字段数据不同,则会分别保留数据不同的字段数据。所以数据对比结果中若字段数据为空,则数据已知,若不为空则数据比对结果中保留了有区别的字段数据。
在本公开的一个实施例中,在将所述多个数据源数据中含义相同的字段名映射为同一映射字段名,以得到各所述数据源数据分别对应的映射字段名列表之后,所述方法还包括:将配置映射关系的字段名和映射字段名存储至映射数据库,以基于所述映射数据库进行下一次数据比对的字段名映射。
具体地,可以构建一个映射数据库用来存储字段名和映射字段名的映射关系,在每次数据比对时字段名映射之后更新映射数据库来丰富数据库字段。进而可以在之后的数据对比是,先在映射数据库中进行检索,进而加快字段映射的速度,提高数据比对的效率。
其中,在构建映射数据库时,将映射字段名作为唯一主键来记录相同含义的不同字段名,得到映射数据库如表5所示:
表5映射数据库
序号 | key | name1 | name2 |
1 | waybill_code | waybill_code | waybill_code |
2 | waybill_weight | waybill_weight | order_weight |
3 | start_city_name | start_city_name | start_city_name |
4 | start_city_id | start_city_id | start_city_id |
5 | range_code | range_code | range_code |
6 | order_time | order_time | order_time |
7 | end_city_id | end_city_id | end_city_id |
8 | end_city_name | end_city_name | end_city_name |
9 | pick_up_start_time | pick_up_start_time | expect_pickup_time |
10 | end_province_id | end_province_id | end_province_id |
11 | start_province_id | start_province_id | start_province_id |
12 | end_province_name | end_province_name | end_province_name |
13 | start_province_name | start_province_name | start_province_name |
14 | data_type | data_type | data_type |
15 | redelv_rsn | redelv_rsn | redelv_cause |
16 | waybill_volume | waybill_volume | order_volume |
17 | pick_up_end_time | pick_up_end_time | expect_pickup_time_end |
18 | trader_code | trader_code | trader_code |
19 | products_type | products_type | pro_type |
图4示意性示出本公开示例性实施例中一种按映射字段名进行数据比对方法的流程示意图。参考图4所示,该方法包括以下步骤:
步骤S401,获取多个数据源数据;
步骤S402,对字段名进行映射得到多个映射字段名列表;
步骤S403,确定待比对映射字段名列表进行数据比对;具体地,步骤S403可分为:
步骤S4031,按映射字段名提取字段数据进行数据追加得到映射字段数据;
步骤S4032,对映射字段数据按映射字段名进行数据去重得到数据比对结果;
步骤S4033,查看数据比对结果,若数据比对结果为空,则数据一致;或者,若数据比对结果不为空,则得到有区别的字段数据。
基于上述方法,一方面可以自动执行大批量数据的数据比对,减少人力资源投入和人工误差,降本增效;另一方面,对比不同数据源的数据,可以得到数据比对的差异数据,并对差异数据进行分析以进行数据挖掘。
图5示意性示出本公开示例性实施例中一种数据比对装置的组成示意图,如图5所示,该数据比对装置500可以包括提取模块501、映射模块502、准备模块503以及比对模块504。其中:
提取模块501,用于从多个数据源中提取对应的多个数据源数据;其中,所述数据源数据包括字段名对应的字段数据;
映射模块502,用于将所述多个数据源数据中含义相同的字段名均映射为同一映射字段名,以得到各所述数据源数据分别对应的映射字段名列表;
准备模块503,用于基于各所述数据源数据分别对应的映射字段名列表,得到由相同映射字段名组成的待比对映射字段名列表;
比对模块504,用于遍历所述待比对映射字段名列表,分别提取各所述映射字段名在各所述数据源数据中的字段数据以得到数据比对结果。
根据本公开的示例性实施例,所述映射模块502用于获取所述各所述数据源数据的由字段名构成的字段名列表;在判断所述多个数据源数据中存在含义相同的字段名时,将含义相同的字段名确定为目标字段名并确定一映射字段名;将各所述数据源数据对应的字段名列表中的目标字段名替换为所述映射字段名,以得到各所述数据源数据对应的映射字段名列表。
根据本公开的示例性实施例,所述数据比对装置500还包括判断模块,用于判断所述多个数据源数据中是否存在含义相同的字段名,包括:选取任意两个数据源数据中由相对应的两个字段名组成字段名对;利用文本相似度算法计算所述字段名对中两个字段名之间的文本相似度值;在所述文本相似度值超过预设阈值时,判断存在含义相同的字段名。
根据本公开的示例性实施例,所述数据比对装置500还包括检验模块,用于选取任意两个数据源数据的映射字段名列表,得到分别由两个数据源数据中两个含义不同的字段名组成的非对应字段名对;遍历所述非对应字段名对,对所述非对应字段名对中的两个字段名进行含义一致性校验;在含义一致性校验通过时,将所述非对应字段名对中的两个字段名均映射为同一映射字段名,以更新所述两个数据源数据的映射字段名列表。
根据本公开的示例性实施例,所述数据比对装置500还包括调整模块,用于基于各所述数据源数据更新后的映射字段名列表调整所述预设阈值,以基于调整后的所述预设阈值重新判断所述对应字段名对中的两个字段名含义是否相同。
根据本公开的示例性实施例,所述比对模块504用于针对所述映射字段名列表中一映射字段名,将所述映射字段名在各所述数据源数据中的字段数据进行数据追加得到映射字段数据;将所述映射字段数据进行数据去重得到所述映射字段名的数据比对结果;遍历所述待比对映射字段名列表,得到各所述映射字段名的数据比对结果。
上述的数据比对装置500中各模块的具体细节已经在对应的数据比对方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的存储介质。图6示意性示出本公开示例性实施例中一种计算机可读存储介质的示意图,如图6所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品600,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如手机上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。图7示意性示出本公开示例性实施例中一种电子设备的计算机系统的结构示意图。
需要说明的是,图7示出的电子设备的计算机系统700仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(Central Processing Unit,CPU)701,其可以根据存储在只读存储器(Read-Only Memory,ROM)702中的程序或者从存储部分708加载到随机访问存储器(Random Access Memory,RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统操作所需的各种程序和数据。CPU 701、ROM702以及RAM 703通过总线704彼此相连。输入/输出(Input/Output,I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本公开的系统中限定的各种功能。
需要说明的是,本公开实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据比对方法,其特征在于,包括:
从多个数据源中提取对应的多个数据源数据;其中,所述数据源数据包括字段名对应的字段数据;
将所述多个数据源数据中含义相同的字段名均映射为同一映射字段名,以得到各所述数据源数据分别对应的映射字段名列表;
基于各所述数据源数据分别对应的映射字段名列表,得到由相同映射字段名组成的待比对映射字段名列表;
遍历所述待比对映射字段名列表,分别提取各所述映射字段名在各所述数据源数据中的字段数据以得到数据比对结果。
2.根据权利要求1所述的数据比对方法,其特征在于,所述将所述多个数据源数据中含义相同的字段名均映射为同一映射字段名,以得到各所述数据源数据分别对应的映射字段名列表,包括:
获取所述各所述数据源数据的由字段名构成的字段名列表;
在判断所述多个数据源数据中存在含义相同的字段名时,将含义相同的字段名确定为目标字段名并确定一映射字段名;
将各所述数据源数据对应的字段名列表中的目标字段名替换为所述映射字段名,以得到各所述数据源数据对应的映射字段名列表。
3.根据权利要求1所述的数据比对方法,其特征在于,所述方法还包括:判断所述多个数据源数据中是否存在含义相同的字段名,所述判断所述多个数据源数据中是否存在含义相同的字段名,包括:
选取任意两个数据源数据中由相对应的两个字段名组成字段名对;
利用文本相似度算法计算所述字段名对中两个字段名之间的文本相似度值;
在所述文本相似度值超过预设阈值时,判断存在含义相同的字段名。
4.根据权利要求3所述的数据比对方法,其特征在于,在得到各所述数据源数据分别对应的映射字段名列表之后,所述方法还包括:
选取任意两个数据源数据的映射字段名列表,得到分别由两个数据源数据中两个含义不同的字段名组成的非对应字段名对;
遍历所述非对应字段名对,对所述非对应字段名对中的两个字段名进行含义一致性校验;
在含义一致性校验通过时,将所述非对应字段名对中的两个字段名均映射为同一映射字段名,以更新所述两个数据源数据的映射字段名列表。
5.根据权利要求4所述的数据比对方法,其特征在于,所述方法还包括:基于各所述数据源数据更新后的映射字段名列表调整所述预设阈值,以基于调整后的所述预设阈值重新判断所述对应字段名对中的两个字段名含义是否相同。
6.根据权利要求1所述的数据比对方法,其特征在于,所述遍历所述待比对映射字段名列表,分别提取各所述映射字段名在各所述数据源数据中的字段数据以得到数据比对结果,包括:
针对所述映射字段名列表中一映射字段名,将所述映射字段名在各所述数据源数据中的字段数据进行数据追加得到映射字段数据;
将所述映射字段数据进行数据去重得到所述映射字段名的数据比对结果;
遍历所述待比对映射字段名列表,得到各所述映射字段名的数据比对结果。
7.根据权利要求1所述的数据比对方法,其特征在于,在将所述多个数据源数据中含义相同的字段名映射为同一映射字段名,以得到各所述数据源数据分别对应的映射字段名列表之后,所述方法还包括:
将配置映射关系的字段名和映射字段名存储至映射数据库,以基于所述映射数据库进行下一次数据比对的字段名映射。
8.一种数据比对装置,其特征在于,包括:
提取模块,用于从多个数据源中提取对应的多个数据源数据;其中,所述数据源数据包括字段名对应的字段数据;
映射模块,用于将所述多个数据源数据中含义相同的字段名均映射为同一映射字段名,以得到各所述数据源数据分别对应的映射字段名列表;
准备模块,用于基于各所述数据源数据分别对应的映射字段名列表,得到由相同映射字段名组成的待比对映射字段名列表;
比对模块,用于遍历所述待比对映射字段名列表,分别提取各所述映射字段名在各所述数据源数据中的字段数据以得到数据比对结果。
9.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如权利要求1至7任一项所述的数据比对方法。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7任一项所述的数据比对方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211644571.XA CN115809228A (zh) | 2022-12-20 | 2022-12-20 | 数据比对方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211644571.XA CN115809228A (zh) | 2022-12-20 | 2022-12-20 | 数据比对方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115809228A true CN115809228A (zh) | 2023-03-17 |
Family
ID=85486355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211644571.XA Pending CN115809228A (zh) | 2022-12-20 | 2022-12-20 | 数据比对方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115809228A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627958A (zh) * | 2023-07-21 | 2023-08-22 | 中邮消费金融有限公司 | 大数据质量校验方法、装置、设备及存储介质 |
-
2022
- 2022-12-20 CN CN202211644571.XA patent/CN115809228A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627958A (zh) * | 2023-07-21 | 2023-08-22 | 中邮消费金融有限公司 | 大数据质量校验方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162516B (zh) | 一种基于海量数据处理的数据治理的方法及系统 | |
CN109344154B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111143556A (zh) | 软件功能点自动计数方法、装置、介质及电子设备 | |
CN108073707B (zh) | 金融业务数据更新方法、装置及计算机可读取存储介质 | |
CN114048129A (zh) | 软件功能变更的自动化测试方法、装置、设备及系统 | |
CN115809228A (zh) | 数据比对方法、装置、存储介质及电子设备 | |
CN110879808A (zh) | 一种信息处理方法和装置 | |
US10664653B2 (en) | Automated structured cloud datatester | |
CN110704635B (zh) | 一种知识图谱中三元组数据的转换方法及装置 | |
CN115547508B (zh) | 数据校正方法、装置、电子设备及存储介质 | |
CN110750509A (zh) | 一种企业名称查重方法及装置、设备、介质 | |
CN114328700B (zh) | 医疗数据etl任务中的数据核查方法及装置 | |
CN115455091A (zh) | 数据生成方法、装置、电子设备和存储介质 | |
CN115422180A (zh) | 数据校验方法及系统 | |
CN109324963A (zh) | 自动测试收益结果的方法及终端设备 | |
CN116107971A (zh) | 模型的数据处理方法、装置、电子设备以及存储介质 | |
CN111859985A (zh) | Ai客服模型测试方法、装置、电子设备及存储介质 | |
CN110728584B (zh) | 信息处理方法及装置、可读存储介质和电子设备 | |
CN112347095B (zh) | 数据表的处理方法、装置和服务器 | |
CN115544995A (zh) | 一种表格信息处理方法、装置、电子设备及存储介质 | |
CN117171139A (zh) | 一种数据库变更方法及系统、电子设备、存储介质 | |
CN117609186A (zh) | 数据库迁移的数据比对方法、装置、电子设备及存储介质 | |
CN115525660A (zh) | 一种数据表的校验方法、装置、设备及介质 | |
CN113111073A (zh) | 异常数据分拣方法、装置、计算设备及计算机存储介质 | |
CN116244268A (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 |