根据内容片段在资源库SQL反查kettle转换或作业

Kettle是一款免费开源的ETL软件,配合定时任务来做数据同步等各种ETL转换、作业特别方便。但当转换和作业多了和时间长了之后,如果没有详细文档记录,可能后面就找不到某些表是怎么生成的数据来源是哪里,某些转换被哪些作业调用的等等。

其实当kettle以资源库形式运行时,转换、作业及其详细内容等均存在资源库数据库里。找到其数据库里对应的表,即可用SQL根据片段反查转换或任务。如查询某个表是哪个转换/作业生成的,某个表被哪些转换/作业用到,某个转换/子作业被哪些作业调用等等。进而进行管理、调整。

kettle资源库为数据库时,上图为例,均为设置资源库后kettle在资源库自动生成的数据表。各项配置都存在数据表里。

分析其数据库结构 ,即可用SQL根据内容片段查询该资源库里kettle的各项转换、作业。常用脚本如下:

1.根据片段反查转换

--1.片段反查Trans
SELECT
d.directory_name,b."NAME" Trans_Name,a.code,a.id_step,c."NAME" step_name,
a.value_str,b.created_date, b.modified_date
 from r_step_attribute a 
left join r_transformation b
on a.id_transformation=b.id_transformation 
left join r_step c
on a.id_step=c.id_step
left join r_directory d
on b.id_directory=d.id_directory 
where a.value_str ~* 't_user_data_d';
-- ~* 为PostgreSQL 正则表达式的写法,这里等价于通用的  like '%t_user_data_d%'
查询结果:含目录、转换名称、执行单元类型,步骤名,内容等

2.根据片段反查作业


--2.片段反查Jobs
SELECT 
d.directory_name,
a.id_job,
b."NAME" Job_name,
--a.id_jobentry,
c."NAME" 执行单元,
e.description,
a.value_str,
b.created_date, 
b.modified_date
 from r_jobentry_attribute a 
 left join r_job b
  on a.id_job=b.id_job
left join r_jobentry c
 on a.id_jobentry=c.id_jobentry	  
left join r_directory d
on b.id_directory=d.id_directory 
left join r_jobentry_type e
 on c.id_jobentry_type=e.id_jobentry_type
where 1=1
and a.value_str ~* 't_user_data_d';
查询结果:含目录、作业名称、执行单元名称,步骤名,内容等

尊重作者劳动,转载请注明出处:札记-Qianrong's Blog » 根据内容片段在资源库SQL反查kettle转换或作业

赞 (114)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址