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'

猜你喜欢

转载自blog.csdn.net/weixin_41734687/article/details/84203432