Sqoop-将MySQL数据导入到hive orc表
sqoop创建并导入数据到hive orc表
sqoop import \ --connect jdbc:mysql://localhost:3306/spider \ --username root --password 1234qwer \ --table org_ic_track --driver com.mysql.jdbc.Driver \ --create-hcatalog-table \ --hcatalog-database spider_tmp \ --hcatalog-table org_ic_track \ --hcatalog-partition-keys batch \ --hcatalog-partition-values 20190404 \ --hcatalog-storage-stanza 'stored as orc tblproperties ("orc.compress"="SNAPPY")' \ -m 1
查看表结构
CREATE TABLE `org_ic_track`( `id` int, `info_id` int, `company` varchar(250), `company_url` varchar(250), `invest_date` varchar(150), `invested_company` varchar(500), `invested_ratio` varchar(100), `update_time` string) PARTITIONED BY ( `batch` string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' LOCATION 'hdfs://hadoop1:8020/home/hive/warehouse/spider_tmp.db/org_ic_track' TBLPROPERTIES ( 'orc.compress'='SNAPPY', 'transient_lastDdlTime'='1554342988')
sqoop导入数据到已存在的hive orc表
sqoop import \ --connect jdbc:mysql://localhost:3306/spider \ --username root --password 1234qwer \ --table org_ic_track --driver com.mysql.jdbc.Driver \ --hcatalog-database spider_tmp \ --hcatalog-table org_ic_track \ --hcatalog-partition-keys batch \ --hcatalog-partition-values 20190405 \ -m 1
sqoop导入数据(query)到已存在的hive orc表
sqoop import \ --connect jdbc:mysql://localhost:3306/spider \ --username root --password 1234qwer \ --query "select * from org_ic_track where update_time between '2019-04-01 21:16:04' and '2019-04-01 21:16:05' and \$CONDITIONS" \ --driver com.mysql.jdbc.Driver \ --hcatalog-database spider_tmp \ --hcatalog-table org_ic_track \ --hcatalog-partition-keys batch \ --hcatalog-partition-values 20190406 \ -m 1
字段说明
connect JDBC连接信息 username JDBC验证用户名 password JDBC验证密码 table 要导入的源表名 driver 指定JDBC驱动 create-hcatalog-table 指定需要创建表,若不指定则默认不创建,注意若指定创建的表已存在将会报错 hcatalog-database 目标库 hcatalog-table 目标表名 hcatalog-storage-stanza 指定存储格式,该参数值会拼接到create table的命令中。默认:stored as rcfile hcatalog-partition-keys 指定分区字段,多个字段请用逗号隔开(hive-partition-key的加强版) hcatalog-partition-values 指定分区值,多分区值请用逗号隔开(hive-partition-value的加强)
注:若不指定字段类型,MySQL中的varchar数据抽取至hive中也会是varchar类型,但是varchar类型在hive中操作会出现各种问题
1.抽取时长文本、含有特殊字符的文本抽取不全
2.hive操作orc表varchar类型的字段造成乱码
解决:抽取数据时指定字段类型
-map-column-hive company=String,company_url=String
分类:
Sqoop
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示