当前位置: 首页 > news >正文

【pentaho】kettle读取Hive表不支持bigint和timstamp类型解决。

一、bigint类型

报错:

Unable to get value 'BigNumber(16)' from database resultset

显示kettle认为此应该是decimal类型(kettle中是TYPE_BIGNUMBER或称BigNumber),但实际hive数据库中是big类型。
修改kettle源码解决:

kettle中java.sql.Types到kettle类型转换的方法是org.pentaho.di.core.row.value.ValueMetaBase#getValueFromSQLType
类在data-integration中的data-integration-9.2.0.4-R\lib\kettle-core-***.jar包中。

        case java.sql.Types.BIGINT:// verify Unsigned BIGINT overflow!// TODO:fix kettle read hudi bigint: Unable to get value 'BigNumber(16)' from database resultset// force to be unsigned bigint type!!!
/*          if ( signed ) {valtype = ValueMetaInterface.TYPE_INTEGER;precision = 0; // Max 9.223.372.036.854.775.807length = 15;} else {valtype = ValueMetaInterface.TYPE_BIGNUMBER;precision = 0; // Max 18.446.744.073.709.551.615length = 16;}*/// add codevaltype = ValueMetaInterface.TYPE_INTEGER;precision = 0; // Max 9.223.372.036.854.775.807length = 15;break;

本质就是kettle认为bigint分两种 signedunsigned 的 就是 有正负的和 仅正的。
当是unsigned时候kettle任务jdbc应提供为decimal类型(java 中是bigdecimal类型)的数据。这种仅仅是很难遇到的临界状态场景,其实可以忽略,所以把此判断去除直接让hive的bigint 都转为kettle的TYPE_INTEGER 就可以。

可能需要编译kettle源码:
仅处理bigint问题不需要pentaho-hadoop-shims项目的编译!!!这里仅作pentaho-hadoop-shims的记录而已。

# kettle
git clone -b 9.2.0.0-R git@github.com:pentaho/pentaho-kettle.git
# hadoop-plugin
git clone -b 9.2.0.0-R git@github.com:pentaho/pentaho-hadoop-shims.git

登录github直接在pentaho-kettlepentaho-hadoop-shims搜索选择,自己已经在用的版本或者-R release版本即可。

在这里插入图片描述
根据自己的kettle主版本选择hadoop-plugin版本。
在这里插入图片描述

项目根目录的pom.xml需要配置仓库地址:

    <repositories><repository><id>pentaho</id><name>pentaho</name><url>https://repo.orl.eng.hitachivantara.com/artifactory/pnt-mvn/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository><repository><id>cloudera</id><name>cloudera</name><url>https://repository.cloudera.com/artifactory/cloudera-repos/</url></repository></repositories><pluginRepositories><pluginRepository><id>pentaho-plugin</id><name>pentaho-plugin</name><url>https://repo.orl.eng.hitachivantara.com/artifactory/pnt-mvn/</url></pluginRepository></pluginRepositories>

如果依赖都能下载到,那么直接mvn clean install "-DskipTests"即可。我编译比较顺利没什么坑。

二、timestamp类型

修改数据库连接的高级配置即可。
在这里插入图片描述

http://www.lryc.cn/news/265077.html

相关文章:

  • centos 8 部署nextCloud
  • vue3 element-plus 输入框 clearable属性 聚焦时宽度会变化
  • 【科技前沿】数字孪生技术改革智慧供热,换热站3D可视化引领未来
  • Vue.js 教程
  • 听GPT 讲Rust源代码--src/tools(21)
  • OpenCV | 告别人工目检:深度学习技术引领工业品缺陷检测新时代
  • Inkscape SVG 编辑器 导入 Gazebo
  • 基于比较的排序算法总结(java实现版)
  • 集群与分布式的概念及区别
  • 基于ssm+vue的在线听书网站论文
  • hive命令启动出现classnotfound
  • 拥抱数字化转型,共赢数字时代 | 创维汽车商学院走进竹云
  • 蓝桥杯:日期问题
  • vue 简单实现购物车:商品基础信息最终的 html 文件 + 商品计数器的组件处理,实现了购物车;
  • 交叉熵损失(Cross Entropy Loss)学习笔记
  • python flask alchemy在判断None值时与flake8格式检测冲突
  • Text Intelligence - TextIn.com AI时代下的智能文档识别、处理、转换
  • 55.0/CSS 的应用(详细版)
  • 磁盘类型选择对阿里云RDS MySQL的性能影响
  • 数据结构---算法的时间复杂度
  • 后缀为.vue是什么文件
  • 前端微信小程序AES加密解密踩坑
  • 代码随想录算法训练营第五十八天| 739 每日温度 496 下一个更大元素 |
  • 配置自定义RedisTemplate 解决redis序列化java8 LocalDateTime
  • 华为---登录USG6000V防火墙---console、web、telnet、ssh方式登录
  • css图片属性,图片自适应
  • 【Python百宝箱】数据科学的黄金三角:数据挖掘和聚类
  • 【数据结构和算法】最大连续1的个数 III
  • AngularJS
  • 初级数据结构(七)——二叉树