1. 程式人生 > 實用技巧 >大資料實戰(五十七):電商數倉(四十)之系統業務資料倉庫(十三)付費使用者率

大資料實戰(五十七):電商數倉(四十)之系統業務資料倉庫(十三)付費使用者率

1 DWS

使用付費使用者數以及新增使用者表作為資料來源

2 ADS

2.1 建表語句

drop table if exists ads_pay_user_ratio;
create external table ads_pay_user_ratio (   
    dt string comment '統計日期',
    pay_count   bigint  comment '總付費使用者數',
    user_count bigint comment '總使用者數',
    pay_count_ratio decimal(10,2) COMMENT '付費使用者比率'
) COMMENT 
'付費使用者率表' stored as parquet location '/warehouse/gmall/dws/ads_pay_user_ratio';
View Code

2.2匯入資料

需求--付費使用者率---------------------
使用者: user_id!=mid_id
假如現在每人都用自己的手機(裝置)登入自己的帳號!user_id=mid_id
付費使用者率: 付費的使用者數 / 所有使用者數
-----------------------------相關表---------------------
ads_pay_user_count: 截至到今天所有的付費使用者數

ads_new_mid_count(不用): 每天新增的裝置數
dws_user_info: 使用者表,統計當前的使用者數
-----------------------------思路-----------------------
-----------------------------SQL------------------------
insert INTO TABLE ads_pay_user_ratio
SELECT
'2020-02-16',pay_count,user_count,
cast(pay_count/user_count*100 as decimal(10,2))
from
(select
sum(pay_count) pay_count
from ads_pay_user_count
where dt<='2020-02-16') t1
join
(SELECT
count(*) user_count
from dwd_user_info
where dt='2020-02-16') t2