數據倉庫項目筆記3

知識點:

spark DSL風格:
表示column方式: $“field” 'field col(“field”) dataframe(“field”)
每遇到select 方法生成一張新的表,後續方法 相當於子查詢
agg 聚合函數 同時聚合多個字段 參數用map表示 字段->函數名
where 條件 score > 80 把score類型轉爲int 比較
seq:* 返回 Any*類型
丟棄一列: df.drop(“filed”)
增加一列 先df.map 讓返回Row(seq:
*) 增加一列 然後df.schema獲取schema.add(“filed”, DataTypes) spark.createDataFrame獲取新的frame
Atlas 工具: 元數據開發系統, 數據治理 搜索字段 查看血緣關係:字段從哪些表中聯合生成

項目需求 :

1 將清洗後的數據導入hive ODS層
創建外部表 創建分區 parquet存儲
CREATE EXTERNAL TABLE partitioned BY (dt String) stored AS parquet
刪除表不刪數據 對數據分開存儲和查詢提高效率) snappy壓縮省空間 列式存儲 查詢快
2 ODS層-> DWD 提取明細 需要的字段和數據

套路:

創建表 寫sql提煉數據
create external table dtl insert into table dtl partition(dt=‘dt’) select
分主題 補全信息 和轉換 插入到不同分區 會生成table中聲明的格式文件 無insert 只有select則打印 控制檯

舉例: 將貼源層的所有用戶標識的字段提煉爲一個字段, 提煉業務需求的所需要的字段
知識點:coalesce返回第一個不爲null的字段值
if(flag, 1, 2) flag true 返回1 false 返回2

3 DWD->DWS 匯聚層(得到分組字段(可分析不同的主題(流量主題:pv uv 時長))和維度)

套路:

創建表 寫分組 sql提煉數據
create external table dws insert into table dws partition(dt=‘dt’) select group by

3.1 DWS->DWS
DWS層可以更一步提煉比如 uid sessionid 分組之後獲取到pv總數 每一條代表訪問次數 提煉到以uid分組 獲取每個用戶pv總數 和 訪問總數 每一條代表uv 和每個維度字段

4 DWS->ADS 數據應用層

沒有group by 全部聚合

事件 含義
pv 點擊次數
訪問次數 uid session分組 次數
uv uid分組 次數
平均每次訪問時長 session訪問總時長/訪問次數
人均訪問次數 訪問次數/uv
人均訪問深度 pv/uv
回頭客佔比 訪問次數大於1的/uv
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章