Sqoop的import和export工具的使用几种案例

Sqoop的import工具抽数的几种情况:
1. Hive表无分区,全量从Oracle中抽取数据到Hive的表中


sqoop import -D mapred.job.queue.name=root.myqueue    \
--connect jdbc:oracle:thin:@192.168.1.128:1521:mydatabase   \
--username jsz                                       \
--password 123456                                     \
--table  mys.test               \
--columns ID,NAME,AGE,SALARY,DATA_DATE \
-m 1                                                             \
--hive-table default.test  \
--create-hive-table \
--hive-drop-import-delims                                        \
--verbose                                                           \
--fetch-size 5000                                                \
--target-dir  /apps/testdata/default/test \
--delete-target-dir \
--hive-overwrite         \
--null-string '\\N'      \
--null-non-string '\\N'  \
--hive-import;




2. Hive表有分区,增量从Oracle中抽取数据到Hive表中:
sqoop import -D mapred.job.queue.name=root.myqueue   \
--connect jdbc:oracle:thin:@192.168.1.128:1521:mydatabase   \
--username jsz                                       \
--password 123456                                     \
--table  mys.test              \
--columns ID,NAME,AGE,SALARY,LCD \
-m 1                                          \
--hive-partition-key op_day                  \
--hive-partition-value 20160525               \
--where "lcd >= trunc(TO_DATE('20160525','YYYY-MM-DD'),'dd') and lcd < trunc(TO_DATE('20160526','YYYY-MM-DD'),'dd')"  \
--hive-table default.test_partition  \
--create-hive-table \
--hive-drop-import-delims                                        \
--verbose                                                           \
--fetch-size 5000                                                \
--target-dir  /apps/testdata/default/test_partition \
--delete-target-dir \
--hive-overwrite         \
--null-string '\\N'      \
--null-non-string '\\N'  \
--hive-import;




3.使用select语句:
sqoop import                            \
-D mapred.job.queue.name=root.myqueue      \
-D oracle.sessionTimeZone=America/Los_Angeles  \
--connect jdbc:oracle:thin:@192.168.1.128:1521:mydatabase    \
--username jsz   \
--password 123456  \
--query "select ID,NAME,AGE,SALARY,DATA_DATE from mys.test WHERE ID = '10086' and \$CONDITIONS" \
--verbose  \
--fetch-size 5000       \
--hive-table default.test  \
--target-dir  /apps/testdata/default/test \
--delete-target-dir \
--fields-terminated-by '\001'      \
--lines-terminated-by '\n'      \
-m 1           \
--hive-import           \
--hive-overwrite           \
--null-string   '\\N'            \
--null-non-string  '\\N'           \
--hive-drop-import-delims 

Sqoop的export工具导数的情况:

将Hive的数据导入Oracle,整个过程分为三步:

1) 删除Oracle表的历史数据
sqoop eval  -D mapred.job.queue.name=root.myqueue    \
--connect jdbc:oracle:thin:@192.168.1.128:1521:mydatabase  \
--username jsz    \
--password 123456  \
--verbose                       \
--e "delete from mys.test"


2) Hive导出到HDFS指定路径
hive -e "use default;set mapred.job.queue.name=root.myqueue;set hive.insert.into.multilevel.dirs=true;insert overwrite directory '/apps/testdata/default/test' select id,name,age,salary,data_date from default.test;"


3) 将HDFS的数据导入到Oracle中
sqoop export    \
-D mapred.job.queue.name=root.myqueue     \
-D mapred.task.timeout=0     \
--connect jdbc:oracle:thin:@192.168.1.128:1521:mydatabase     \
--username jsz     \
--password 123456    \
--table mys.test     \
--columns ID,NAME,AGE,SALARY,DATA_DATE     \
--export-dir /apps/testdata/default/test     \
--verbose     \
--input-null-string '\\N'     \
--input-null-non-string '\\N'  \
--input-fields-terminated-by '\001'     \
--input-lines-terminated-by '\n'     \
-m 1

你可能感兴趣的:(Sqoop的import和export工具的使用几种案例)