一种集成数据比对方法与流程

文档序号:26588959发布日期:2021-09-10 20:14阅读:95来源:国知局
一种集成数据比对方法与流程

1.本发明涉及数据集成与校验技术领域,特别涉及一种集成数据比对方法。


背景技术:

2.大数据项目建设时,需要将企业内各个业务系统的数据集中到数据库仓库中。一般初次需要集成的数据库非常多,表也非常多,数据量巨大。而很多企业内在搭建数据仓库时,通常需要对多个业务系统的数据进行集成。有相当一部分集成工具,没有提供目标和源数据比较的功能。数据集成后,技术人员很难明确的知道已经集成的数据与源数据库的数据是否一致。
3.当前采用的传统的做法是随机抽查部分表的数据是否一致,不仅费时费力,而且工作效率极低,无法查找出所有的差异数据。
4.为了有效解决当前企业上线大数据项目或者数据集成项目,对企业内的多个业务数据进行集中抽取时,技术人员的工作量大,辅助技术人员无法把握数据抽取质量的问题,本发明提出了一种集成数据比对方法,快速的生成已经集成的数据与源数据库数据的比较报表,并提醒技术对部分异常数据进行处理或者补抽。


技术实现要素:

5.本发明为了弥补现有技术的缺陷,提供了一种简单高效的集成数据比对方法。
6.本发明是通过如下技术方案实现的:
7.一种集成数据比对方法,其特征在于:根据需要配置需要校验的数据表,通过程序将配置拼接为不同的sql(structured query language,结构化查询语言)语言;然后在不同类型的数据库中执行sql语言,并记录sql语言执行结果,最终自动形成数据比较报告。
8.该集成数据比对方法,包括以下步骤:
9.第一步,以excel文件为参数设置模板,设置需要检验的数据表以及与源数据库和目标数据库的连接;
10.第二步,解析数据库表名称,关键指标和需要校验的数据区间;
11.第三步,分别生成源校验sql语言和目标校验sql语言;
12.第四步,运行python脚本,按表循环调度,记录并比较源校验sql语言执行结果和目标校验sql语言执行结果;
13.第五步,将源校验sql语言执行结果,目标校验sql语言执行结果以及两者的比较结果均输出到excel文件保存备用。
14.所述第一步中,在excel模板中针对具体的业务表设置默认关键字段,并根据业务表设置单独的比较字段。
15.所述默认关键字段包括:
16.1)目标数据库和源数据的jabc连接方式和地址;
17.2)数据校验的表;
18.3)需要比对的字段名称;
19.4)校验数据的日期类型及日期区间,日期区间包括开始日期和结束日期;
20.5)数据分组类型。
21.所述日期类型包括月(month),周(week),日(day)和年(year);
22.其中,月类型的格式为yyyymm(例如202001,表示2020年01月),周类型的格式为yyyymmw(例如2020022,表示2020年02月份第2周),日类型的格式为yyyymmdd(例如20200402,表示2020年04月02日),其中yyyy表示年份,mm表示月份,w表示某月第几周,dd表示某日;
23.年类型的格式只读取开始日期。
24.所述数据分组类型包括不分组(all)和按日期分组两种类型;
25.其中,按日期分组包括按月份组,按周分组和按日分组三种类型,不支持按年分组。
26.当校验数据的日期类型为月时,数据分组类型支持按月分组;当校验数据的日期类型为周时,数据分组类型支持按月分组和按周分组;当校验数据的日期类型为日时,数据分组类型支持按日分组和按月分组。
27.所述第三步中,利用python程序读取参数表,组织sql语言;
28.sql语言格式如下:select substr(date1,1,6)as date1,'pi_com_day'as tabid,sum(qty_sold)as tvalue from pi_com_day where substr(date1,1,6)between'201601'and'201601'。
29.本发明的有益效果是:该集成数据比对方法,能够发现数据集成后的数据差异并自动生成差异报告,从而提醒技术人员对部分异常数据进行处理或者补抽,提高了技术人员数据抽取质量,减少了技术人员的工作量,适宜推广应用。
附图说明
30.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
31.附图1为本发明集成数据比对方法示意图。
具体实施方式
32.为了使本技术领域的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
33.该集成数据比对方法,根据需要配置需要校验的数据表,通过程序将配置拼接为不同的sql(structured query language,结构化查询语言)语言;然后在不同类型的数据库中执行sql语言,并记录sql语言执行结果,最终自动形成数据比较报告。
34.该集成数据比对方法,包括以下步骤:
35.第一步,以excel文件为参数设置模板,设置需要检验的数据表以及与源数据库和目标数据库的连接;
36.第二步,解析数据库表名称,关键指标和需要校验的数据区间;
37.第三步,分别生成源校验sql语言和目标校验sql语言;
38.第四步,运行python脚本,按表循环调度,记录并比较源校验sql语言执行结果和目标校验sql语言执行结果;
39.第五步,将源校验sql语言执行结果,目标校验sql语言执行结果以及两者的比较结果均输出到excel文件保存备用。
40.所述第一步中,在excel模板中针对具体的业务表设置默认关键字段,并根据业务表设置单独的比较字段。
41.所述默认关键字段包括:
42.1)目标数据库和源数据的jabc(java database connectivity,java数据库连接)连接方式和地址;
43.2)数据校验的表;
44.3)需要比对的字段名称;
45.4)校验数据的日期类型及日期区间,日期区间包括开始日期和结束日期;
46.5)数据分组类型。
47.所述日期类型包括月(month),周(week),日(day)和年(year);
48.其中,月类型的格式为yyyymm(例如202001,表示2020年01月),周类型的格式为yyyymmw(例如2020022,表示2020年02月份第2周),日类型的格式为yyyymmdd(例如20200402,表示2020年04月02日),其中yyyy表示年份,mm表示月份,w表示某月第几周,dd表示某日;
49.年类型的格式只读取开始日期。
50.所述数据分组类型包括不分组(all)和按日期分组两种类型;
51.其中,按日期分组包括按月份组,按周分组和按日分组三种类型,不支持按年分组。
52.当校验数据的日期类型为月时,数据分组类型支持按月分组;当校验数据的日期类型为周时,数据分组类型支持按月分组和按周分组;当校验数据的日期类型为日时,数据分组类型支持按日分组和按月分组。
53.所述第三步中,利用python程序读取参数表,组织sql语言;
54.sql语言格式如下:select substr(date1,1,6)as date1,'pi_com_day'as tabid,sum(qty_sold)as tvalue from pi_com_day where substr(date1,1,6)between'201601'and'201601'。
55.表1参数说明实施例
56.[0057][0058]
以表1为例,从表中可以看出需要校验2106年1月到2019年8月分的数据;分组方式是”month”,说明数据是按照月进行拆分任务的。也就是201601、201602,一直到201908。表名表示需要校验的表,表名对应的公式是对校验字段的处理方式,如不填,默认是为sum(qty_sold)。日期字段是取数限制字段。
[0059]
以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1