sqoop oracle2hive 通过表名表抽取 和 通过sql抽取 列切分异常
2018-03-09 14:18
489 查看
需求:之前数据从生产系统抽取到hive数据仓库都是全表抽取,然后在仓库接口层 或者在ods前置机上处理。因为项目需要 ,部分全量表是直接按表名抽取 ,部分增量 通过sql 添加where 条件来筛选数据。环境:sqoop 版本Sqoop 1.4.6-cdh5.12.1 hadoop使用cdh版本现象:sqoop 使用SQL抽取 sqoop import --connect jdbc:oracle:thin:@IP:1521:sid --username 用户名 --password 密码 --hive-overwrite --hive-database atg --hive-table dwi_dcspp_shipitem_rel_m --hive-import --delete-target-dir --null-string '' --null-non-string '' --fields-terminated-by \001 --hive-drop-import-delims --target-dir /user/hive/warehouse/atg.db/dwi_dcspp_shipitem_rel_m/m=2017-05 --query "from UATCORE.DCSPP_SHIPITEM_REL SIR where \\\$CONDITIONS and SIR.COMMERCE_ITEM_ID in (select OI.COMMERCE_ITEMS from UATCORE.DCSPP_ORDER_ITEM OI where \\\$CONDITIONS and OI.Order_Id in (select DCSO.Order_Id from UATCORE.DCSPP_ORDER DCSO where \\\$CONDITIONS and TO_CHAR(DCSO.LAST_MODIFIED_DATE, 'YYYY-MM') = "$thisMonth" ))"
数据是导入过来了 ,但是切分异常 ,都在第一列里。
查看 hive 仓库导入的文件 ,写到本地 用vim 查看,发现分隔符有乱码,因为是指定的分隔符,以前也没有出现问题。所以不确定 是oracle所在的系统问题 还是sqoop转化的java文件有问题。或者是hive所在的linux系统有问题。
时间紧急,我用参数排除法 最终发现删除--fields-terminated-by \001 用默认的就正常了。
时间紧没有去探查sqoop生成的java文件 应该问题在这里可以找到答案。
--hive-import 是使用默认分割符 可能是,也可能是\001 最好指定分隔符。不用此参数。不用理会hive日志警告。
数据是导入过来了 ,但是切分异常 ,都在第一列里。
查看 hive 仓库导入的文件 ,写到本地 用vim 查看,发现分隔符有乱码,因为是指定的分隔符,以前也没有出现问题。所以不确定 是oracle所在的系统问题 还是sqoop转化的java文件有问题。或者是hive所在的linux系统有问题。
时间紧急,我用参数排除法 最终发现删除--fields-terminated-by \001 用默认的就正常了。
时间紧没有去探查sqoop生成的java文件 应该问题在这里可以找到答案。
--hive-import 是使用默认分割符 可能是,也可能是\001 最好指定分隔符。不用此参数。不用理会hive日志警告。
相关文章推荐
- 通过sqoop导入Oracle数据到Hive时异常.IOException: Cannot run program "hive": error=2, No such file or directory
- Sqoop将Oracle数据导入Hive时出现异常 running import job: java.io.IOException: Hive exited with status 1
- oracle共享服务器创建成功后,通过jdbc连接数被限制,报错:java.sql.SQLException: Io 异常: End of TNS data channel解决方法
- oracle共享服务器创建成功后,通过jdbc连接数被限制,报错:java.sql.SQLException: Io 异常: End of TNS data channel解决方法
- 通过sqoop增量传送oracle数据到hive
- 在Oracle中不通过存储过程一次执行多条SQL语句Oracle PL/SQL
- 通过Oracle补充日志,找到锁阻塞源头的SQL
- oracle-ora 各种sql异常描述
- Oracle随机抽取数据sql
- 第69课:SparkSQL通过Hive数据源实战学习笔记
- ORACLE PL/SQL编程之五: 异常错误处理
- 【数据库学习笔记】Oracle_03_PL/SQL深入:游标编程,自定义异常
- Oracle通过sql语句创建表空间和用户
- 使用sqoop连接oracle 出的异常, Imported Failed: Attempted to generate class with no columns? 附解决方案
- 异常、错误-oracle 11g PL/SQL Programming学习三-by小雨
- [推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼、百战不殆)
- Oracle数据库案例整理-执行Oracle脚本失败或异常-使用SQL语句插入中文后数据库中显示乱码
- 通过Sqoop实现Mysql / Oracle 与HDFS / Hbase互导数据
- Oracle 11g Release 1 (11.1) PL/SQL_多维 Collection 类型和其异常
- java通过JDBC访问Oracle的2个异常