統計主題 | 需求指標【ADS】 | 輸出方式 | 計算來源 | 來源層級 |
---|---|---|---|---|
訪客【DWS】 | pv | 視覺化大屏 | page_log 直接可求 | dwd |
UV(DAU) | 視覺化大屏 | 需要用 page_log 過濾去重 | dwm | |
UJ 跳出率 | 視覺化大屏 | 需要通過 page_log 行為判斷 | dwm | |
進入頁面數 | 視覺化大屏 | 需要識別開始存取標識 | dwd | |
連續存取時長 | 視覺化大屏 | page_log 直接可求 | dwd | |
商品 | 點選 | 多維分析 | page_log 直接可求 | dwd |
收藏 | 多維分析 | 收藏表 | dwd | |
加入購物車 | 多維分析 | 購物車表 | dwd | |
下單 | 視覺化大屏 | 訂單寬表 | dwm | |
支付 | 多維分析 | 支付寬表 | dwm | |
退款 | 多維分析 | 退款表 | dwd | |
評論 | 多維分析 | 評論表 | dwd | |
地區 | PV | 多維分析 | page_log 直接可求 | dwd |
UV | 多維分析 | 需要用 page_log 過濾去重 | dwm | |
下單 | 視覺化大屏 | 訂單寬表 | dwm | |
關鍵詞 | 搜尋關鍵詞 | 視覺化大屏 | 頁面存取紀錄檔 直接可求 | dwd |
點選商品關鍵詞 | 視覺化大屏 | 商品主題下單再次聚合 | dws | |
下單商品關鍵詞 | 視覺化大屏 | 商品主題下單再次聚合 | dws |
統計主題 | 需求指標【ADS】 | 輸出方式 | 計算來源 | 來源層級 |
---|---|---|---|---|
訪客【DWS】 | PV | 視覺化大屏 | page_log 直接可求 | dwd |
UV(DAU) | 視覺化大屏 | 需要用 page_log 過濾去重 | dwm | |
跳出率 | 視覺化大屏 | 需要通過 page_log 行為判斷 | dwm | |
進入頁面數 | 視覺化大屏 | 需要識別開始存取標識 | dwd | |
連續存取時長 | 視覺化大屏 | page_log 直接可求 | dwd |
設計一張 DWS 層的表其實就兩件事:維度和度量(事實資料)
訪客主題寬表計算
把資料流合併在一起,成為一個相同格式物件的資料流
合併資料流的核心運算元是 union。但是 union 運算元,要求所有的資料流結構必須一致。所以 union 前要調整資料結構。
為何要寫入 ClickHouse 資料庫,ClickHouse 資料庫作為專門解決大量資料統計分析的資料庫,在保證了海量資料儲存的能力,同時又兼顧了響應速度。而且還支援標準 SQL,即靈活又易上手。
flink-connector-jdbc 是官方通用的 jdbcSink 包。只要引入對應的 jdbc 驅動,flink 可以用它應對各種支援 jdbc 的資料庫,比如 phoenix 也可以用它。但是這個 jdbc-sink 只支援資料流對應一張資料表。如果是一流對多表,就必須通過自定義的方式實現了,比如之前的維度資料。
雖然這種 jdbc-sink 只能一流對一表,但是由於內部使用了預編譯器,所以可以實現批次提交以優化寫入速度。
商品 | 點選 | 多維分析 | page_log 直接可求 | dwd |
收藏 | 多維分析 | 收藏表 | dwd | |
加入購物車 | 多維分析 | 購物車表 | dwd | |
下單 | 視覺化大屏 | 訂單寬表 | dwm | |
支付 | 多維分析 | 支付寬表 | dwm | |
退款 | 多維分析 | 退款表 | dwd | |
評論 | 多維分析 | 評論表 | dwd |
地區 | PV | 多維分析 | page_log 直接可求 | dwd |
UV | 多維分析 | 需要用 page_log 過濾去重 | dwm | |
下單 | 視覺化大屏 | 訂單寬表 | dwm |
關鍵詞 | 搜尋關鍵詞 | 視覺化大屏 | 頁面存取紀錄檔 直接可求 | dwd |
點選商品關鍵詞 | 視覺化大屏 | 商品主題下單再次聚合 | dws | |
下單商品關鍵詞 | 視覺化大屏 | 商品主題下單再次聚合 | dws |
關鍵詞主題這個主要是為了大屏展示中的字元雲的展示效果,用於感性的讓大屏觀看者感知目前的使用者都更關心的那些商品和關鍵詞。
關鍵詞的展示也是一種維度聚合的結果,根據聚合的大小來決定關鍵詞的大小。
關鍵詞的第一重要來源的就是使用者在搜尋欄的搜尋,另外就是從以商品為主題的統計中獲取關鍵詞。
以我們需要根據把長文字分割成一個一個的詞,這種分詞技術,在搜尋引擎中可能會用到。對於中文分詞,現在的搜尋引擎基本上都是使用的第三方分詞器,咱們在計算資料中也可以,使用和搜尋引擎中一致的分詞器,IK。
<dependency>
<groupId>com.janeluo</groupId>
<artifactId>ikanalyzer</artifactId>
<version>2012_u6</version>
</dependency>
有了分詞器,那麼另外一個要考慮的問題就是如何把分詞器的使用揉進 FlinkSQL 中。
因為 SQL 的語法和相關的函數都是 Flink 內定的,想要使用外部工具,就必須結合自定義函數。
https://www.bilibili.com/video/BV1Ju411o7f8/?p=115
巨量資料-資料倉儲-實時數倉架構分析
巨量資料-業務資料採集-FlinkCDC
巨量資料 - DWD&DIM 行為資料
巨量資料 - DWD&DIM 業務資料
巨量資料 DWM層 業務實現