一种ETL任务中指标变更的检测方法和装置制造方法及图纸

技术编号:13339776 阅读:192 留言:0更新日期:2016-07-13 14:08
本申请公开了一种ETL任务中指标变更的检测方法和装置。其中所述ETL任务中指标变更的检测方法,通过使用事先备份好的数据初始化ETL任务的源表数据,执行变更前的ETL任务和变更后的ETL任务,获取变更前目标表集合和变更后目标表集合相应的数据;并比较变更前目标表集合和变更后目标表集合的共有目标表下同名指标的数据,发现目标表的指标变更以及具体的变更详情。采用本申请提供的方法,当检测到目标表指标变更时,开发人员若想进一步排查指标变更原因,可以不用考虑源数据不一致的问题,直接就可以判断是ETL代码变更导致的,并且能够获取指标变更的具体详情。

【技术实现步骤摘要】

本申请涉及数据仓库
,具体涉及一种ETL任务中指标变更的检测方法和装置
技术介绍
ETL(Extract-Transform-Load,数据抽取、转换、装载的过程)作为BI/DW(BusinessIntelligence/DataWarehouse,商业智能/数据仓库)的核心和灵魂,能够按照统一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过程,是实施数据仓库的重要步骤。在数据仓库的整个项目中最难部分是用户需求分析和模型设计,而ETL规则设计和实施则是工作量最大的,约占整个项目的60%~80%。数据仓库ETL过程中,当ETL代码变更时,ETL开发人员需要查明指标变更原因,以便于为后续的ETL工作提供有价值的参考。一种常用的ETL指标变更的检测方法是通过记录目标表数据初始状态和结束状态,直接监控这两个状态下目标表指标数据的变化情况,从而查明指标变更的原因。该方法既没有通过某种方式保证ETL代码固定,也没有通过某种方式保证源数据固定。在这种情况下,被检测出发生指标变更的目标表数据,导致其发生指标变更的原因包括两种:既可能是因为源数据随着互联网实际行为变化真的发生了变更导致的,也可能是开发人员修改了ETL数据处理代码导致的。因此,即使发现目标表发生指标变更,开发人员仍无法判断指标变更的具体原因。综上所述,现有技术存在无法准确判断ETL指标变更原因是ETL代码变更还是源数据变更的问题。
技术实现思路
本申请提供一种ETL任务中指标变更的检测方法和装置,以解决现有技术存在无法准确判断ETL指标变更原因是ETL代码变更还是源数据变更的问题。本申请提供一种ETL任务中指标变更的检测方法,包括:获取变更前的ETL任务和变更后的ETL任务;解析所述变更前的ETL任务和变更后的ETL任务,生成变更前目标表集合和变更后目标表集合,以及变更前后的所有源表集合,并根据其各自的建表指令进行建表;针对每个源表,按照事先备份好的数据进行初始化;以上述初始化后的源表为数据来源,分别执行所述变更前的ETL任务的数据操作指令和变更后的ETL任务的数据操作指令,在变更前目标表集合和变更后目标表集合中,分别获得相应的数据;比较所述变更前目标表集合和变更后目标表集合的共有目标表下同名指标的数据,判断数据是否发生变化,若是,则判断指标发生变更并作出指标变更标识。可选的,所述判断数据是否发生变化,具体是:判断相同目标表中同名指标下的数据量是否发生变化,若是,则对该同名指标作出“数据量发生变化”的标识。可选的,所述判断相同目标表中同名指标下的数据量是否发生变化的步骤中,若判断结果为否,则:以所述相同目标表中的变化前目标表为主表,选择一个具有主键性质的公共指标作为关联字段;通过所述关联字段,将所述变化前目标表与相同目标表中的变化后目标表相关联,比较所述同名指标下的数据值是否发生变化;若是,则对所述同名指标作出“数据值发生变化”的标识。可选的,若所述比较所述同名指标下的数据值是否发生变化的步骤中,判断结果为是,则找出主键指标的至少一个数据值,并在所述变化前目标表中找出对应所述数据值的所述同名指标的数据值作为变化前数据值,以及在所述变化后目标表中找出对应所述数据值的所述同名指标的数据值作为变化后数据值;将所述共有指标标识为:在所述主键指标为所述数据值时,所述共有指标的值从所述变化前数据值变成所述变化后数据值。可选的,还包括:比较所述变更前目标表集合和所述变更后目标表集合的共有目标表;找出变更前共有目标表中包含而变更后共有目标表不包含的指标集合,这些指标为被下线指标集合。可选的,还包括:根据预先存储的指标依赖关系,获取对发生变更的指标有直接或间接依赖关系的指标。可选的,在所述获取ETL任务在变更前和变更后分别包括的数据操作指令之前,还包括:初始化所述指标依赖关系。可选的,所述初始化所述指标依赖关系包括:针对ETL过程中的每一个ETL任务,获取所述ETL任务包括的数据操作指令;解析所述数据操作指令,获取各个指标生成语句;根据所述指标生成语句,获取所述指标生成语句中的目标指标和源指标,并将所述目标指标和源指标之间的关系作为所述指标依赖关系;所述目标指标直接依赖于源指标。相应的,本申请还提供一种ETL任务中指标变更的检测装置,包括:获取单元,用于获取变更前的ETL任务和变更后的ETL任务;解析单元,用于解析所述变更前的ETL任务和变更后的ETL任务,生成变更前目标表集合和变更后目标表集合,以及变更前后的所有源表集合,并根据其各自的建表指令进行建表;初始化数据单元,用于针对每个源表,按照事先备份好的数据进行初始化;执行单元,用于以上述初始化后的源表为数据来源,分别执行所述变更前的ETL任务的数据操作指令和变更后的ETL任务的数据操作指令,在变更前目标表集合和变更后目标表集合中,分别获得相应的数据;第一比较单元,用于比较所述变更前目标表集合和变更后目标表集合的共有目标表下同名指标的数据,判断数据是否发生变化,若是,则判断指标发生变更并作出指标变更标识。可选的,所述判断数据是否发生变化,具体是:判断相同目标表中同名指标下的数据量是否发生变化,若是,则对该同名指标作出“数据量发生变化”的标识。可选的,所述判断相同目标表中同名指标下的数据量是否发生变化的步骤中,若判断结果为否,则:以所述相同目标表中的变化前目标表为主表,选择一个具有主键性质的公共指标作为关联字段;通过所述关联字段,将所述变化前目标表与相同目标表中的变化后目标表相关联,比较所述同名指标下的数据值是否发生变化;若是,则对所述同名指标作出“数据值发生变化”的标识。可选的,若所述比较所述同名指标下的数据值是否发生变化的步骤中,判断结果为是,则找出主键指标的至少一个数据值,并在所述变化前目标表中找出对应所述数据值的所述同名指标的数据值作为变化前数据值,以及在所述变化后目标表中找出对应所述数据值的所述同名指标的数据值作为变化后数据值;将所述共有指标标识为:在所述主键指标为所述数据值时,所述共有指标的值从所述变化前数据值变成所述变化后数据值。可选的,还包括:第二比较单元,用于比较所述变更前目标表集合和所述变更后目标表集合的共有目标表;标识下线单元,用于找出变更前共本文档来自技高网
...

【技术保护点】
一种ETL任务中指标变更的检测方法,其特征在于,包括:获取变更前的ETL任务和变更后的ETL任务;解析所述变更前的ETL任务和变更后的ETL任务,生成变更前目标表集合和变更后目标表集合,以及变更前后的所有源表集合,并根据其各自的建表指令进行建表;针对每个源表,按照事先备份好的数据进行初始化;以上述初始化后的源表为数据来源,分别执行所述变更前的ETL任务的数据操作指令和变更后的ETL任务的数据操作指令,在变更前目标表集合和变更后目标表集合中,分别获得相应的数据;比较所述变更前目标表集合和变更后目标表集合的共有目标表下同名指标的数据,判断数据是否发生变化,若是,则判断指标发生变更并作出指标变更标识。

【技术特征摘要】
1.一种ETL任务中指标变更的检测方法,其特征在于,包括:
获取变更前的ETL任务和变更后的ETL任务;
解析所述变更前的ETL任务和变更后的ETL任务,生成变更前目标表集合
和变更后目标表集合,以及变更前后的所有源表集合,并根据其各自的建表指
令进行建表;
针对每个源表,按照事先备份好的数据进行初始化;
以上述初始化后的源表为数据来源,分别执行所述变更前的ETL任务的数
据操作指令和变更后的ETL任务的数据操作指令,在变更前目标表集合和变更
后目标表集合中,分别获得相应的数据;
比较所述变更前目标表集合和变更后目标表集合的共有目标表下同名指标
的数据,判断数据是否发生变化,若是,则判断指标发生变更并作出指标变更
标识。
2.根据权利要求1所述的ETL任务中指标变更的检测方法,其特征在于,
所述判断数据是否发生变化,具体是:
判断相同目标表中同名指标下的数据量是否发生变化,若是,则对该同名
指标作出“数据量发生变化”的标识。
3.根据权利要求2所述的ETL任务中指标变更的检测方法,其特征在于,
所述判断相同目标表中同名指标下的数据量是否发生变化的步骤中,若判断结
果为否,则:
以所述相同目标表中的变化前目标表为主表,选择一个具有主键性质的公
共指标作为关联字段;
通过所述关联字段,将所述变化前目标表与相同目标表中的变化后目标表
相关联,比较所述同名指标下的数据值是否发生变化;
若是,则对所述同名指标作出“数据值发生变化”的标识。
4.根据权利要求3所述的ETL任务中指标变更的检测方法,其特征在于,
若所述比较所述同名指标下的数据值是否发生变化的步骤中,判断结果为是,
则找出主键指标的至少一个数据值,并在所述变化前目标表中找出对应所述数
据值的所述同名指标的数据值作为变化前数据值,以及在所述变化后目标表中
找出对应所述数据值的所述同名指标的数据值作为变化后数据值;
将所述共有指标标识为:在所述主键指标为所述数据值时,所述共有指标
的值从所述变化前数据值变成所述变化后数据值。
5.根据权利要求1所述的ETL任务中指标变更的检测方法,其特征在于,
还包括:
比较所述变更前目标表集合和所述变更后目标表集合的共有目标表;
找出变更前共有目标表中包含而变更后共有目标表不包含的指标集合,这
些指标为被下线指标集合。
6.根据权利要求1-5任一项所述的ETL任务中指标变更的检测方法,其特
征在于,还包括:
根据预先存储的指标依赖关系,获取对发生变更的指标有直接或间接依赖
关系的指标。
7.根据权利要求6所述的ETL任务中指标变更的检测方法,其特征在于,
在所述获取ETL任务在变更前和变更后分别包括的数据操作指令之前,还包括:
初始化所述指标依赖关系。
8.根据权利要求7所述的ETL任务中指标变更的检测方法,其特征在于,
所述初始化所述指标依赖关系包括:
针对ETL过程中的每一个ETL任务,获取所述ETL任务包括的数据操作
指令;
解析所述数据操作指令,获取各个指标生成语句;
根据所述指标生成语句,获取所述指标生成语句中的目标指标和源指标,
并将所述目标指标和源指标之间的关系作为所述指标依赖关系;所述目标指标
直接依赖于源指标。
9.一种ETL任务中指标变更的检测装置,其特征在于,包括:
获取单元,用于获取变...

【专利技术属性】
技术研发人员:吴媛媛
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1