大数据全系列 教程
1869个小节阅读:466.8k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
使用Sqoop每天增量抽取ycak.user_location
用户位置记录日增量表数据到ODS层TO_YCAK_USR_LOC_D
表中,脚本ods_mysqltohive_to_ycak_usr_loc_d.sh
xxxxxxxxxx
[root@node3 ~]# cd music/sqoop/
[root@node3 sqoop]# vim ods_mysqltohive_to_ycak_usr_loc_d.sh
内容如下:
xxxxxxxxxx
#!/bin/bash
currentDate=`date -d today +"%Y%m%d"`
if [ x"$1" = x ]; then
echo "====没有导入数据的日期,输入日期===="
exit
else
echo "====使用导入数据的日期 ===="
currentDate=$1
fi
echo "日期为 : $currentDate"
#查询hive ODS层表 TO_YCAK_USR_LOC_D 中目前存在的最大的ID
maxid=`hive -e "select max(id) from baizhan_music.TO_YCAK_USR_LOC_D"`
echo "Hive ODS层表 TO_YCAK_USR_LOC_D 最大的ID是$maxid"
if [ x"$maxid" = xNULL ]; then
echo "maxid is NULL 重置为0"
maxid=0
fi
#sqoop 导入数据:
sqoop import \
--connect jdbc:mysql://node1:3306/ycak?dontTrackOpenResources=true\&defaultFetchSize=10000\&useCursorFetch=true\&useUnicode=yes\&characterEncoding=utf8 \
--username root \
--password 123456 \
--table user_location \
--target-dir /user/hive_remote/warehouse/data/user/TO_YCAK_USR_LOC_D/data_dt=${currentDate} \
--num-mappers 1 \
--fields-terminated-by '\t' \
--incremental append \
--check-column id \
--last-value $maxid
#更新Hive 分区
hive -e "alter table baizhan_music.TO_YCAK_USR_LOC_D add partition(data_dt=${currentDate});"
node3执行脚步:
xxxxxxxxxx
[root@node3 sqoop]# sh ods_mysqltohive_to_ycak_usr_loc_d.sh 20301004
node4的hive客户端查询:
xxxxxxxxxx
hive> select count(*) from TO_YCAK_USR_LOC_D;
OK
_c0
0
Time taken: 13.148 seconds, Fetched: 1 row(s)
node3上执行脚步:
xxxxxxxxxx
[root@node3 sqoop]# sh ods_mysqltohive_to_ycak_usr_loc_d.sh 20301005
node4的hive客户端查询:
xxxxxxxxxx
hive> select count(*) from TO_YCAK_USR_LOC_D;
OK
_c0
1662
Time taken: 16.927 seconds, Fetched: 1 row(s)