今天遇到一个比较奇葩的事,在Kettle更新Greenplum&Postgresql时会出以下错误:
2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : Unexpected error 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : org.pentaho.di.core.exception.KettleStepException: 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : Error in step, asking everyone to stop because of: 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : Error looking up row in database 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : ERROR: Unexpected internal error (cdbdisp.c:466) 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : at org.pentaho.di.trans.steps.insertupdate.InsertUpdate.processRow(InsertUpdate.java:307) 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : at org.pentaho.di.trans.step.RunThread.run(RunThread.java:40) 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : at java.lang.Thread.run(Thread.java:662) 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : Error looking up row in database 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : ERROR: Unexpected internal error (cdbdisp.c:466) 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : at org.pentaho.di.core.database.Database.getLookup(Database.java:3120) 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : at org.pentaho.di.core.database.Database.getLookup(Database.java:3093) 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : at org.pentaho.di.trans.steps.insertupdate.InsertUpdate.lookupValues(InsertUpdate.java:80) 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : at org.pentaho.di.trans.steps.insertupdate.InsertUpdate.processRow(InsertUpdate.java:290) 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : ... 2 more 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : Caused by: org.postgresql.util.PSQLException: ERROR: Unexpected internal error (cdbdisp.c:466) 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2077) 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1810) 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257) 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:498) 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:386) 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:271) 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : at org.pentaho.di.core.database.Database.getLookup(Database.java:3101) 2014/08/08 11:08:15 - Insert / Update.0 - ERROR (version 4.2.1, build 1 from 2012-11-22 19.15.47 by Administrator) : ... 5 more 2014/08/08 11:08:15 - Table input.0 - Stopped while putting a row on the buffer
网上基本找不到跟“Unexpected internal error (cdbdisp.c:466)”相关的问题,但是在Pentaho论坛找到一个bug http://wiki.pentaho.com/display/EAI/Insert+-+Update
解决方法是在数据库连接的高级选项中,勾选“Supports boolean data type”即可。
想了下,问题的原因应该是GP和PG中不会对boolean向int自动转换;问题出在建表时有字段类型是类似smallint(1)这种的情况,jdbc遇到长度为1的整形字段时(定义字段)会自动转为布尔值,所以产生了该问题。最好的解决方法,是在select时对这种类型的字段应该乘以1或者加0,利用隐式转换使字段结果为整型字段(显式转换应该也可以),这样有个好处,在遇到2~9时,不会因为前边提到的布尔类型转换都成为1
相关推荐
postgre最新驱动
### Kettle 配置文档:Ubuntu 下的 Kettle 集成 GPLoad 环境配置 #### 一、Ubuntu 系统配置 ##### 1.1 root 用户配置 为了确保有足够的权限进行后续操作,首先需要对 root 用户进行配置。 1. **设置 root 密码**...
Greenplum是由Pivotal开发的一款开源分布式数据库管理系统,它基于PostgreSQL,并针对大规模数据分析进行了优化。gpload是Greenplum提供的一个用于高效数据加载的工具,支持大规模数据的批量导入,可以显著提升数据...
Kettle社区版支持包括Oracle、SQL Server、MySQL、DB2、PostgreSQL等多种传统关系型数据库,并且兼容HBase、MongoDB、Cassandra等非关系型数据库,以及Greenplum、Inforbright等分析型数据库。此外,Kettle还支持...
Greenplum基于PostgreSQL,以其速度和性价比受到许多企业的青睐,如国内四大行和五大物流公司均有使用。大数据平台则普遍采用Hadoop+Hive的组合,为大规模数据处理提供基础。 其次,ETL(提取、转换、加载)工具是...
Greenplum以其高性能和高性价比受到青睐,基于PostgreSQL并已开源。 2. 大数据平台(Big Data Platform): 主流的大数据平台通常是Hadoop与Hive的组合,提供大规模数据处理能力。各大厂商如华为、星环、新华三等...
Greenplum是基于PostgreSQL的开源解决方案,因其高性能和性价比而被广泛应用。 2. 大数据平台 大数据平台用于处理大规模数据,通常包含ETL工具,如Kettle、Talend和Pentaho。这些工具各有特点,例如Talend生成Java...
Greenplum则以其高速度和高性价比受到青睐,基于PostgreSQL并已开源。企业在选择时需要考虑数据存储方案、ETL(数据抽取、转换、加载)工具以及前端应用。 ETL工具中,kettle、Tableau和Pentaho是常见的选择。...
Teradata在银行业应用广泛,但成本较高,而Greenplum则以其高性能和性价比受到青睐,它基于PostgreSQL并已开源。 2. **大数据平台**:以Hadoop+Hive为代表的平台是大数据处理的主流选择。Hadoop提供了分布式存储和...
Greenplum则因其高性能与性价比较高而受到许多企业的青睐,并且它基于PostgreSQL,于2022年开放了源代码。 - **ETL工具**:用于数据抽取、转换和加载的过程。常用的ETL工具包括Kettle、Tableau Data Management (原...
开源的数据库管理系统,如MySQL、PostgreSQL或Greenplum,可以用于此阶段。 3. 分析与查询:使用SQL或其他查询语言对模型进行查询,获取所需数据。开源BI工具如JasperSoft Studio或Metabase提供了直观的界面,让...