kettle重复执行转换,表数据会重复添加吗? kettle 合并多个表
kettle可以在同一个数据库里进行数据转换吗
在kettle常常有处理从一个源数据中做转换.做转换的时候, 需要去查另一个数据库.
这种问题遇到数据小时候还好办. 但是数据魇 时候就麻烦来了.
下面针对三种情况做具体情况的选择办法
先上一个图
[img]
[/img]
1. 当需要转换的数据特别大的时候, 例如: 10W条以上.或者100W条以上时.
上图中,hadoop数据导入,导入的数据如果够多,例如100W条以上,其中一个字段需要查询数据库中查询,而这个字段的类型并不多,例如只有10个类型或者数据库中就只有这10个类型.那么,可以走线路2, 并且线路2中的 "使用缓存" 可以打勾,也可以不打.当然你这个源里的数据太多,打上当然最好了.因为省得再去你的数据库里再查.
但是当源里的数据类型还是只有10个类型,但是你的数据库里面存了有10000条记录时,怎么办?
有两种解决办法:
1).线路2:并且查询节点中的 "使用缓存" 不能打勾.
2).线路1,并在"带条件的结果查询供流查询使用" 这个结点中,用一个SQL,过滤一下数据,然后尽可能地把那里包括的这些记录查出来.这样在流里的比对时.也很快很多.必竟是在内存里做运算了
2. 查另一个数据库的数据量大时,而你的源数据不大.
最好的选择是
线路1,并在"带条件的结果查询供流查询使用" 这个结点中,用一个SQL,过滤一下数据,然后尽可能地把那里包括的这些记录查出来.这样在流里的比对时.也很快很多.必竟是在内存里做运算了
3. 当两个数据源都非常大时(最不想遇到的)
这种情况是最不想遇到的办法
一种选择:
1).线路2中的 "使用缓存" 打勾.
当然还有别的更复杂但是会更快的办法.适用场景比较少,不再详细写了.
kettle怎样实现相同不变,不同更新
有人知道用kettle怎样实现:相同的数据不必再转换,只把插入更新或删除的数据转换而已吗?因为每天要启动一次,所以不可以每天都重复全部数据转换
kettle中在一个转换中怎么在第二个步骤用第一个步骤的数据
Kettle获取数据处理条数记录日志信息:以前的途径是配置...版本中提供了一个步骤:在【统计】-【转换步骤信息...都是第一个是正确的,第二个往后的都是表名前面带
kettle怎么合并两个表然后输出到另一数据库里
Jseven_jy的方法, UNION 的地方, 变为 UNION ALL 就可以了。
也就是:
(select 字段1, 字段4 from 源表 ) union all
(select 字段2 as 字段1, 字段4 from 源表) union all
(select 字段3 as 字段1, 字段4 from 源表)
因为使用 union ,会把重复的合并掉。
union all 不合并重复的。