Sqoop处理Clob与Blob字段

[Author]: kwu Sqoop处理Clob与Blob字段,在Oracle中Clob为大文本,Blob存储二进制文件。遇到这类字段导入hive或者hdfs需要特殊处理。
摘要由CSDN通过智能技术生成

[Author]: kwu 

Sqoop处理Clob与Blob字段,在Oracle中Clob为大文本,Blob存储二进制文件。遇到这类字段导入hive或者hdfs需要特殊处理。

1、oracle中的测试表

[sql]  view plain copy
  1. CREATE TABLE  
  2.     T_LOB  
  3.     (  
  4.         A INTEGER,  
  5.         B CLOB,  
  6.         C BLOB  
  7.     )  

测试数据

[sql]  view plain copy
  1. insert into T_LOB (A, B, C) values (1, 'clob测试',to_blob('3456'));  


2、sqoop脚本

[plain]  view plain copy
  1. import  
  2. --append  
  3. --connect  
  4. jdbc:oracle:thin:@localhost:1521/orcl  
  5. --username  
  6. wuke  
  7. --password  
  8. Abcd1234  
  9. --table  
  10. BDC_TEST.T_LOB  
  11. --columns  
  12. "A,B,C"  
  13. --target-dir   
  14. /tmp/t_lob  
  15.   
  16. -m  
  17. 1  
执行脚本

[plain]  view plain copy
  1. sqoop --options-file ./importHdfs.opt  



3、查看生成的HDFS文件


可以看出,clob的字段是导入到hdfs上是正常显示文本,blob是二进制文件导出到hdfs上显示为16进制

16进制转换为string可采用如下方法,实际上通过移位操作来实现:

[java]  view plain copy
  1. package com.ganymede.test;  
  2.   
  3. /** 
  4.  * 十六进制的转换操作 
  5.  * @author Ganymede 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值