导入数据到hive表中,$CONDITIONS的作用(附案例)

$CONDITIONS的作用

  • 如果你想通过并行方式导入结果,每个map task都会执行sql的副本,结果会根据sqoop 推测的边界进行分区。query必须包含$CONDITIONS,这样每个sqoop程序都会被替换成一个独立的条件。同时你必须指定 --split -by 分区。
  • 当执行MapReduce 时首先会执行多个 Map,这些 Map 会在数据库中搜索数据,即每个Map 都 会获取一部分数据,此时要将数据库中的数据导入到HDFS,如果使用CONDITIONS参数,就能保证数据库中数据的顺序与 HDFS 中导入数据的顺序是一致的,实际上CONDITIONS就是起到了参数传递的作用。

案例1:使用sqoop从mysql中导入2021-11-11的增量数据到ods层中的hive表

(前提:ods层中hive表结构已根据"starts_time"进行分区了)

sqoop import \
--connect "jdbc:mysql://node151:3306/nev?useUnicode=true&characterEncoding=utf-8" \
--username root \
--password Heima@123456 \
--query "select
id,
create_date_time,
session_id,
sid,
create_time,
seo_source,
'2021-11-11' as starts_time
from nev.web_chat_ems_2021_11
where create_time between '2021-11-11 00:00:00' and '2021-11-11 23:59:59' and \
$CONDITIONS" \
--fields-terminated-by '\t' \
--hcatalog-database itcast_ods \
--hcatalog-table web_chat_ems \
-m 1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奇迹虎虎

客官,赏个银子吧,别下次一定了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值