shell脚本实现多张表合并成一张分区表

摘要:之前同事建表不太规范,没有建分区表,而是每天一个新的表,不同日期用表名后缀区分,每次想使用多个日期都需要大量的union all十分麻烦,而且大量union all操作又会占用大量driver内存,因此这些表是必然要改成分区表的,但是大量重复的操作去手动执行显然是不合适的,那么如何用shell脚本自动化执行呢?

#!/bin/bash
#脚本目标:将源表数据导入目标表中
#参数1:开始日期    参数2:结束日期
#源表(每天一个表): browser.detail_20200101等, browser.tidy_20200101等
#目标表(分区表):ods.ods_browser_detail(结尾有六个额外字段), ods.ods_browser_tidy
#ods_browser_detail字段过多且源表和目标表均为列式存储,查询和插入都会很慢
 
#操作的数据库:DB1源,DB2目标
DB1=browser
DB2=ods
#目标表名称
table1=ods_browser_detail
table2=ods_browser_tidy
 
#判断参数是否符合,如果第二个参数不为空并且两个参数长度都为8则进行下一步,否则退出
#&& [ `expr length $1` -eq 8 ] && [ `expr length $2` -eq 8 ]
if [ -n "$2" ] && [ ${#1} -eq 8 ] && [ ${#2} -eq 8 ]
#${#2}代表第二个参数的长度,其等价于`expr leng
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值