需求二:电商GMV
原创小于 1 分钟
实现思路
这个需求实现起来也很简单,只需要对dwd_order
表中的money
字段按时间进行汇总就行了,然后将计算结果保存到表APP层
的app_gmv
表中。
APP层开发
通过脚本的方式初始化app_gmv
表。
> cd /home/work/warehouse_goods_order
> vi app_shopmall_requirement02_init.sh
#!/bin/bash
# 需求二:电商GMV
# app层数据库和表初始化,只需要执行一次
hive -e "
create database if not exists app_shopmall;
create external table if not exists app_shopmall.app_gmv (
gmv decimal(10, 2)
) partitioned by(dt string)
row format delimited
fields terminated by '\t'
location 'hdfs://server01:9000/data/app/gmv/';
"
然后按天创建分区。
> cd /home/work/warehouse_goods_order
> vi app_shopmall_requirement02_add_partition.sh
#!/bin/bash
# 需求二:电商GMV
# 每天凌晨执行一次
if [ "d$1" = "d" ]
then
dt=`date +%Y%m%d --date="1 days ago"`
else
dt=$1
fi
hive -e "
insert overwrite table app_shopmall.app_gmv partition(dt = '${dt}') select
sum(money) as gmv
from dwd_shopmall.dwd_order
where dt = '${dt}';
"
可以通过定时任务来执行它。
> crontab -e
# 每天凌晨0点1分执行
1 0 * * * /home/work/warehouse_goods_order/app_shopmall_requirement02_add_partition.sh
感谢支持
更多内容,请移步《超级个体》。