数据产品

百问中台:数据中台实战ODDA之ADS建模

2021-04-01  本文已影响0人  sknfie

概述

通过上面的步骤,已经完成数据中台ODDA建模,接下来实战一下。
GMV(全称Gross Merchandise Volume),即商品交易总额,是成交总额(一定时间段内)的意思。多用于电商行业,一般包含拍下未支付订单金额。
在电商网站定义里面是网站成交金额。这个实际指的是拍下订单金额, 包含付款和未付款的部分。

需求

ADS层分析

计算GMV,包含付款和未付款的部分。

建表

-- 进入数据库
use mall;

-- 创建gmv表
drop  table ads_gmv_sum_day;
create  table ads_gmv_sum_day
(   
    dt string comment '统计日期 ' ,
    gmv_count bigint comment '每日gmv订单个数',
    gmv_amount decimal(16,2) COMMENT '每日gmv订单总金额',
    gmv_payment decimal(16,2) COMMENT '当日支付金额'
)   COMMENT '每日GMV统计'
row format delimited  fields terminated by '\t' 
location '/warehouse/mall/ads/ads_gmv_sum_day/'
hive -f /home/warehouse/sql/ads_gmv_ddl.sql

脚本

#!/bin/bash

# 定义变量方便修改
APP=mall
hive=hive

# 如果是输入的日期按照取输入日期;如果没输入日期取当前时间的前一天
if [ -n $1 ] ;then
    log_date=$1
else 
    log_date=`date  -d "-1 day"  +%F`  
fi 

sql="

set hive.exec.dynamic.partition.mode=nonstrict;

insert into table "$APP".ads_gmv_sum_day 
select 
'$log_date' dt ,
    sum(order_count)  gmv_count ,
    sum(order_amount) gmv_amount ,
    sum(payment_amount) payment_amount 
from "$APP".dws_user_action 
where dt ='$log_date'
group by dt
;

"
$hive -e "$sql"
[root@node03 shell]# ./ads_gmv.sh 2021-03-24

验证结果

hive> select * from ads_gmv_sum_day ;
OK
2021-03-24      300     160700  80931
Time taken: 0.109 seconds, Fetched: 1 row(s)
上一篇 下一篇

猜你喜欢

热点阅读