GMV:Gross Merchandise Volume,是一段时间内的成交总额(比如一天、一个月、一年)。在电商网站定义里面是网站成交金额,包括付款和未付款的部分,不同公司的算法可能不同。
数据来源:上一步完成的用户行为宽表,里面包括了每个用户的订单个数,订单金额和支付总额。
建表语句:
drop table if exists ads_gmv_sum_day; create external 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 ' ' location '/warehouse/gmall/ads/ads_gmv_sum_day/' ;
数据导入脚本:
#!/bin/bash # 定义变量方便修改 APP=gmall hive=/opt/module/hive/bin/hive # 如果是输入的日期按照取输入日期;如果没输入日期取当前时间的前一天 if [ -n "$1" ] ;then do_date=$1 else do_date=`date -d "-1 day" +%F` fi sql=" insert into table "$APP".ads_gmv_sum_day select '$do_date' dt, sum(order_count) gmv_count, sum(order_amount) gmv_amount, sum(payment_amount) payment_amount from "$APP".dws_user_action where dt ='$do_date' group by dt; " $hive -e "$sql"