System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于kettle执行器的数据血缘分析方法及系统技术方案_技高网

一种基于kettle执行器的数据血缘分析方法及系统技术方案

技术编号:41125852 阅读:4 留言:0更新日期:2024-04-30 17:53
本发明专利技术公开一种基于kettle执行器的数据血缘分析方法及系统,涉及数据分析技术领域,包括:从kettle配置库获取转换脚本信息,解析出组件信息;获取组件之间的连接顺序,经逻辑判断将解析出的组件信息进行分析整合,生成源字段到目标字段的数据血缘信息;从kettle配置库获取作业脚本信息,顺序读取作业脚本中嵌套的脚本信息,如果读取的脚本是作业脚本,则循环读取其中的脚本信息,直到读取到转换脚本解析出数据血缘信息;获取脚本之间的连接顺序,经逻辑判断将所有解析出来的数据血缘信息进行分析整合,生成字段级别的数据血缘信息;在前端页面可视化显示数据血缘信息供用户查看。本发明专利技术解决了对数据进行追溯复杂,问题数据的定位排查困难的问题。

【技术实现步骤摘要】

本专利技术涉及数据分析,具体的说是一种基于kettle执行器的数据血缘分析方法及系统


技术介绍

1、kettle通过脚本设计进行数据的抽取、转换、加载等操作,由于kettle为客户端程序,无法提供对外接口,无法在kettle脚本执行后自动进行血缘分析,现有技术只能导出xml格式的kettle脚本然后对脚本进行手动解析处理,分析数据之间的血缘关系,不能实现kettle脚本执行完毕后自动进行血缘分析,且只支持通过遍历xml格式的kettle脚本的各个节点机械的分析节点数据在数据库之间流转的情况,解析不够智能,不能保证数据血缘的准确性和完整性。


技术实现思路

1、当前利用kettle对数据进行抽取、转换、加载,以实现数据共享,但随着业务逻辑复杂度的增加,kettle的脚本设计也越来越复杂,数据流转逻辑越来越复杂,对数据进行追溯越来越复杂,对问题数据的定位也越来越困难。本专利技术针对目前技术发展的需求和不足之处,提供一种基于kettle执行器的数据血缘分析方法及系统,解决对kettle处理的数据进行追溯复杂、问题数据的定位排查困难的问题。

2、第一方面,本专利技术的一种基于kettle执行器的数据血缘分析方法,解决上述技术问题采用的技术方案如下:

3、一种基于kettle执行器的数据血缘分析方法,其包括如下步骤:

4、s1、通过kettle原生java-api接口连接kettle配置库获取转换脚本信息,解析出转换脚本中包含的输入输出组件信息和字段转换组件信息;

5、利用kettle原生java-api接口获取组件之间的连接顺序,经逻辑判断将解析出的输入输出组件信息和字段转换组件信息进行分析整合,生成源字段到目标字段的数据血缘信息,将血缘信息存入数据库进行持久化操作;

6、s2、通过kettle原生java-api接口连接kettle配置库获取作业脚本信息,按顺序读取出作业脚本中嵌套的脚本信息,判断脚本类型,如果读取的脚本是作业脚本,则循环读取其中的脚本信息,直到读取到转换脚本解析出数据血缘信息;

7、利用kettle原生java-api接口获取脚本之间的连接顺序,经逻辑判断将所有解析出来的数据血缘信息进行分析整合,生成字段级别的数据血缘信息并将血缘信息存入数据库进行持久化操作;

8、s3、在前端页面可视化显示数据血缘信息供用户查看。

9、可选的,执行步骤s1,通过kettle原生java-api接口连接kettle配置库后,通过kettlerepository相关接口获取kettle配置库信息,通过loadtransformation接口获取转换脚本信息,通过transmeta.getsteps接口获取输入输出组件和字段转换组件,通过stepmeta.getstepid接口获取组件id,随后基于组件id进行解析,得到输入输出组件信息和字段转换组件信息;

10、解析获取输入输出组件信息和字段转换组件信息后,根据组件之间的连接顺序,每个字段结合字段的输入输出都生成一条源字段到目标字段的数据血缘信息,将血缘信息存入数据库进行持久化操作。

11、进一步可选的,输入输出组件包括数据库输入输出组件、文件输入输出组件、接口输入输出组件;

12、数据库输入输出组件包括表输入组件、表输出组件、更新组件、插入/更新组件、数据库查询组件;从数据库输入输出组件中解析出数据库连接信息、库表信息和字段信息,其中数据库连接信息包括数据库类型、ip地址、端口号、数据库名称、用户名、密码;

13、文件输入输出组件包括文本文件输入组件、文本文件输出组件、excel输入组件、excel输出组件、xml输入组件、xml输出组件、json输入组件、json输出组件;从文件输入输出组件中解析出文件路径信息、文件名称信息、文件头信息;

14、接口组件包括http客户端组件、rest客户端组件、web查询服务组件;从接口组件中解析出接口地址信息、接口入参信息和接口出参信息;

15、字段转换组件包括字段选择组件、拆分字段组件、行转列组件、列转行组件;从字段转换组件中解析出组件之间字段变换信息。

16、可选的,执行步骤s2,通过kettle原生java-api接口连接kettle配置库后,通过kettlerepository相关接口获取kettle配置库信息,通过loadjob接口获取作业脚本信息,通过jobmeta.getjobcopies接口顺序读取出作业脚本中嵌套的脚本信息,随后通过jobentrycopy.istransformation接口判断是否为转换脚本,

17、(a)如果是,则通过loadtransformation将转换脚本读取出来,并按照步骤s1解析出数据血缘信息;

18、(b)如果不是转换脚本,则通过jobentrycopy.isjob判断是否为作业脚本,(b1)如果是作业脚本,则循环上述步骤直到解析出转换脚本为止,(b2)如果不是作业脚本则结束解析。

19、可选的,执行步骤s3,前端通过逻辑查询可视化显示数据库的全部数据血缘信息,精确到字段级别,包含每个字段的流转信息;

20、点击字段即可查看字段所属的数据库、文件或接口信息,还可查看与该字段相关的血缘信息,包括源信息和源信息的全部上游信息、目标信息和目标信息的全部下游信息;

21、点击字段之间的连线即可查看生成该条血缘数据的任务信息。

22、第二方面,本专利技术的一种基于kettle执行器的数据血缘分析系统,解决上述技术问题采用的技术方案如下:

23、一种基于kettle执行器的数据血缘分析系统,其包括kettle脚本解析引擎和数据血缘可视化视图,kettle脚本解析引擎又包括转换脚本解析引擎和作业脚本解析引擎,其中:

24、转换脚本解析引擎首先通过kettle原生java-api接口连接kettle配置库获取转换脚本信息,解析出转换脚本中包含的输入输出组件信息和字段转换组件信息,随后利用kettle原生java-api接口获取组件之间的连接顺序,经逻辑判断将解析出的输入输出组件信息和字段转换组件信息进行分析整合,生成源字段到目标字段的数据血缘信息,将血缘信息存入数据库进行持久化操作;

25、作业脚本解析引擎首先通过kettle原生java-api接口连接kettle配置库获取作业脚本信息,按顺序读取出作业脚本中嵌套的脚本信息,判断脚本类型,如果读取的脚本是作业脚本,则循环读取其中的脚本信息,直到读取到转换脚本解析出数据血缘信息,随后利用kettle原生java-api接口获取脚本之间的连接顺序,经逻辑判断将所有解析出来的数据血缘信息进行分析整合,生成字段级别的数据血缘信息并将血缘信息存入数据库进行持久化操作;

26、数据血缘可视化视图通过前端页面可视化显示数据血缘信息,供用户查看。

27、可选的,所本文档来自技高网...

【技术保护点】

1.一种基于kettle执行器的数据血缘分析方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种基于kettle执行器的数据血缘分析方法,其特征在于,执行步骤S1,通过kettle原生java-api接口连接kettle配置库后,通过KettleRepository相关接口获取kettle配置库信息,通过loadTransformation接口获取转换脚本信息,通过TransMeta.getSteps接口获取输入输出组件和字段转换组件,通过StepMeta.getStepID接口获取组件ID,随后基于组件ID进行解析,得到输入输出组件信息和字段转换组件信息;

3.根据权利要求2所述的一种基于kettle执行器的数据血缘分析方法,其特征在于,输入输出组件包括数据库输入输出组件、文件输入输出组件、接口输入输出组件;

4.根据权利要求1所述的一种基于kettle执行器的数据血缘分析方法,其特征在于,执行步骤S2,通过kettle原生java-api接口连接kettle配置库后,通过KettleRepository相关接口获取kettle配置库信息,通过loadJob接口获取作业脚本信息,通过JobMeta.getJobCopies接口顺序读取出作业脚本中嵌套的脚本信息,随后通过JobEntryCopy.isTransformation接口判断是否为转换脚本,

5.根据权利要求1所述的一种基于kettle执行器的数据血缘分析方法,其特征在于,执行步骤S3,前端通过逻辑查询可视化显示数据库的全部数据血缘信息,精确到字段级别,包含每个字段的流转信息;

6.一种基于kettle执行器的数据血缘分析系统,其特征在于,其包括kettle脚本解析引擎和数据血缘可视化视图,kettle脚本解析引擎又包括转换脚本解析引擎和作业脚本解析引擎,其中:

7.根据权利要求6所述的一种基于kettle执行器的数据血缘分析系统,其特征在于,所述转换脚本解析引擎通过kettle原生java-api接口连接kettle配置库后,通过KettleRepository相关接口获取kettle配置库信息,通过loadTransformation接口获取转换脚本信息,通过TransMeta.getSteps接口获取输入输出组件和字段转换组件,通过StepMeta.getStepID接口获取组件ID,随后基于组件ID进行解析,得到输入输出组件信息和字段转换组件信息,根据组件之间的连接顺序,每个字段结合字段的输入输出都生成一条源字段到目标字段的数据血缘信息,将血缘信息存入数据库进行持久化操作。

8.根据权利要求7所述的一种基于kettle执行器的数据血缘分析系统,其特征在于,输入输出组件包括数据库输入输出组件、文件输入输出组件、接口输入输出组件;

9.根据权利要求6所述的一种基于kettle执行器的数据血缘分析系统,其特征在于,所述作业脚本解析引擎通过kettle原生java-api接口连接kettle配置库后,通过KettleRepository相关接口获取kettle配置库信息,通过loadJob接口获取作业脚本信息,通过JobMeta.getJobCopies接口顺序读取出作业脚本中嵌套的脚本信息,随后通过JobEntryCopy.isTransformation接口判断是否为转换脚本,

10.根据权利要求6所述的一种基于kettle执行器的数据血缘分析系统,其特征在于,数据血缘可视化视图通过逻辑查询可视化显示数据库的全部数据血缘信息,精确到字段级别,包含每个字段的流转信息;

...

【技术特征摘要】

1.一种基于kettle执行器的数据血缘分析方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种基于kettle执行器的数据血缘分析方法,其特征在于,执行步骤s1,通过kettle原生java-api接口连接kettle配置库后,通过kettlerepository相关接口获取kettle配置库信息,通过loadtransformation接口获取转换脚本信息,通过transmeta.getsteps接口获取输入输出组件和字段转换组件,通过stepmeta.getstepid接口获取组件id,随后基于组件id进行解析,得到输入输出组件信息和字段转换组件信息;

3.根据权利要求2所述的一种基于kettle执行器的数据血缘分析方法,其特征在于,输入输出组件包括数据库输入输出组件、文件输入输出组件、接口输入输出组件;

4.根据权利要求1所述的一种基于kettle执行器的数据血缘分析方法,其特征在于,执行步骤s2,通过kettle原生java-api接口连接kettle配置库后,通过kettlerepository相关接口获取kettle配置库信息,通过loadjob接口获取作业脚本信息,通过jobmeta.getjobcopies接口顺序读取出作业脚本中嵌套的脚本信息,随后通过jobentrycopy.istransformation接口判断是否为转换脚本,

5.根据权利要求1所述的一种基于kettle执行器的数据血缘分析方法,其特征在于,执行步骤s3,前端通过逻辑查询可视化显示数据库的全部数据血缘信息,精确到字段级别,包含每个字段的流转信息;

6.一种基于kettle执行器的数据血缘分析系统,其特征在于,其包括kettle脚本解析引擎和数据血缘可视化视图,ket...

【专利技术属性】
技术研发人员:陈绪光张连超陈晏鹏周双司衍芹
申请(专利权)人:浪潮软件股份有限公司
类型:发明
国别省市:

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

1