6.8 業務資料數倉搭建
從使用者行為寬表中dws_user_action,根據統計日期分組,聚合,直接sum就可以了。
6.10 需求二:轉化率
6.10.1 新增使用者佔日活躍使用者比率表
從日活躍數表 ads_uv_count 和 日新增裝置數表 ads_new_mid_count 中取即可。
6.10.2 使用者行為轉化率表
從使用者行為寬表dws_user_action中取,下單人數(只要下單次數》0),支付人數(只要支付次數》0)
從日活躍數表 ads_uv_count 中取活躍人數,然後對應的相除就可以了。
6.11 需求三:品牌複購率
需求:以月為單位統計,購買2次以上商品的使用者
6.11.1 使用者購買商品明細表(寬表)
6.11.2 品牌複購率表
從使用者購買商品明細寬表dws_sale_detail_daycount中,根據品牌id--sku_tm_id聚合,計算每個品牌購買的總次數,購買人數a=購買次數》=1,兩次及以上購買人數b=購買次數》=2,三次及以上購買人數c=購買次數》=3,
單次復購率=b/a,多次複購率=c/a
6.12 專案中有多少張寬表
寬表要3-5張,使用者行為寬表,使用者購買商品明細行為寬表,商品寬表,購物車寬表,物流寬表、登入註冊、售後等。
1)為什麼要建寬表
需求目標,把每個使用者單日的行為聚合起來組成一張多列寬表,以便之後關聯使用者維度資訊後進行,不同角度的統計分析。
6.13 拉鍊表
訂單表拉鍊表 dwd_order_info_his
`id` string comment '訂單編號',
`total_amount` decimal(10,2) comment '訂單金額',
`order_status` string comment '訂單狀態',
`user_id` string comment '使用者id' ,
`payment_way` string comment '支付方式',
`out_trade_no` string comment '支付流水號',
`create_time` string comment '建立時間',
`operate_time` string comment '操作時間' ,
`start_date` string comment '有效開始日期',
`end_date` string comment '有效結束日期'
1)建立訂單表拉鍊表,欄位跟拉鍊表一樣,只增加了有效開始日期和有效結束日期
初始日期,從訂單變化表ods_order_info匯入資料,且讓有效開始時間=當前日期,有效結束日期=9999-99-99
(從mysql匯入數倉的時候就只導了新增的和變化的資料ods_order_info,dwd_order_info跟ods_order_info基本一樣,只多了乙個id的判空處理)
2)建一張拉鍊臨時表dwd_order_info_his_tmp,欄位跟拉鍊表完全一致
3)新的拉鍊表中應該有這幾部分資料,
(1)增加訂單變化表dwd_order_info的全部資料
(2)更新舊的拉鍊表左關聯訂單變化表dwd_order_info,關聯字段:訂單id, where 過濾出end_date只等於9999-99-99的資料,如果舊的拉鍊表中的end_date不等於9999-99-99,說明已經是終態了,不需要再更新
如果dwd_order_info.id is null , 沒關聯上,說明資料狀態沒變,讓end_date還等於舊的end_date
如果dwd_order_info.id is not null , 關聯上了,說明資料狀態變了,讓end_date等於當前日期-1
把查詢結果插入到拉鍊臨時表中
4)把拉鍊臨時表覆蓋到舊的拉鍊表中
大資料技術實戰 業務互動資料分析
1 電商業務流程是怎樣的?2 mysql中表是如何分類的?3 什麼是關係型資料庫中的正規化?6.1 電商常識 sku 一台銀色 128g記憶體的 支援聯通網路的iphonex spu iphonex tm id 品牌id蘋果,包括iphone,耳機,mac等 6.2 電商業務流程 6.3 業務表關鍵...
大資料專案之數倉專案(一)數倉搭建
名稱版本 hadoop 3.1.3 flume 1.9.0 kafka 2.11 2.4.1 zookeeper 3.5.7 mysql 5.1.27 sqoop 1.4.6 spark 3.0.0 hive 3.1.2 本專案採用星型維度建模 1 配置sparkonhive 注意配置spark h...
大資料方案 數倉建設
基於阿里雲日誌服務實現,拉取阿里雲日誌到本地資料庫儲存。優點 實施速度快。缺點 依賴阿里雲日誌服務,擴充套件性和靈活性較差。前端 雲端 nginx等不同格式的日誌傳送到kafka訊息佇列,之後做etl資料清洗,之後可以使用storm做實時計算或使用hive spark streaming做離線批處理...