oracle stream read error,streamsets2.6.0导数据常见问题总结

news/2024/7/3 17:32:23

Streamsets2.6.0 导数据常见问题总结

1)、执行任务时有表空间的问题

A)、问题描述

Retries exhausted, giving up after as per stage configuration. First error: java.sql.SQLException: ORA-01652: unable to extend temp segment by 128 in tablespace TEMP

0818b9ca8b590ca3270a3433284dd417.png

B)、问题解答方法

这个是由于在导数据时遇到了大表对数据进行了排序,导致oracle服务器端不能对表进行排序,大的表建议更换为单表消费,直接写SQL的形式。

2)、单表消费oracle数据库表中有Binary_FLOAT字段

A)、问题描述

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

B)、问题解答方法

出现这种情况使用streamsets2.6.0的JDBC单表消费在SQL Query写SQL,使用oracle的to_number来解决

3)、读取oracle数据到hive出现null值

A)、问题描述

Orace数据库中表中有ID字段,并且该字段有数据,把数据导入到Hive中出现NULL值

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

B)、问题解决方法

解决方式使用JDBC单表消费,写SQL的形式,使用oracle上的to_char函数来进行转换

4)、读取oracle速度慢的问题

A)、问题描述

从oracle数据库中把T_PRESSUREDATA表中的数据导入到Hive中时,目前这个表有46705131行数据,有主键,没有联合主键,使用全量的方式导数据,出现速度在39/S

0818b9ca8b590ca3270a3433284dd417.png

B)、问题解决方法

查看表中的字段中有一个F_YSKYLZ字段是CLOB类型,其中该字段的长度如下所示:

00--500长度的有:13812236

500--1000长度的有:6747902

8000--20000长度的有:763710

1000-3000长度的有:16247792

3000-8000长度的有:8668237

导数据刚开始的速度块是由于数据表该字段没有数据,大概在117000行数据时开始有数据,并且该字段的长度是随机的

select v.tab_count,count(v.tab_count) from (select (case when tan <='500' then '50' when tan >='500' and tan <='1000' then '1000' when tan >='1000' and tan <='3000' then '3000' when tan >='3000' and tan <='8000' then '8000' when tan >='8000' and tan <='20000' then '20000' when tan >='20000' and tan <='40000' then '20000' else '60000' end) as tab_count from (select length(F_YSKYLZ) as tan from T_PRESSUREDATA where F_YSKYLZ is not null)a)v group by v.tab_count;

如果把该字段去掉速度会提升很多

0818b9ca8b590ca3270a3433284dd417.png

5)、导数据出现字段长度不够的情况

A)、问题描述

HIVE_METADATA_07-Invalld value 0 for precision  in filed ID,mininum 1,maxinum 38

0818b9ca8b590ca3270a3433284dd417.png

B)、问题解决方法

出现这种情况使用JDBC单表消费在SQL Query写SQL,使用oracle的to_number函数来解决 或者使用Field Tyle Converter组件对该字段进行转换为STRING

6)、oracle以date类型的字段不能进行实时抓取

A)、问题描述

oracle以date类型的字段作为主键不能进行实时抓取,如果时number字段就可以,原因是date的数据类型精确到日,在这天内可能有多个数据,可能丢数据,不过可以考虑联合主键的方式来搞,不过这种方式也有丢数据的可能性

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

B)、问题解决方法

这种方法也有可能丢数据,详细请查看官网说明


http://www.niftyadmin.cn/n/2497461.html

相关文章

c++builder和qt哪个好_凯迪仕指纹锁推荐,凯迪仕和德施曼哪个好?凯迪仕、德施曼指纹锁热销型号有哪些?...

导读&#xff1a;现在的智能门锁越来越智能了&#xff0c;功能也越来越强大&#xff0c;相比普通门锁来说&#xff0c;指纹锁更安全也更方面&#xff0c;也有越来越多的人开始选择用指纹锁代替传统钥匙&#xff0c;而对于现在市面上的指纹锁也是五花八门&#xff0c;多不胜数&a…

串行通讯协议--起止式异步通讯协议(UART)

起止式异步通讯协议: 特点与格式&#xff1a; 起止式异步协议的特点是一个字符一个字符传输&#xff0c;并且传送一个字符总是以起始位开始&#xff0c;以停止位结束&#xff0c;字符之间没有固定的时间间隔要求。其格式如图3 所示。每一个字符的前面都有一位起始位&#xff08…

Ruby(2): 基本语法上

表达式和变量&#xff1a; 这两点和其他主流的编程语言基本没有差别&#xff0c;这里直接跳过。 需要注意的是 ruby中 xx1 可以写成 x1 但是不支持 x , x-- 等一元运算符 比较运算符和表达式&#xff1a; 在ruby中可以直接在表达式中混合使用比较运算符&#xff0c;来实现如果…

Linux Redis安装部署

安装 Redis&#xff1a;wget http://download.redis.io/releases/redis-2.8.24.tar.gztar xf redis-2.8.24.tar.gzln -s redis-2.6.14 redis #建立一个链接cd redismake PREFIX/usr/local/redis install #安装到指定目录中注意上面的最后一行&#xff0c;我们通过PREFIX指定了安…

VC版DoEvents

VB和C#下有一个DoEvents方法&#xff0c;可以让程序在执行操作的同时仍可以处理其他事件。由于近期在做一个数据格式转换的项目&#xff0c;需要进行大批量的数据处理&#xff0c;希望能在进行数据读写过程中&#xff0c;程序还能接收其他操作&#xff0c;防止假死现象。百度了…

oracle rac standby,Oracle10g RAC配置standby

准备工作:1.启用归档在主库上的每个节点都要设置&#xff0c;注&#xff1a;在一台机器设置归档时其他的节点实例都要关闭sqlplus /nologSQL>conn /as sysdbaSQL > alter system set log_archive_dest_1 "location"SQL > alter system set log_archive_for…

go 修改url_Go语言从入门到精通-05| 最简单的Web服务器

由于HTTP协议本身就是基于TCP协议的&#xff0c;因此&#xff0c;在上一篇TCP通信的文章的基础上&#xff0c;我们对服务端进行改造&#xff0c;可以很容易的将其改造成一个Web服务器。当然&#xff0c;这个Web服务器是非常简单的&#xff0c;简单到不能再简单。本文Web服务的功…

怎么查看linux当前用户名,技术|6 个简单的方式来查看 Linux 中的用户名和其它信息...

这是一个非常基础的话题&#xff0c;在 Linux 中&#xff0c;每个人都知道如何使用 id 来查找用户信息。一些用户也从 /etc/passwd 文件中过滤用户信息。我们还使用其它命令来获取用户信息。你可能会问&#xff0c;为什么要讨论这个基础话题呢&#xff1f;即使我也这么认为&…