資料倉儲 使用者新增主題

2022-01-26 07:58:16 字數 3002 閱讀 3730

實現思路:要知道今天有哪些使用者是新增使用者,需要知道兩件事,一是今天所有的活躍使用者,因此,新增使用者的資料**,還是dws層的裝置日活表,新增使用者,就是部分日活的使用者。二是要知道哪些使用者在以前活躍過,用今日活躍使用者減去以前活躍過的使用者,剩下的就是新增使用者。

dws層(每日新增裝置明細表)

建表語句。

分析:這個表用來儲存每日新增的裝置(使用者),資料量比起每日活躍表來說,要少的多。因為一台裝置可以在每天都生成活躍記錄,而新增裝置卻只會出現一條記錄,資料量相對較少,可以不用分割槽表。

drop table if

exists dws_new_mid_day;

create external table dws_new_mid_day

( `mid_id`

string comment '

裝置唯一標識',

`user_id`

string comment '

使用者標識',

`version_code`

string comment '

程式版本號',

`version_name`

string comment '

程式版本名',

`lang`

string comment '

系統語言',

`source`

string comment '

渠道號'

, `os`

string comment '

安卓系統版本',

`area`

string comment '區域'

, `model`

string comment '

手機型號',

`brand`

string comment '

手機品牌',

`sdk_version`

string comment '

sdkversion',

`gmail`

string comment '

gmail',

`height_width`

string comment '

螢幕寬高',

string comment '

客戶端日誌產生時的時間',

`network`

string comment '

網路模式',

`lng`

string comment '經度'

, `lat`

string comment '緯度'

, `create_date`

string comment '

建立時間

') comment

'每日新增裝置資訊

'stored as parquet

location

'/warehouse/gmall/dws/dws_new_mid_day/

';

資料匯入,以2019-02-10為例。用日活表取連線新增裝置表,如果以前沒有出現在新增裝置中的資料(nm.mid_id is null),即為新增的裝置。

insert into table dws_new_mid_day

select

ud.mid_id,

ud.user_id ,

ud.version_code ,

ud.version_name ,

ud.lang ,

ud.source,

ud.os,

ud.area,

ud.model,

ud.brand,

ud.sdk_version,

ud.gmail,

ud.height_width,

ud.network,

ud.lng,

ud.lat,

'2019-02-10

'from dws_uv_detail_day ud left

join dws_new_mid_day nm on ud.mid_id=nm.mid_id

where ud.dt='

2019-02-10

' and nm.mid_id is null;

ads層(每日新增裝置表)

上面的新增裝置明細表,只是記錄了每日新增了哪些裝置,但報表上要展示的,是每日新增了多少數量的裝置,因此,還需要乙個ads層的表去儲存count後的資料,以便於直接展示在報表裡。

建表語句。

drop table if

exists ads_new_mid_count;

create external table ads_new_mid_count

(    `create_date`     

string comment '

建立時間',

`new_mid_count`   bigint comment

'新增裝置數量

') comment

'每日新增裝置資訊數量

'row format delimited fields terminated by '\t

'location

'/warehouse/gmall/ads/ads_new_mid_count/

';

匯入資料,以2019-02-10為例。

insert into table ads_new_mid_count 

select

create_date,

count(*)

from dws_new_mid_day

where create_date='

2019-02-10

'group by create_date;

最後,還要將上面的兩個導資料的sql寫成指令碼,略。

資料倉儲主題域

主題域通常是聯絡較為緊密的資料主題的集合。比如銷售分析,進銷存分析都是主題,可以根據業務的關注點,將這些資料主題劃分到不同的主題域。主題域包含了某方面決策者關注的事物。乙個主題域通常會覆蓋多個業務部門,例如產品主題域涉及到銷售 財務 物流 採購等部門。dw的設計方法一般採用面向主題的方法來設計。根據...

什麼是資料倉儲主題

自從學習資料倉儲以來,對資料倉儲 面向主題 的概念始終比較模糊,理解不夠深刻 透徹。昨天晚上翻開課本溫習一下,仍然不能領悟其本質思想 很是困惑,後來從網上找了一些資料,細細著磨一下。1 主題的概念 主題 subject 是在較高層次上將企業資訊系統中的資料進行綜合 歸類和分析利用的乙個抽象概念,每乙...

什麼是資料倉儲主題

1 主題的概念 主題 subject 是在較高層次上將企業資訊系統中的資料進行綜合 歸類和分析利用的乙個抽象概念,每乙個主題基本對應乙個巨集觀的分析領域。在邏輯意義上,它是對應企業中某一巨集觀分析領域所涉及的分析物件。例如 銷售分析 就是乙個分析領域,因此這個資料倉儲應用的主題就是 銷售分析 面向主...