【Kettle】血统分析

在转换中,血统就是说你要知道一个数据是从哪里来的,在哪个步骤中,增加了或修改了这个数据,最后输出到哪个数据库表中。

本篇通过job,先把资源库导出成xml文件,然后通过分析xml文件,把想要的信息输入到数据库表中进行保存。当要查询表来源时,只需要查询存储资源库的表即可。

job:

job中的转换:

1. 导出资源库到XML文件

2. Get data from XML(解析导出的资源库XML文件)

输出的字段名如下,其中“.”表示在“内容”标签中设置的循环路径:

transname(转换名称):./info/name

step_name(步骤名称):./step/name

step_type(步骤类型):./step/type

database(连接的数据库):./connection/name

tablename(输出的表名):./step/table

schema(表所在的schema名):./step/schema

sql(生成表的SQL):./step/sql


3. 表输出


### Kettle 中的血缘分析功能 #### 血缘分析的重要性 血缘分析(Lineage Analysis)对于理解数据流至关重要。通过追踪数据从源到目标的变化路径,可以确保数据质量并简化调试过程。在ETL工具中,如 Informatica 和 DataStage 都提供了详细的表级和字段级别的血缘关系展示[^2]。 #### Kettle 的血缘分析特性 Kettle(也称为 Pentaho Data Integration, PDI),作为一个强大的开源 ETL 工具,在其社区版和支持的企业版本中都包含了基本的元数据分析能力。然而,默认情况下,PDI 并不提供图形化的自动血缘跟踪视图。为了实现这一功能,通常需要借助第三方插件或手动配置。 #### 手动创建血缘记录的方法 一种常见的做法是在转换过程中显式地记录每个步骤之间的映射关系。这可以通过以下方式完成: 1. **定义标准化命名约定** 使用一致性的前缀或后缀来标记来自特定源头的数据列名称。例如,“SRC_”表示原始输入,“TRF_”代表经过变换后的中间状态,“DST_”则指最终目的地字段名。 2. **利用日志记录机制** 启用详尽的日志级别设置,以便捕获所有操作细节。这些日志文件能够帮助审计人员重建整个处理流程,并识别任何潜在问题所在之处。 3. **编写自定义 Java 类/脚本任务** 开发者可以根据项目需求定制专门用于收集和存储血缘信息的小型应用程序片段。这类组件可以在每次执行时动态更新中央数据库内的关联图表结构。 4. **采用外部管理解决方案** 考虑引入专业的MDM (Master Data Management) 或 EDM (Enterprise Data Management) 解决方案作为补充手段。它们往往具备更加成熟完善的可视化界面以及自动化程度更高的维护选项。 ```java // 示例:Java类保存血缘信息至数据库 public class LineageLogger { public void logTransformation(String sourceField, String targetTable, String targetField){ // 建立连接... Connection conn = DriverManager.getConnection(url,user,password); PreparedStatement pstmt = null; try{ String sql="INSERT INTO lineage_log VALUES(?,?,?)"; pstmt=conn.prepareStatement(sql); pstmt.setString(1,sourceField); pstmt.setString(2,targetTable); pstmt.setString(3,targetField); int rowsAffected=pstmt.executeUpdate(); System.out.println(rowsAffected+" row(s) inserted."); }catch(SQLException e){ e.printStackTrace(); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值