业务场景:
工作中经常需要将关系型数据库(Oracle、MySQL)中的表导入到hive中进行大数据运算,故编写快捷的脚本实现,脚本名为:RDBtoHive.sh。
实际案例:
将Oracle中表tbl_o_test 数据导入到hive 的表 tbl_h_test 中,这里表 tbl_h_test 的结构及字段顺序同表tbl_o_test 一致,注意字段类型可以不一致,但是字段顺序需一致,以便数据准确导入。
脚本内容如下:
#!/bin/sh
#mapred queue name
queueName=queue01
#Hive target table
hive_table_name=tbl_h_test
#RDB config
rdb_connection=jdbc:mysql://IP:端口/dbname
rdb_username=用户名
rdb_password=名字
#RDB table and columns
rdb_table=tbl_o_test
rdb_table_columns=ID,NAME,AGE
#RDB config example
#oracle connection config
#rdb_connection=jdbc:oracle:thin:@IP:端口:dbname
# mysql connection config
#rdb_connection=jdbc:mysql://IP:端口/dbname
#sqoop shell
sqoop import -D mapred.job.queue.name=${queueName} \
--connect ${rdb_connection} \
--username ${rdb_username} \
--password ${rdb_password} \
--table ${rdb_table} \
--columns ${rdb_table_columns} \
-m 1 \
--fields-terminated-by '\001' \
--lines-terminated-by '\n' \
--hive-drop-import-delims \
--null-string '\\N' \
--null-non-string '\\N' \
--hive-import \
--hive-overwrite \
--hive-table ${hive_table_name};