mysql TINYINT kettle 取数查询 kettle直接把表中的"1"值用"Y"来代表了 大家有遇到过这问题吗?

mysql TINYINT kettle 取数查询 kettle直接把表中的"1"值用"Y"来代表了 大家有遇到过这问题吗?,第1张

在kettle常常有处理从一个源数据中做转换.做转换的时候, 需要去查另一个数据库.

这种问题遇到数据小时候还好办. 但是数据魇 时候就麻烦来了.

下面针对三种情况做具体情况的选择办法

1. 当需要转换的数据特别大的时候, 例如: 10W条以上.或者100W条以上时.

上图中,hadoop数据导入,导入的数据如果够多,例如100W条以上,其中一个字段需要查询数据库中查询,而这个字段的类型并不多,例如只有10个类型或者数据库中就只有这10个类型.那么,可以走线路2, 并且线路2中的 "使用缓存" 可以打勾,也可以不打.当然你这个源里的数据太多,打上当然最好了.因为省得再去你的数据库里再查.

但是当源里的数据类型还是只有10个类型,但是你的数据库里面存了有10000条记录时,怎么办?

有两种解决办法:

1).线路2:并且查询节点中的 "使用缓存" 不能打勾.

2).线路1,并在"带条件的结果查询供流查询使用" 这个结点中,用一个SQL,过滤一下数据,然后尽可能地把那里包括的这些记录查出来.这样在流里的比对时.也很快很多.必竟是在内存里做运算了

2. 查另一个数据库的数据量大时,而你的源数据不大.

最好的选择是

线路1,并在"带条件的结果查询供流查询使用" 这个结点中,用一个SQL,过滤一下数据,然后尽可能地把那里包括的这些记录查出来.这样在流里的比对时.也很快很多.必竟是在内存里做运算了

3. 当两个数据源都非常大时(最不想遇到的)

这种情况是最不想遇到的办法

拖动表输入控件,绑定数据源连接你要查询的数据库

SQL语句

select * frm table

此时你已经可以获取表中所有数据,根据你后续的需要,再去执行后续相关的 *** 作。

例如过滤就用过滤控件,同步就用表输出控件插入另一张表(甚至可以不同数据源)


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

原文地址: http://outofmemory.cn/sjk/6759438.html

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

发表评论

登录后才能评论

评论列表(0条)

保存