最近甲方项目希望建立大数据平台,需要将保存在Oracle中的表和记录全部导入到大数据平台中。原计划是将表导入到HBase中,作为Hive外部表,但甲方对如何使用还没有明确想法,HBase行键不好设计,但甲方又急于将数据导入试用。于是决定先将数据导入到Hive中,方便他们做统计分析试验。调研一番后,决定采用Sqoop。现将使用过程总结如下。
一、软件版本
1、Oracle
Linux Oracle 11g r2 x86_64
2、Hive
Hive 1.1.0+cdh5.4.3+151
3、Sqoop
Sqoop 1.4.5+cdh5.4.3+100
注:这里使用的是Cloudera管理平台,Sqoop的安装不再介绍,感兴趣的可以查看下网络资料。
二、导入表描述
Oracle中的表主要来自三个库,总共有大概600多个。其中,一个库中有400多张表,表有主键外键,表中记录较少,不超过万条;另外两张表,没有主键或主键仅为递增id,表中记录较多,最多的可能有几千万条。表中字段的类型有Number、Date、Float、Integer、Varchar、Char等,没有大字段类型。
三、导入过程
由于待导入表数量较多,写sqoop命令以及等待执行的时间太长。于是就写代码创建了一个简单的shell脚本,将需要执行导入的sqoop命令全写入shell文件。生成导入脚本主要有两个步骤: