kettle怎么把数据源配置成全局数据源

kettle怎么把数据源配置成全局数据源,第1张

资源库

默认数据库连接为全局共有

非资源库

a) 将数据库连接进行共享,view-database connections-share

b) 设置为全局变量,在kettleproperties文件中,将数据库连接各属性配置为变量

Set Variables:  This step allows you to set variables in a job or in the virtual machine It accepts one (and only one) row of data to set the value of a variable 

IMPORTANT : IT IS NOT POSSIBLE TO SET AND USE A VARIABLE IN THE SAME TRANSFORMATION  This is because all steps run in parallel 

在一个转换里设置的变量,不能在这个转换里使用: 是因为一个转换中的所有步骤都是并行运行的,kettle的理念里变量是用来在Job级别通信用的,在Job的一步里set了一个变量后, 在job后面的步骤里可以用${variable}来调用这个变量。

但在transformation里可以直接用上一步的返回结果集(stream) ,作为下一步的输入参数 :即不用通过定义和调用变量而进行参数传递,设置方法如下:

插入/更新

1你是否遇到了需要将mysql数据库中的所有表与数据迁移到Oracle。

2你是否还在使用kettle重复的画着:表输入-表输出、创建表,而烦恼。下面为你实现了一套通用的数据库迁移流程。技术引导:实现之初,在kettle提供的例子中找到了一个类似的(samples\jobs\processalltables)。通过相关改造,终于达到目标。实现过程解剖:整套流程分为:2个job,4个trans。使用到的Trans插件:表输入、字段选择、复制记录到结果、从结果获取记录、设置变量、自定义java脚本、表输出。1大job。2要迁移的源库表名称获取,并设置到结果集,为下面的job使用。

3配置子job为前面的每一条记录(即每个表)执行一次该子job4下面是子job。5获取记录中的表名称,并设置为到变量。6读取当前表的结果信息,并在目标库中创建表(这个是难点)。因为只需要获取抓取要抽取表的结构信息,故在sql后面加上where1=2。下面代码是创建目标库表。Java代码publicbooleanprocessRow(StepMetaInterfacesmi,StepDataInterfacesdi)throwsKettleException{//First,getarowfromthedefaultinputhop//Object[]r=getRow();orgpentahodicoredatabaseDatabaseMetadbmeta=null;javautilListlist=getTrans()getRepository()readDatabases();//3x中获取资源库的所有数据库连接信息用getDatabases();if(list!=null&&!listisEmpty()){for(inti=0;i

以上就是关于kettle怎么把数据源配置成全局数据源全部的内容,包括:kettle怎么把数据源配置成全局数据源、Kettle转换用上一步返回结果集作为下一步输入参数、kettle怎么实现重复抽取更新数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9703957.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存