sqoop hive数据导出分区表到关系型数据库
业务场景,某天的结果表数据做报表端的数据展示,hive为分区表,报表数据结果为oracle做结果表输出,发现全量同步可以完成,增量同步不生效,排查sqoop参数发现问题,具体情况举例说明。
(业务库为其他的mysql等可换jdbc连接串)
结果表: 各省截止6点的完成订单数量(每天)
hive表:app.order_info_province_total_di
字段:province,sum_order 分区字段:pt
oracle结果表:同名不同不同库
通过sqoop从hive抽取到oracle
sqoop export \
-Dhadoop.security.credential.provider.path=jecks://hdfs/user/hive/password/app.pwd.jecks
--connect jdbc:oracle:thin:@//192.168.19.188:1521/orcl \
--username order \
--password-alias app.pwd.alias \
--table ORDER_INFO_PROVINCE_TOTAL_DI \
--columns PROVINCE,SUM_ORDER,PT
--hcatalog-database app \
--hcatalog-table order_info_province_total_di \
--hive-partition-key pt \
--hive-partition-value '2023-12-12' \
-m 1;
问题:
1、 hive源表应该为hcatalog可用格式(ORC或者PARQUET),textfile格式不支持。
2、hive-partition-value 分区字段这块要加一下单引号,不要写成 pt=‘2023-12-12’
其余hadoop秘钥生成可以参考我另一篇文章,链接放下面了。
链接: sqoop生成秘钥串