營銷中心數據優化-當離線沒有數據取redis

背景:用戶的分日離線數據是數據部門每天統計完成後寫入離線分日表中,那麼寫入的時候就會有時間差,大概凌晨-3點基本用戶是看不到昨日的數據的,爲了優化這個痛點,我們做了優化當昨日離線沒有值的時候,我們會去redis實時數據(生命週期是3天都有)。雖然是業務相關的,但也體現了商業廣告數據統計的維度:1.商品分天維度(一個商品按天統計-離線數據)。2.商品分時維度(一個商品一天各小時數據數據-離線/實時)。3.用戶產品類型維度(該用戶所有商品的推廣數據)。

取數據邏輯:

有離線取離線,離線沒有就會取緩存。

1.離線有數據:

當離線表有數據的時候,使用數據中心查看分成3中場景

場景1:只選擇日期,不選擇商品,日期開始結束不是同一天

離線數據取自 tdb_adstat.daily_data_adproduct_promote

造數據如圖:

adstat日誌,查詢入參

返回結果:

場景2:選擇日期,開始結束爲同一天,不選擇商品

數據中心查詢如圖:

數據取自tdb_adstat.hourly_data_adproduct_promote,如圖:

adstat查詢日誌

結果返回:

場景3:選擇日期,選擇商品,日期開始結束不是同一天

離線數據取自tdb_adstat.daily_data_product_promote表,該表示按照promotionId查詢,注意區分promotionid對應優店通查詢條件

數據庫造數據如圖:

adstat查詢日誌

2.沒有離線數據:

場景1:只選擇日期,不選擇商品,日期開始結束不是同一天

保證離線數據查詢日誌沒有,在操作redis設置分日緩存

頁面返回:

場景3:選擇日期,選擇商品,日期開始結束不是同一天

首選保證離線表沒有數據,然後操作redis設置分日緩存(這種按日期取直接取分日緩存,不會sum分時緩存,同時緩存key設置按照promotionid)

redis造數據如圖:

返回結果:

測試點:

除了redis的key要寫對,有一些是到分日的,有一些是分時的,還有就是場景:離線沒有取redis->離線有了取離線,有個動作變化,其他沒有了。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章