美文网首页数据产品
百问中台:数据中台实战ODDA之ADS建模

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

作者: sknfie | 来源:发表于2021-04-01 10:03 被阅读0次

概述

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

需求

ADS层分析

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

建表

  • ads_gmv_ddl.sql
-- 进入数据库
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

脚本

  • 编写脚本,完成dws的数据处理
#!/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)

相关文章

网友评论

    本文标题:百问中台:数据中台实战ODDA之ADS建模

    本文链接:https://www.haomeiwen.com/subject/qtcahltx.html