sqoop动态分区导入mysql,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'

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值