sqoop 導入數據到hive分區表(外表,內表) 指定分區 指定數據庫 指定表

sqoop 導入數據到hive

1.1.導入數據到hive分區表(內表),指定分區

創建hive分區表

  • –hive-database 指定數據庫
  • –table 指定表
  • –hive-overwrite 覆蓋已有表中的數據

從mysql導入數據到hive,導入的hive的默認數據庫

bin/sqoop import --connect jdbc:mysql://180.150.180.120:3306/mcd --username crawl --password crawl123 --table xin_bang_data --hive-import --m 1

從msyql導入hive,導入到指定數據庫

bin/sqoop import --connect jdbc:mysql://180.150.180.120:3306/mcd --username crawl --password crawl123 --table xin_bang_data --hive-import --hive-overwrite --hive-database=tmp --m 1

導入數據到hive指定表

bin/sqoop import --connect --connect jdbc:mysql://180.150.180.120:3306/mcd --username crawl --password crawl123 --table xin_bang_data --hive-import --hive-database=tmp --hive-table xin_bang_data --m 1

導入數據到hive,覆蓋表中原有的數據

bin/sqoop import --connect --connect jdbc:mysql://180.150.180.120:3306/mcd --username crawl --password crawl123 --table xin_bang_data --hive-import --hive-overwrite --hive-database=tmp --hive-table xin_bang_data --m 1
CREATE TABLE tmp.`xin_bang_data` (
  `id` string,
  `weixin_name` string,
  `weixin_code` string,
  `read_num` string,
  `fans_num` string,
  `new_index` string,
  `insert_time` string
) 
partitioned by(dt string)
row format delimited fields terminated by '\t';

1.2 把數據從mysql導入數據到hive分區表(內表),指定數據導入的分區

bin/sqoop import --connect --connect jdbc:mysql://180.150.180.120:3306/mcd --username crawl --password crawl --table xin_bang_data --hive-import --hive-overwrite --hive-database=tmp --hive-table xin_bang_data --m 1

bin/sqoop import --connect --connect jdbc:mysql://180.150.180.120:3306/mcd \
--username crawl \
--password crawl123 \
--table xin_bang_data \
--fields-terminated-by "\t" \
--delete-target-dir \
--hive-import \
--m 1 \
--hive-partition-key dt \
--hive-partition-value 20181117 \
--hive-database tmp \
--hive-table xin_bang_data 

1.3.從mysql導入數據到hive外表

創建外表

CREATE external  TABLE `YDDT` (

  `ID` string,
  `YDJC_ID` string,
  `YDDT_DATA_TYPE` string,
  `YDDT_BUSSINESS_NOW` bigint,
  `YDDT_USER_NOW` bigint,
  `YDDT_COLLECT_TIME` string,
  `YDDT_CREATOR` string,
  `YDDT_DATE` string,
  `BACK` string
) PARTITIONED BY (day int) row format delimited fields terminated by '\t';

數據導入

sqoop import --connect jdbc:mysql://172.20.13.50:3306/TestBigDate --username root --password 123456  --table YDDT_2017_06_01 -m 3 --target-dir /user/hive/warehouse/dxyjpt.db/yddt/day=20170601 --fields-terminated-by '\t'

標記表的分區信息

alter table yddt add partition(day='20170601') location '/user/hive/warehouse/dxyjpt.db/yddt/day=20170601'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章