在kettle中进行数据抽取,如果抽取的源数据库和目标数据库不是同一个数据库,可能会导致转换后的中文出现乱码情况,原因是由于在中文环境下有的数据库客户端默认编码格式是UTF-8,而另外的数据库编码格式是GBK,这样就导致数据乱码的情况出现。
针对这个问题,只需要在Database connection中做一个配置即可,具体步骤如下:
1.点击如下图Transform或jobs的DB连接。
2.在弹出的Database Connection中选择Options选项,在Parameters下填入参数“characterEncoding”,其value为“gbk”,如下图。
这样,就能解决kettle抽取数据过程中的中文乱码问题。
附:
针对mysql数据库,如果在pentaho平台上执行kettle的数据抽取,并且在作出上述修改后仍然出现乱码的话,可以考虑以下几个方面:
1.pentaho的META-INF/context.xml中数据源的url后面添加“useUnicode=true&characterEncoding=utf8&characterSetResults=utf8”完整的配置如下
- <Resource name="jdbc/bi" auth="Container" type="javax.sql.DataSource"
-
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
-
maxWait="10000" username="root" password="root"
-
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/bi?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8"
-
validationQuery="select 1" />
-
2.检查mysql数据库server端字符集是否是utf-8,如果不是的话,修改为utf-8。具体修改方法可百度一下,网上很多介绍介绍。
分享到:
相关推荐
(1)Kettle数据抽取---全量抽取
kettle增量抽取数据
通过kettle循环抽取整库数据至CSV文件,可根据该程序修改抽取至数据至数据库等。
Kettle增量抽取技巧
Kettle实现Oracle两表之间进行增量抽取数据,不需要时间戳!
kettle数据抽取流程整理
Kettle数据抽取--增量抽取,详细操作教材
kettle数据清洗抽取,全量对比记录,包含列转行,增加序列,字段拆分,对比记录
kettle数据抽取、数据清洗、数据装换, 作业根据时间戳更新插入数据完整demo 1、先获取时间戳 2、删除目标库大于时间戳的 3、数据同步,获取源表跟目标表大于时间戳的,比较, 目标表多的删除, 少的插入更新 4...
kettle分页抽取、插入实现.zip
使用Kettle实现多数据表全量数据抽取,前提是两边表结构一模一样,维护的话请注意月度里面的readMe.md文件
此处主要以两个例子说明KETTLE可支持的数据转换操作,一个说明不同数据库表间的数据提取和加载,一个说明数据文件与数据库表间的数据提取与加载。
kettle抽取MySQL 增量数据 到 ES中 kettle抽取MySQL 增量数据 到 ES中 kettle抽取MySQL 增量数据 到 ES中 kettle抽取MySQL 增量数据 到 ES中 kettle抽取MySQL 增量数据 到 ES中 kettle抽取MySQL 增量数据 到 ES中 ...
Kettle实现多张表数据的定时删除全量抽取,删除旧shuju
kettle的简单数据转换demokettle的简单数据转换demokettle的简单数据转换demo
kettle数据清洗抽取,同数据库间数据的抽取,字段的拆分,数据统计
本地简单kettle抽MySQL数据到ES中 案例.zip本地简单kettle抽MySQL数据到ES中 案例.zip 本地简单kettle抽MySQL数据到ES中 案例.zip本地简单kettle抽MySQL数据到ES中 案例.zip 本地简单kettle抽MySQL数据到ES中 案例....
利用kettle工具进行原始字典和标准字典的映射,将原始数据进行标准化处理。
kettle实现数据转换的完整例子,代数据库脚本。kettle源码文件
kettle集群搭建以及使用kettle将mysql数据转换为Hbase数据