采集数据库数据
原创大约 1 分钟
历史关注数据使用shell
脚本导出MySQL中的数据,然后再存储到HDFS。
而博主或主播的等级数据是需要每天导一次的,也可以用shell
脚本导入。
采集历史数据
从MySQL中导出历史关注数据。
> mkdir /home/work/recommend
> cd /home/work/recommend
> vi export_follow.sh
#!/bin/bash
# 导出所有历史表中的数据,此脚本只需执行一次
# 使用for循环动态生成表名
for i in 0 1 2 3 4 5 6 7 8 9
do
echo follower_0${i}
# mysql -uroot -p123456 -h 172.16.185.176 -e "select * from t_follower_0${i}" >> /var/logs/follower_0${i}.log
done
采集主播等级
从MySQL中导出主播等级数据。
> mkdir /home/work/recommend
> cd /home/work/recommend
> vi export_user_level.sh
#!/bin/bash
# 此脚本每天执行一次,可以添加到crontab或Azkaban中方执行
if [ "d$1" == "d" ]
then
yesterday=`date --date="1 days ago" +%Y-%m-%d`
else
yesterday=$1
fi
mysql -uroot -p123456 -h 172.16.185.176 -e "select * from recommend.t_user_level where updatetime >='${yesterday} 00:00:00' and updatetime <= '${yesterday} 23:59:59'" >> /var/logs/user_level_${yesterday}.log
# 将数据上传到hdfs
# 先创建日期目录
hdfs dfs -mkdir -p /data/user_level/${yesterday//-/}
# 上传
hdfs dfs -put /var/logs/user_level_${yesterday}.log /data/user_level/${yesterday//-/}
感谢支持
更多内容,请移步《超级个体》。