1. kettle 怎么根据时间字段进行过滤
今天使用kettle从mysql导数到oracle,发现只导了7行后,数据传输就终止了,查看日志信息,报内错如下容:
image
报:Couldn't get row from result set问题。
发现从这行开始这个时间字段除了正常的时间数据以外还有NULL值,难道这类的值引起的错误,在查询了相关资料后,才知道jdbc(默认行为)认为null或'0000-00-00'这样的日期时间值是无效的。如果想避开这个问题,需要编辑jdbc的连接属性,添加如下属性值:
zeroDateTimeBehavior=convertToNull
image
设置之后导数成功进行。
image
所以,设计生产系统中的相关表时,默认值最好不要使用'0000-00-00'或null这样的值。
2. 用kettle导入数据的时候怎么去掉数据库中已经存在的数据
使用数据库的删除功能删除数据库里的数据,或者用表输入的裁减表功能清空表中数据
3. 哪位高人知道kettle中如何新建转换清空几个表的数据kettle连接的oracle数据库。
kettle可以执行脚本,delete和truncate都可以。但是连接数据库的用户要有清空权限,具体权限可以找dba要
4. kettle中web未输出值xml怎么过滤掉,只解析返回有结果的;
参考:
5. 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中的 "使用缓存" 打勾.
当然还有别的更复杂但是会更快的办法.适用场景比较少,不再详细写了.
6. ETL之kettle学习
Kettle是一款国外开源的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
外文名
Kettle
中文名
水壶
产品
Spoon、Pan、CHEF、Kitchen
脚本文件
transformation和job,
特点
绿色无需安装
最新版本
8.2
7. 通过取出kettle日志里过滤数据的条数来记录,java有这样的包吗
这个我没遇到过。不过可以这样:你在kettle里做个过滤,吧过滤出的数据单独写到 txt或者数据表里,然后 java调 ktr ,然后开个线程 扫描过滤的数据。
8. 如何使用kettle 做数据清洗
在kettle常常有处理从一个源数据中做转换.做转换的时候, 需要去查另一个数据库. 这种问题遇到数据小时候还好办. 但是数据魇 时候就麻烦来了. 下面针对三种情况做具体情况的选择办法 先上一个图 [img] [/img] 1. 当需要转换的数据特别大的时候,
9. kettle随机数的过滤有什么用
通过正则表达式,可以过滤符合要求的随机数,比如生成的随机数不包含“4”等等
10. 请问kettle工具如何在导出EXCLE文件的时候,增加判断如果查询的结果没有数据就不导出,也不生成文件急
加一个过滤组件啊 源数据查询记录数<>0 就走导出EXCEL数据流 =0 就mmy