自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

老板又讓我負責數(shù)倉 DWS 層建設(shè)了...

大數(shù)據(jù) 數(shù)據(jù)倉庫
DWS(Data Warehouse Service)層是數(shù)據(jù)倉庫的服務(wù)數(shù)據(jù)層,位于DWD層之上,ADS層之下。它主要承擔了將明細數(shù)據(jù)進行主題聚合的職責,是數(shù)據(jù)倉庫中承上啟下的關(guān)鍵環(huán)節(jié)。

又來活了,今天開始DWS層的建設(shè)。DWS(Data Warehouse Service)層是數(shù)據(jù)倉庫中的服務(wù)數(shù)據(jù)層,它基于DWD層的明細數(shù)據(jù),按照業(yè)務(wù)主題對數(shù)據(jù)進行輕度匯總,形成主題寬表,主要包含了1d(最近1日)、nd(最近n日)、td(歷史至今)等時間維度的指標,是數(shù)據(jù)倉庫中承上啟下的關(guān)鍵環(huán)節(jié),既保證了數(shù)據(jù)的可復(fù)用性,又為上層應(yīng)用提供了標準化的數(shù)據(jù)服務(wù)。

今天以我們項目中的實際案例為例進行DWS層建設(shè)思路介紹。數(shù)倉代碼可訪問:

  • github:https://github.com/Mrkuhuo/data-warehouse-learning
  • gitee:https://gitee.com/wzylzjtn/data-warehouse-learning

一、DWS層定位與價值

1. DWS角色定位

DWS(Data Warehouse Service)層是數(shù)據(jù)倉庫的服務(wù)數(shù)據(jù)層,位于DWD層之上,ADS層之下。它主要承擔了將明細數(shù)據(jù)進行主題聚合的職責,是數(shù)據(jù)倉庫中承上啟下的關(guān)鍵環(huán)節(jié)。

2. 業(yè)務(wù)價值

業(yè)務(wù)價值:

  • 降低計算成本:預(yù)計算常用指標,避免重復(fù)計算
  • 統(tǒng)一指標口徑:確保全公司指標計算規(guī)則統(tǒng)一
  • 提升分析效率:提供主題化的寬表,方便業(yè)務(wù)分析
  • 支持多維分析:保留完整維度,支持靈活查詢

二、DWS層設(shè)計思路

1. 主題劃分

主題是DWS層最重要的設(shè)計要素,需要從以下幾個方面考慮:

(1) 業(yè)務(wù)維度劃分:

  • 交易域:訂單、支付、退款等
  • 用戶域:注冊、登錄、畫像等
  • 流量域:訪問、瀏覽、跳轉(zhuǎn)等
  • 商品域:商品、類目、品牌等

(2) 分析維度考慮

  • 時間維度:日、周、月、年
  • 地理維度:省份、城市、區(qū)域
  • 用戶維度:設(shè)備、渠道、等級
  • 業(yè)務(wù)維度:品類、品牌、店鋪

2. 粒度設(shè)計

(1) 基礎(chǔ)粒度

  • 用戶粒度:用戶行為分析
  • 商品粒度:商品銷售分析
  • 店鋪粒度:店鋪運營分析
  • 訂單粒度:交易過程分析

(2) 時間粒度

  • 1d:最近1日匯總,日常監(jiān)控
  • nd:最近n日匯總,趨勢分析
  • td:歷史至今匯總,累計分析

3. 指標體系

(1) 指標類型

  • 統(tǒng)計指標:數(shù)量、金額等
  • 比率指標:占比、轉(zhuǎn)化率等
  • 環(huán)比指標:增長率、變化率等
  • 復(fù)合指標:加權(quán)分數(shù)、綜合評分等

(2) 計算方式

  • 累計值:SUM、COUNT等
  • 去重值:COUNT DISTINCT等
  • 最新值:MAX、LAST_VALUE等
  • 平均值:AVG、MEDIAN等

三、實戰(zhàn)案例:交易行為分析

1. 業(yè)務(wù)場景

分析用戶購物行為,包括:

  • 商品購買情況
  • 用戶消費習慣
  • 品類偏好分析
  • 支付方式分析

2. 表設(shè)計方案

-- 用戶商品交易行為匯總表(最近N日)
CREATE TABLE dws.dws_trade_user_sku_order_nd (
    user_id         STRING COMMENT '用戶ID',
    sku_id          STRING COMMENT '商品ID',
    k1              DATE COMMENT '數(shù)據(jù)日期',


    -- 商品維度冗余
    sku_name        STRING COMMENT '商品名稱',
    category1_id    STRING COMMENT '一級品類ID',
    category1_name  STRING COMMENT '一級品類名稱',
    tm_id           STRING COMMENT '品牌ID',
    tm_name         STRING COMMENT '品牌名稱',


    -- 7日匯總指標
    order_count_7d  BIGINT COMMENT '7日下單次數(shù)',
    order_num_7d    BIGINT COMMENT '7日購買件數(shù)',
    order_amount_7d DECIMAL(16,2) COMMENT '7日下單金額',


    -- 30日匯總指標
    order_count_30d BIGINT COMMENT '30日下單次數(shù)',
    order_num_30d   BIGINT COMMENT '30日購買件數(shù)',
    order_amount_30d DECIMAL(16,2) COMMENT '30日下單金額'
) COMMENT '交易域用戶商品粒度訂單最近N日匯總表'
PARTITION BY k1;

3. 實現(xiàn)方案

(1) 維度關(guān)聯(lián)

-- 1. 關(guān)聯(lián)商品維度信息
SELECT 
    od.user_id, od.sku_id, od.k1,


    -- 2. 冗余維度屬性
    COALESCE(sku.sku_name, '未知商品') as sku_name,
    COALESCE(sku.category1_id, '-1') as category1_id,
    COALESCE(sku.category1_name, '未知品類') as category1_name,
    COALESCE(sku.tm_id, '-1') as tm_id,
    COALESCE(sku.tm_name, '未知品牌') as tm_name,


    -- 3. 統(tǒng)計指標
    od.order_count_1d,
    od.order_num_1d,
    od.order_amount_1d
FROM order_detail od
LEFT JOIN dim.dim_sku_full sku
    ON od.sku_id = sku.id
    AND sku.k1 = (
        SELECT MAX(k1) 
        FROM dim.dim_sku_full 
        WHERE k1 <= DATE('${pdate}')
    );

(2) 指標計算

-- 1. 計算匯總指標
SELECT
    user_id, sku_id, k1,
    sku_name, category1_id, category1_name,
    tm_id, tm_name,


    -- 2. 計算7日累計
    SUM(IF(k1 >= DATE_ADD(DATE('${pdate}'), -6),
           order_count_1d, 0)) AS order_count_7d,
    SUM(IF(k1 >= DATE_ADD(DATE('${pdate}'), -6),
           order_num_1d, 0)) AS order_num_7d,
    SUM(IF(k1 >= DATE_ADD(DATE('${pdate}'), -6),
           order_amount_1d, 0)) AS order_amount_7d,


    -- 3. 計算30日累計
    SUM(order_count_1d) AS order_count_30d,
    SUM(order_num_1d) AS order_num_30d,
    SUM(order_amount_1d) AS order_amount_30d
FROM dws.dws_trade_user_sku_order_1d
WHERE k1 >= DATE_ADD(DATE('${pdate}'), -29)
GROUP BY 
    user_id, sku_id, k1,
    sku_name, category1_id, category1_name,
    tm_id, tm_name;

通過以上案例分析,我們可以看到DWS層在實際業(yè)務(wù)中的應(yīng)用方式和實現(xiàn)細節(jié)。這些設(shè)計方案和實現(xiàn)方法可以作為參考,在實際項目中根據(jù)具體需求進行調(diào)整和優(yōu)化。

責任編輯:趙寧寧 來源: 大數(shù)據(jù)技能圈
相關(guān)推薦

2025-04-08 11:30:00

DIM數(shù)據(jù)倉庫架構(gòu)

2022-08-22 17:46:56

虛擬數(shù)倉Impala

2022-12-08 10:16:58

數(shù)據(jù)模型

2018-12-20 09:52:05

JVM內(nèi)存分配

2022-08-16 14:17:50

數(shù)據(jù)倉庫數(shù)據(jù)治理數(shù)據(jù)職場

2025-04-14 08:15:00

2021-06-11 07:26:16

數(shù)據(jù)倉庫機器學習

2022-08-19 09:12:19

數(shù)據(jù)庫開發(fā)

2024-11-21 16:46:12

2023-06-28 16:10:09

Dataleap數(shù)倉建設(shè)

2020-03-03 07:59:29

設(shè)計秒殺系統(tǒng)

2010-08-06 17:09:14

加薪

2021-09-09 18:12:22

內(nèi)存分段式網(wǎng)絡(luò)

2021-01-31 23:54:23

數(shù)倉模型

2019-09-18 09:41:25

億級流量網(wǎng)站

2022-12-01 17:17:09

React開發(fā)

2010-07-07 16:21:40

重用

2011-09-30 13:37:35

51CTO博客一周熱門薪酬
點贊
收藏

51CTO技術(shù)棧公眾號