【技术实现步骤摘要】
基于数据仓库的数据血缘关系处理方法及装置
[0001]本申请涉及数据仓库
,尤其涉及一种基于数据仓库的数据血缘关系处理方法及装置。
技术介绍
[0002]随着企业的业务产品线不断增多,底层数据记录越来越复杂,企业级的数据仓库建设变得更加重要。在数据仓库的建设过程中,多人参与开发已成为常态,抽取
‑
转换
‑
加载(Extraction
‑
Transformation
‑
Loading,ETL)任务也逐渐增长到数百个,维护起来会遇到很多难题,尤其是ETL任务和数据仓库表(简称库表)之间的数据血缘关系尤为复杂。
[0003]目前,数据仓库的数据血缘关系一般都是由人工维护,即人工查询ETL任务和库表之间的血缘关系。明显的,受限于人为因素,数据仓库的数据血缘关系的查询过程将会花费大量时间,其查询效率较低、且较为容易出错。
技术实现思路
[0004]本申请提供了一种基于数据仓库的数据血缘关系处理方法及装置,目的在于帮助用户快速有效地获悉数 ...
【技术保护点】
【技术特征摘要】
1.一种基于数据仓库的数据血缘关系处理方法,其特征在于,包括:获取数据仓库中所包含的工作集以及ETL任务;利用预设的正则表达式,从所述工作集的字符信息中获取得到各个所述工作集之间的包含关系,以及所述工作集和所述ETL任务之间的包含关系;对所述工作集的字符信息进行解析,得到各个所述ETL任务之间的依赖关系;对所述ETL任务进行解析,得到所述ETL任务所包含的各个组件;对每个所述组件进行解析,得到每个所述组件中所包含的各个库表、各个所述库表之间的依赖关系、各个字段、各个所述字段之间的依赖关系;基于每个所述组件所包含的各个所述库表之间的依赖关系,构建所述数据仓库中各个所述库表之间的依赖关系;基于每个所述组件所包含的各个所述字段之间的依赖关系,构建所述数据仓库中各个所述字段之间的依赖关系;基于所述ETL任务中所包含的各个所述库表,生成所述ETL任务和所述库表之间的包含关系;获取每个所述库表所包含的字段,并基于每个所述库表所包含的字段,生成所述库表和所述字段之间的包含关系;获取各个所述库表的有效词语集合,并基于各个所述库表的有效词语集合,确定各个所述库表之间的语义近似关系。2.根据权利要求1所述的方法,其特征在于,所述获取数据仓库中所包含的工作集以及ETL任务,包括:从预先构建的第三信息表中获取数据仓库中所包含的工作集以及ETL任务;其中,所述第三信息表的构建过程包括:获取所述数据仓库的各个项目文件;将各个所述项目文件中文件后缀名为.kjb的项目文件,标识为所述工作集,以及将文件后缀名为.ktr的项目文件,标识为所述ETL任务;基于各个所述工作集以及所述ETL任务,构建所述第三信息表。3.根据权利要求1所述的方法,其特征在于,所述利用预设的正则表达式,从所述工作集的字符信息中获取得到各个所述工作集之间的包含关系,以及所述工作集和所述ETL任务之间的包含关系,包括:从所述工作集的字符信息中,获取与第一正则表达式匹配的字符串;从与所述第一正则表达式匹配的字符串中,获取与第二正则表达式匹配的字符串;从工作集的字符信息中,获取与第三正则表达式匹配的字符串;从与所述第二正则表达式匹配的字符串中,获取与第四正则表达式匹配的字符串,并从与所述第四正则表达式匹配的字符串中,解析得到所述工作集所包含的其他工作集;从与所述第三正则表达式匹配的字符串中,获取与第五正则表达式匹配的字符串,并从与所述第五正则表达式匹配的字符串中,解析得到所述工作集所包含的ETL任务;基于每个所述工作集所包含的其他工作集,生成各个所述工作集之间的包含关系;基于每个所述工作集所包含的ETL任务,生成所述工作集和所述ETL任务之间的包含关系。4.根据权利要求1所述的方法,其特征在于,所述对所述工作集的字符信息进行解析,
得到各个所述ETL任务之间的依赖关系,包括:从所述工作集的字符信息中,获取与第一关键字匹配的字符串;从与所述第一关键字匹配的字符串中,获取与第二关键字匹配的字符串;从与所述第二关键字匹配的字符串中,解析得到源任务的名称,以及依赖于所述源任务的目标任务的名称;从所述工作集的字符信息中,获取与第三关键字匹配的字符串;从与所述第三关键字匹配的字符串中,解析得到各个文件路径;从各个所述文件路径中获取包含有所述源任务的名称的文件路径,以及包含有所述目标任务的名称的文件路径;根据包含有所述源任务的名称的文件路径,查询得到与所述源任务对应的ETL任务;根据包含有所述目标任务的名称的文件路径,查询得到与所述目标任务对应的ETL任务;基于所述源任务和所述目标任务之间的依赖关系、与所述源任务对应的ETL任务、与所述目标任务对应的ETL任务,生成各个ETL任务之间的依赖关系。5.根据权利要求1所述的方法,其特征在于,所述组件的类型包括存储过程;所述对每个所述组件进行解析,得到每个所述组件中所包含的各个库表、各个所述库表之间的依赖关系、各个字段、各个所述字段之间的依赖关系,包括:对于所述ETL任务所包含的每个存储过程,从预先构建的第四信息表中获取所述存储过程的有效实现逻辑,并将所述有效实现逻辑,标识为待解析逻辑;其中,所述第四信息表的构建过程包括:预先获取数据仓库的各个项目逻辑,以及每个所述项目逻辑的配置文件;对于每个所述项目逻辑,对所述项目逻辑的配置文件进行解析,得到所述项目逻辑的纲要;调用预设的SQL查询语句,从所述纲要中查询得到所述项目逻辑所包含的各个存储过程的实现逻辑;对各个所述存储过程的实现逻辑进行数据清洗,得到各个所述存储过程的有效实现逻辑;对各个所述存储过程的有效实现逻辑进行数据格式转换,使得各个所述有效存储过程的有效实现逻辑的数据格式相同;基于经由数据格式转换后的各个所述存储过程的有效实现逻辑,构建所述第四信息表;对所述待解析逻辑进行解析,得到所述存储过程中所包含的各个库表、各个所述库表之间的依赖关系、各个字段、各个所述字段之间的依赖关系。6.根据权利要求5所述的方法,其特征在于,所述对所述待解析逻辑进行解析,得到所述存储过程中所包含的各个库表、各个所述库表之间的依赖关系、各个字段、各个所述字段之间的依赖关系,包括:从所述待解析逻辑中获取与第四关键字匹配的各个字符串;从与所述第四关键字匹配的各个字符串中,解析得到所述待解析逻辑中所包含的各个输出表;从所述待解析逻辑中获取与第五关键字匹配的各个字符串;从与所述第五关键字匹配的各个字符串中,解析得到所述待解析逻辑中所包含的各个库表;将各个所述库表中表名与所述输出表的表名不同的库表,作为所述待解析逻辑中所包含的输入表;
将所述待解析逻辑中所包含的每个输出表,分别与所述待解析逻辑中所包含的每个输入表进行配对,得到所述存储过程中所包含的各个库表之间的依赖关系;从所述待解析逻辑中获取与第六关键字匹配的各个字符串;从与所述第六关键字匹配的各个字符串中,解析得到所述待解析逻辑中所包含的各个输出字段;从所述待解析逻辑中获取与所述第七关键字匹配的各个字符串;从与所述第七关键字匹配的各个字符串中,解析得到所述待解析逻辑中所包含的各个候选字段;对于每个所述候选字段,在确定预先构建的第一信息表中记录有所述候选字段的情况下,将所述候选字段作为所述待解析逻辑中所包含的输入字段;其中,所述第一信息表的构建过程包括:获取数据仓库的各个项目逻辑,以及每个所述项目逻辑的配置文件;对于每个所述项目逻辑,对...
【专利技术属性】
技术研发人员:白迪,
申请(专利权)人:建信融通有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。