关于streamsets的相关问题总结

最近发现了一个很好用的工具streamsets工具。我将oracle数据库当中的数据增量的导入到hive当中。导入是按照唯一的主键ID将数据导入进来。

出现的问题如下:

(1)数据精度的问题:

因为表是提前创建好的,我将id字段定义为int类型,但是在oracle数据库当中的数据类型是number类型。然后将number类型的数据转换为decimal类型的数据。decimal默认的精度为(1,38)位。所以这里的解决办法就是

在oracle导入数据和hive的元数据之间加上一个数据类型转化的操作。将原来的number类型转化为integer类型。这样在hive表当中定义的数据类型就不会出现数据类型转化异常的问题

(2)hive当中的表的存储格式不一致:

com.streamsets.pipeline.api.base.OnRecordErrorException: HIVE_32 - Table test_to_hive is created using Storage Format Type org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, but Avro requested instead at com.streamsets.pipeline.stage.processor.hive.HiveMetadataProcessor.process(HiveMetadataProcessor.java:585) at com.streamsets.pipeline.api.base.RecordProcessor.process(RecordProcessor.java:52) at com.streamsets.pipeline.api.base.configurablestage.DProcessor.process(DProcessor.java:35) at com.streamsets.datacollector.runner.StageRuntime.lambda$execute$2(StageRuntime.java:286) at com.streamsets.datacollector.runner.StageRuntime.execute(StageRuntime.java:235) at com.streamsets.datacollector.runner.StageRuntime.execute(StageRuntime.java:298) at com.streamsets.datacollector.runner.StagePipe.process(StagePipe.java:244) at com.streamsets.datacollector.execution.runner.common.ProductionPipelineRunner.processPipe(ProductionPipelineRunner.java:824) at com.streamsets.datacollector.execution.runner.common.ProductionPipelineRunner.lambda$executeRunner$3(ProductionPipelineRunner.java:869) at com.streamsets.datacollector.runner.PipeRunner.executeBatch(PipeRunner.java:136) at

从这报错可以看出hive表当中的数据类型呀定义为AVRO的数据类型。

(3)在增量导入数据的时候出现,形成的文件一直是tmp开头的文件。所以在hive的客户端查询不到数据效果如下:

突然发现只有每次吧pipline关闭掉才能读取hive上面的文件。最后在hive的设置当中找到相关的选项:

这两个选项的目的就是为了限制输出的文件的大小,和控制多长时间输出一个文件。我们会发现,当我们设置了时间之后,优先按照时间对数据进行输出形成的文件不在是tmp类型的文件。

还有就是文件大小,如果我们设置的时间够长,在一定的时间内形成了10M这样的文件就输出,不在考虑时间的限制。

总结:这个其实和flume的原理是相同的对数据进行回滚操作。然后按照时间或者文件大小的方式对形成的数据文件进行大小的限制。

原文地址:https://www.cnblogs.com/gxgd/p/10342235.html

时间: 2024-11-09 10:23:54

关于streamsets的相关问题总结的相关文章

【Windows10 IoT开发系列】PowerShell的相关配置

原文:[Windows10 IoT开发系列]PowerShell的相关配置 可使用 Windows PowerShell 远程配置和管理任何 Windows 10 IoT 核心版设备.PowerShell 是基于任务的命令行 Shell 和脚本语言,专为进行系统管理而设计. 1.​启动 PowerShell (PS) 会话 注:若要使用装有Windows10 IoT Core设备启动PS会话,首先需要在主机电脑与设备之间创建信任关系. ​启动 Windows IoT 核心版设备后,与该设备相连的

微信小程序--图片相关问题合辑

图片上传相关文章 微信小程序多张图片上传功能 微信小程序开发(二)图片上传 微信小程序上传一或多张图片 微信小程序实现选择图片九宫格带预览 ETL:微信小程序之图片上传 微信小程序wx.previewImage预览图片 微信小程序之预览图片 小程序开发:上传图片到腾讯云 .NET开发微信小程序-上传图片到服务器 微信小程序本地图片处理--按屏幕尺寸插入图片 [微信小程序]上传图片到阿里云OSS Python Flask小程序文件(图片)上传技巧 小程序图片上传阿里OSS使用方法 微信小程序问题汇

Android studio界面相关设置

Android studio界面相关设置 原文出自 http://www.cnblogs.com/justinzhang/p/4274839.html 用惯了emacs的操作方式,每当使用一款新的编辑器的时候,第一个想到的就是这个工具有没有emacs的快捷键,Android studio也是一样的. 1. Android studio设置emacs的方式如下,点击File->Settings 选择其中的keymap,在keymap中选择emacs,这样就成功的设置好了emacs的操作模式: 2.

25个Linux相关的网站【转】

转自:http://www.cnblogs.com/Lindaman/p/4552805.html 下面是25个最具有影响力,也是最重要的Linux网站,这些网站提供了Linux的分发包,软件,文件,新闻,以及其它所有的关于Linux的东西.关于Linux的分发包历史,可以看看本站的这篇文章<Linux Distribution Timeline> 1. Linux.org 这个站点主要提供Linux相关的新闻.文档.教程,培训,以及其它一切和Linux相关的东西.这是你需要了解Linux开源

Halcon学习之二:摄像头获取图像和相关参数

1.close_all_framegrabbers ( : : : ) 关闭所有图像采集设备. 2.close_framegrabber ( : : AcqHandle : ) 关闭Handle为AcqHandle的图像采集设备. 3.open_framegrabber ( : : Name, HorizontalResolution, VerticalResolution, ImageWidth, ImageHeight, StartRow, StartColumn, Field, BitsP

第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装

第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装 当前环境python3.5 ,windows10系统 Linux系统安装 在线安装,会自动安装scrapy模块以及相关依赖模块 pip install Scrapy 手动源码安装,比较麻烦要自己手动安装scrapy模块以及依赖模块 安装以下模块 1.lxml-3.8.0.tar.gz (XML处理库) 2.Twisted-17.5.0.tar.bz2 (用Python编写的异步网络框架) 3.Scrapy-1.4.0.tar.gz

记5.28大促压测的性能优化&mdash;线程池相关问题

目录: 1.环境介绍 2.症状 3.诊断 4.结论 5.解决 6.对比java实现 废话就不多说了,本文分享下博主在5.28大促压测期间解决的一个性能问题,觉得这个还是比较有意思的,值得总结拿出来分享下. 博主所服务的部门是作为公共业务平台,公共业务平台支持上层所有业务系统(2C.UGC.直播等).平台中核心之一的就是订单域相关服务,下单服务.查单服务.支付回调服务,当然结算页暂时还是我们负责,结算页负责承上启下进行下单.结算.跳支付中心.每次业务方进行大促期间平台都要进行一次常规压测,做到心里

ACL最大权限及相关命令

先查看目录vampire的acl权限 1 [[email protected] home]# getfacl vampire 2 # file: vampire/ 3 # owner: vampire 4 # group: vampire 5 user::rwx 6 user:iaknehc:r-x 7 group::--- 8 mask::r-x 9 other::--- mask是用来指定最大有效权限的,如果给用户赋予了ACL权限,是需要和mask的权限"相与"才能得到用户的真正权

Python 正则表达式相关问题

这几天学习python,写正则表达式相关代码如下: import re print(re.search(r'(?<=<(\w+)>).*(?=<\/\1>)',"<b>ewuiiriur</b>sdksfkj").span()) 报错如下: raise error("look-behind requires fixed-width pattern")sre_constants.error: look-behind