實時數倉分層
建設實時數倉的目的,主要是增加資料計算的複用性。每次新增加統計需求時,不至于從原始資料進行計算,而是從半成品繼續加工而成。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TP310dRpmT1MmaNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL0YTO2EzM0kTM1EzMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
每層職能
分層 | 資料描述 | 生成計算工具 | 存儲媒介 |
---|---|---|---|
ODS | 原始資料,日志和業務資料 | 日志伺服器,maxwell | kafka |
DWD | 根據資料對象為機關進行分流,比如訂單、頁面通路等等。 | FLINK | kafka |
DWM | 對于部分資料對象進行進一步加工,比如獨立通路、跳出行為。依舊是明細資料。 | FLINK | kafka |
DIM | 次元資料 | FLINK | HBase |
DWS | 根據某個次元主題将多個事實資料輕度聚合,形成主題寬表。 | FLINK | Clickhouse |
ADS | 把Clickhouse中的資料根據可視化需要進行篩選聚合。 | Clickhouse SQL | 可視化展示 |
關于将次元表存儲到hbase主要是因為kafka中的資料隻能順序讀取,無法随機讀取,而實時計算場景對資料的要求資料相應要快,而且一般是寬表,顯然存儲到kafka并不能滿足實時計算後期的聚合需求。