天天看點

湖倉一體電商項目(十五):實時統計商品及一級種類、二級種類通路排行業務需求和分層設計及流程圖

湖倉一體電商項目(十五):實時統計商品及一級種類、二級種類通路排行業務需求和分層設計及流程圖

文章目錄

​​實時統計商品及一級種類、二級種類通路排行業務需求和分層設計及流程圖​​

​​一、業務需求​​

​​二、業務分層設計及流程圖​​

實時統計商品及一級種類、二級種類通路排行業務需求和分層設計及流程圖

一、業務需求

使用者登入系統後會浏覽商品,浏覽日志通過日志采集接口采集到Kafka “KAFKA-USER-LOG-DATA”topic中,每個使用者浏覽商品的日志資訊中都有浏覽的商品編号以及目前商品所屬的二級分類資訊,我們需要根據使用者在網站上浏覽的日志資訊實時統計出商品浏覽排行、商品一級種類、二級種類通路排行,并在大屏展示,展示效果如下:

湖倉一體電商項目(十五):實時統計商品及一級種類、二級種類通路排行業務需求和分層設計及流程圖

二、業務分層設計及流程圖

本業務涉及到的資料有兩類,一類是來自于MySQL業務庫商品分類表“pc_product_category”、商品基本資訊表“pc_product”,我們會将以上業務表資料采集到大資料平台中建構數倉分層,同樣,我們采用資料湖技術Iceberg建構湖倉一體結構進行資料倉庫分層,在數倉中以上兩張表是次元資料。在設計湖倉分層時,我們将次元資料存儲在HBase中,将事實資料存儲在Iceberg數倉分層中,在第一個業務中我們已經寫好了通用的處理次元資料代碼“DimDataToHBase.scala”,隻需要在MySQL配置表“lakehousedb.dim_tbl_config_info”表中配置好對應的次元表即可,這樣通過maxwell增量或者全量将MySQL中次元資料分流導入到Kafka 存儲次元的topic “KAFKA-DIM-TOPIC”中,進而通過處理次元通用代碼将次元資料寫入到HBase中。

另一類資料是來自于使用者浏覽商品日志資料,此類資料在1.5章節中已經通過日志采集接口将資料采集到Kafka topic “KAFKA-USER-LOG-DATA”中,針對此topic中資料我們需要通過Flink代碼進行處理,Flink代碼會将所有業務庫中的資料保留一份完整資料到Iceberg ODS層中,針對次元資料會将資料進行過濾存儲在Kafka 中,友善後續次元資料處理,另外為了使代碼重新開機後消費資料位置資訊得到保證,這裡我們将所有事實資料也存儲在Kafka中,後續各層也是按照此邏輯執行。

本實時業務湖倉分層設計如下圖所示:

  • 📢本文由 Lansonli 原創
  • 📢停下休息的時候不要忘了别人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活✨

繼續閱讀