欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Hive循环插数脚本

时间:2023-07-13
说明

当前有一个日期分区表,分区字段为 ds ,我们需要通过循环每天日期实现把一段日期的数据插入另外一张表中,建表语句如下:

-- 建表语句CREATE TABLE crm_user_info ( cust_no string COMMENT '客户编号', cust_name string COMMENT '客户姓名', gender string COMMENT '客户性别',) COMMENT '客户信息表'partitioned by (ds string)stored as orc tblproperties ('orc.compress'='SNAPPY');

注意:此处可以通过查询分区的方式将多个分区一次性插入,该种方式仅为演示该脚本的实现

#!/bin/shbegin_date=20211014end_date=20220131# shellcheck disable=SC2034this_script_name=${0##*/}exitCodeCheck() { if [ $1 -gt 0 ]; then echo '${this_script_name} fail exit_code=$1,reason: $2' exit $1 else echo 'shell execute success' fi}# shellcheck disable=SC2034for i in `seq 1 300`; do # shellcheck disable=SC2039 if [[ ${begin_date} -gt ${end_date} ]]; then break fi echo "start run ${begin_date}" hive -e " INSERT OVERWRITE TABLE crm_user_info_temp partition(ds = '${begin_date}') SELECt * FROM crm_user_info WHERe ds = '${begin_date}' " result=$? exitCodeCheck $result begin_date=$(date -d "${begin_date} +1 day" +%Y%m%d)doneecho ">>>>>>>>>>>>>>> Done at `date +"%F %H:%M:%S"` <<<<<<<<<<<<<<<"exit 0

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。