sqoop eval \
--connect ${CONN_VAR} \
--username ${USERNAME} \
--password ${PASSWORD} --verbose \
--query "
DECLARE
BEGIN
${BATCH_SQL}
END;
"
# ${BATCH_SQL} 中的语句用逗号隔开即可
#循环月份
while [ $V_MONTH -le $END_MONTH ];
do
# 处理整月的day_id分区
START_DAY="${V_MONTH}01" #20210701
NEXT_MONTH=$(date -d "${START_DAY} +1 months " +%Y%m%d) #20210801
END_DAY=$(date -d "${NEXT_MONTH} -1 days" +%Y%m%d) #20210731
V_THIS_DAY=$START_DAY
BATCH_SQL=""
while [ $V_THIS_DAY -le $END_DAY ];
do
# echo $V_THIS_DAY
BATCH_SQL=${BATCH_SQL}"p_create_table_partition('${oracle_table_name}', 'P_${V_THIS_DAY}', '${V_THIS_DAY}');"
V_THIS_DAY=$(date -d "${V_THIS_DAY} +1 day" +%Y%m%d)
done
# echo "PL/SQL:"$BATCH_SQL
sqoop eval \
--connect ${CONN_VAR} \
--username ${USERNAME} \
--password ${PASSWORD} --verbose \
--query "
DECLARE
BEGIN
${BATCH_SQL}
END;
"
#推送整月数据到uat
echo "推送${V_MONTH}整月数据到前端库(前端库的分区键是day_id)"
sqoop export \
--table ${oracle_table_name} \
--connect ${CONN_VAR} \
--username ${USERNAME} \
--password ${PASSWORD} \
--fields-terminated-by '\001' \
--outdir /var/lib/hadoop-hdfs/nhlh/feed/jar_file \
--export-dir
/user/hive/warehouse/mreport_feed.db/${hive_table_name}/op_month=${V_MONTH}
V_MONTH=`echo $(date -d "${V_MONTH}01 +1 month" +%Y%m)`
done