没有合适的资源?快使用搜索试试~ 我知道了~
kettle_使用中的一些常见问题
需积分: 47 24 下载量 129 浏览量
2018-11-07
11:02:46
上传
评论
收藏 26KB DOCX 举报
温馨提示
试读
11页
kettle 使用中的一些常见问题 问题1: 从excel 中抽取数据,插入到oracle 9 数据库中,报下面的错误. 2008/06/25 13:30:57 - 插入更新数据表.0 - Insert row: ![field1=1.3965E8, field2=1,798, field3=2002/05/27 00:00:00.000] 2008/06/25 13:30:57 - oracl - ERROR : java.sql.SQLException: ORA-01722: 无效数字 2008/06/25 13:30:57 - oracl - ERROR : at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
资源推荐
资源详情
资源评论
kettle 使用中的一些常见问题
问题 1:
从 excel 中抽取数据,插入到 oracle 9 数据库中,报下面的错误.
2008/06/25 13:30:57 - 插入更新数据表.0 - Insert row: ![field1=1.3965E8, field2=1,798,
field3=2002/05/27 00:00:00.000]
2008/06/25 13:30:57 - oracl - ERROR : java.sql.SQLException: ORA-01722: 无效数字
2008/06/25 13:30:57 - oracl - ERROR : at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
原因:
从错误信息可以看出,字段 "field2" 对应的数据是 1,798,该字段在数据库中是 Number
类型,Oracle 不能将 1,798 格式的字符串转换为数字。
解决方法:
在 【Excel 输入步骤】-【字段】 标签下对应的字段设置为正确的类型。将 "field2" 设置为
"Number" 类型(默认是 String 类型)。
问题 2: 由 sqlserver 向 mysql 迁移数据, 迁移以后的数据是乱码
原因: 这是由于 mysql 的默认编码是 utf-8, 而中文环境下客户端的默认编码一般都是 gbk
或 gb18030, 由于客户端和服务器编码不一样导致保存到 mysql 的数据是乱码
解决方法: 在新建连接窗口中有一个选项(option) 标签, 在这个标签下可以设置数据库的一
些连接参数. 在这里我们要设置 mysql 的客户端编码参数, 参数名 characterEncoding, 参
数值 gbk.
问题 3: 在 SQLServer 表输入步骤中使用以问号作为参数的 sql 语句 (参数的值从以前的步
骤中获得),向 mysql 数据库导入数据 (使用 mysql 表输出步骤).
在执行的时候报告错误 Unable to get queryfields for SQL: AND e.LOCAL_TIME>? 00909
PRS INC Invalid character.
原因: 从错误语句看,是参数没有被替换掉, 因为发送给 mysql 服务器的是这样的语句 "AND
e.LOCAL_TIME>?". 参数没有被替换掉是因为从以前步骤中读取的参数值是 null.
解决方法: 增加对 null 值的判断, 可以有两种方法, 如果这个值是从数据库获取的,一般的数
据库都提供了处理 null 值的函数,如 mysql 的 ISNULL 函数. 如果这个值是从其他步骤获得
的,可以通过 Javascript 步骤进行判断并转换.
问题 4: 使用 PDI 3.x 版本连接 DB2 数据库时会报下面的错误
Error connecting to database: (using class com.ibm.db2.jcc.DB2Driver)
encoding not supported!!
原因: PDI 自带的 DB2 JDBC Driver 的版本比较低,无法连接 GBK 编码的 DB2 数据库。
解决方法: 将 DB2 数据库的编码改为 utf-8 编码。或者找高版本的 DB2 JDBC Driver 来代
替 PDI 自带的 DB2 JDBC Driver。
问题 5: win2000 下运行,命令行太长导致 spoon 或 kitchen 无法运行:
原因: spoon 运行时加载了太多的 jar,win2000 下对命令行的长度有限制
解决方法:1. 使用 java.ext.dirs 参数,将 lib,libext,等 jar 路径都设置到这个参数下。
http://forums.pentaho.org/showthread.php?t=57843&page=2
2. 删除 libext 目录下某些不需要的 jar,如各种数据库的 jdbc driver
3. 使用 launcher 见
http://jira.pentaho.com/browse/PDI-559
H
问题 6: 关于资源文件 kettle.property。
资源文件里的变量值如果有汉字,应该使用 unicode 字符方式表示,即 \uxxxx 的形式
变量值里如果有 "\" 符号,要转义为 "\\"
文本文件输入
从文本文件中获得数据,常见的文本文件包括 csv 、txt、文件等。用户要在该步骤指定文件名、文件内
容、错误处理方式、过滤器、字段等项目。
参数说明:
l 指定文件名的三种方式
1. 指定一个具体的文件名。
2. 指定一个正则表达式,来匹配一个目录下的文件。
3. 将其它步骤的运行结果作为文件名。
l 文件内容设置
分隔符:指定字段之间的分隔符号
文本限定符:指定一个字符串左右的限定符号,有限定符的字符串里可以使用分隔符。有限定符的字符串
内部如果要使用限定符,要将限定符加倍。
转义符:指定文本中的转义符号,用来将其后的字符转义。
页眉:指定页眉的行数,页眉行不作为数据行处理。
页脚:指定页脚的行数,页脚行不作为数据行处理。
回卷:说明一个数据行是否被回卷为多行。
l 错误处理设置
忽略错误:是否忽略解析过程中产生的错误。
跳过错误行:是否跳过发生错误的行。如果不跳过,那么发生错误的字段值会被置为空。
记录错误数的输出字段:指定一个输出字段用来记录解析错误的字段的个数。
记录错误描述的输出字段:指定一个输出字段用来记录发生错误的所有字段的名字。
记录错误字段名的输出字段:指定一个输出字段用来记录错误的描述信息。
警告文件目录:当发生警告时,警告将保存在这个指定的目录下。
错误文件目录:当发生警告时,警告将保存在这个指定的目录下。
失败行数文件目录:当读取行失败时,读取失败的行号将保存在这个指定的目录下。
l 过滤器
过滤器:用来过滤输入行,符合过滤器条件的输入行将被忽略掉。
过滤字符串:用来去匹配输入数据的字符串(不支持正则表达式)
过滤开始位置:指定字符串里开始匹配的位置,负数或 0 表示从第一个字符开始匹配。
停止处理:当遇到了匹配的字符串时,是否停止处理
l 字段
设定字段名称和数据类型
使用 kettle 设计一些 ETL 任务时一些常见问题
2009-07-27 10:55
摘要:本文主要介绍使用 kettle 设计一些 ETL 任务时一些常见问题,这些问题
大部分都不在官方 FAQ 上,你可以在 kettle 的论坛上找到一些问题的答案
1. Join
我得到 A 数据流(不管是基于文件或数据库),A 包含 eld1 , eld2 ,
eld3 字段,然后我还有一个 B 数据流,B 包含 eld4 , eld5 , eld6 , 我
现在想把它们 ‘加’ 起来, 应该怎么样做.
这是新手最容易犯错的一个地方,A 数据流跟 B 数据流能够 Join,肯定是它们
包含 join key ,join key 可以是一个字段也可以是多个字段。如果两个数据流
没有 join key ,那么它们就是在做笛卡尔积,一般很少会这样。比如你现在需
要列出一个员工的姓名和他所在部门的姓名,如果这是在同一个数据库,大家
都知道会在一个 sql 里面加上 where 限定条件,但是如果员工表和部门表在
两个不同的数据流里面,尤其是数据源的来源是多个数据库的情况,我们一般
是要使用 Database Join 操作,然后用两个 database table input 来表示输
入流,一个输入是部门表的姓名,另一个是员工表的姓名,然后我们认为这两
个表就可以 ”Join” 了,我们需要的输出的确是这两个字段,但是这两个字段的
输出并不代表只需要这两个字段的输入,它们之间肯定是需要一个约束关系存
在的。另外,无论是在做 Join , Merge , Update , Delete 这些常规操作的时
剩余10页未读,继续阅读
资源评论
wochousile
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- base.apk
- Vue 结合 D3.js 进行数据可视化开发的练手案例.zip
- 语音模块使用说明_jr6001调试工具.html
- 毕业设计-reat18货物运输后台管理系统
- Qt tcp通信(exe)
- tensorflow-gpu-2.7.3-cp39-cp39-manylinux2010-x86-64.whl
- tensorflow-2.8.0-cp37-cp37m-manylinux2010-x86-64.whl
- tensorflow-2.7.4-cp39-cp39-manylinux2010-x86-64.whl
- HTML后台管理系统源49套合集 H5模板源码下载 总有一款适合你 静态页面
- DDColor-PDF文献
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功