本文是對Adventure案例的一個總結(jié),記錄了整個項目需求分析與實現(xiàn)的過程,主要任務(wù)是使用Hive SQL和python代碼完成ETL過程,并且連接到PowerBI實現(xiàn)可視化。中間加入了個人的一些思考,最終將整個分析成果展示出來。
分析成果:

分析基本思路圖:

本文目錄:
項目背景介紹
需求分析與實現(xiàn)
報表制作
一、項目背景介紹:
Adventure是Adventure樣本數(shù)據(jù)庫所虛構(gòu)的公司,這是一家在全國范圍內(nèi)銷售自行車及其周邊產(chǎn)品的公司。
1、產(chǎn)品介紹
這家公司主要有下面四個產(chǎn)品線:
自行車;
自行車部件,例如車輪,踏板或制動組件;
自行車服裝;
自行車配件。
2、分析背景和目的:
2019年12月業(yè)務(wù)組組長需要向領(lǐng)導(dǎo)匯報2019年11月自行車銷售情況,為精細(xì)化運營提供數(shù)據(jù)支持,能精準(zhǔn)的定位目標(biāo)客戶群體。
二、需求分析與實現(xiàn)
項目任務(wù):
從Hive數(shù)據(jù)庫中讀取數(shù)據(jù)
探索數(shù)據(jù)庫并羅列分析指標(biāo)
匯總數(shù)據(jù)并存入數(shù)據(jù)庫中
1、數(shù)據(jù)導(dǎo)入
目標(biāo):源數(shù)據(jù)存儲在hive數(shù)據(jù)庫中,通過sql語句和python代碼提取源數(shù)據(jù),進(jìn)行清洗,整合計算。
2、探索數(shù)據(jù)并羅列分析指標(biāo)
目的:了解數(shù)據(jù)庫包含哪些信息,根據(jù)業(yè)務(wù)需要,羅列可分析的指標(biāo)。
(1)查看數(shù)據(jù)庫,了解包含哪些可用信息
數(shù)據(jù)庫共有3個表:
訂單明細(xì)表:ods_sales_orders
每日新增用戶表:ods_customer
日期維度表:dim_date_df
表名與解釋

? (2)明確分析目標(biāo)和需求,分解任務(wù)
結(jié)合項目目標(biāo)和現(xiàn)有數(shù)據(jù),根據(jù)分析目標(biāo),需要生成如下三個表,每個表所包含的列如下所示


(3)數(shù)據(jù)分析與初步整理
a. E-R圖
通過E-R圖進(jìn)一步分析事實表與各維度表之間的關(guān)聯(lián),比如dw_order_by_day,以"create_date"為索引,通過對ods_sales_orders的"unit_price"求和,"customer_key"求總個數(shù),然后和dim_date_df中的"create_date"字段進(jìn)行merge操作。
dw_customer_order首先通過"customer_key"連接”ods_sales_orders“和"ods_customer",對各個字段進(jìn)行計算,隨后計算結(jié)果和"dim_date_df"通過字段"create_date"字段聯(lián)系。

b. 指標(biāo)體系
分析維度:
時間維度——年、季度、月、周、日
地區(qū)維度——銷售大區(qū)、州/省、城市
產(chǎn)品維度——產(chǎn)品類別、產(chǎn)品子類
分析指標(biāo):
總銷售額
總訂單量
客單價=總銷售額/客戶總數(shù)
銷售額、銷量目標(biāo)達(dá)成率
不同維度(時間、地區(qū)、產(chǎn)品)下的銷售額、訂單量
3、計算匯總數(shù)據(jù)
目的:根據(jù)實際業(yè)務(wù)需要,對已經(jīng)建立好的基礎(chǔ)層數(shù)據(jù)進(jìn)行加工聚合,然后存入部門數(shù)據(jù)庫中。
三、報表制作
目的:將匯總層數(shù)據(jù)導(dǎo)入Power BI,建立各表之間的關(guān)聯(lián),并制作銷售報表。
1、數(shù)據(jù)導(dǎo)入
將Power BI連接到hive數(shù)據(jù)庫,將加工后的事實表導(dǎo)入。
3、制作報表
選擇合適的可視化工具,從多個維度展示銷售情況。
(1)數(shù)據(jù)清洗
數(shù)據(jù)格式:hive數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入后,可能需要進(jìn)行格式轉(zhuǎn)換。比如文本格式轉(zhuǎn)換為日期格式,文本格式轉(zhuǎn)換為整數(shù)格式,文本格式轉(zhuǎn)換為小數(shù)格式,小數(shù)格式轉(zhuǎn)換為百分比格式。雖然在匯總層中已經(jīng)將日期處理成yyyy-mm-dd格式,但是在Power BI中默認(rèn)是文本格式,要進(jìn)行設(shè)置。這里想說明一點,雖然Power BI中可以設(shè)置格式,但是最好還是回到hive中進(jìn)行數(shù)據(jù)清洗,否則刷新數(shù)據(jù)時可能會出現(xiàn)格式不匹配。
新建度量值:對于新增的客單價、收入利潤率等指標(biāo),可以通過新建度量值的方式進(jìn)行處理。當(dāng)然,最好還是在hive中創(chuàng)建字段,這樣代碼對其他項目做銷售數(shù)據(jù)分析更有借鑒意義。
(2)核心操作
可視化工具:這里用到的可視化工具柱形圖、儀表、卡片、柱狀圖、切片器、地圖等??梢愿鶕?jù)需要選擇圖例、軸、列,以及設(shè)置數(shù)據(jù)處理方式,求和、平均值、最大值、最小值等。
篩選器:有三種篩選器:視覺對象、此頁、所有頁面。這里用于日期、區(qū)域等字段的篩選。
書簽窗格:這里將按鈕和書簽結(jié)合使用,用于制作導(dǎo)航欄和動態(tài)圖表。
選擇窗格:可以選擇顯示/隱藏視覺對象,這里用于bike和非bike類商品圖表的切換顯示。
(3)報表展示
報表一共有3頁,包括主頁、區(qū)域分布圖、月份/季度/年同比圖。
a. 主頁展示內(nèi)容:
今年基本銷售指標(biāo),包括銷售額、訂單量、客單價、銷售額目標(biāo)完成率等
從時間維度分析今天銷售情況,并和去年的今天做同期比較
分析自行車產(chǎn)品銷量TOP10的情況

b. 從地區(qū)維度分析在各大區(qū)、各省市的銷售情況

c.從時間維度分析昨天銷售情況,并和去年的昨天做同期比較

d.從時間維度分析本月銷售情況,并和去年的同一月份做同期比較

d.從時間維度分析本季度銷售情況,并和去年的同一季度做同期比較

d.從時間維度分析今年銷售情況,并和去年進(jìn)行比較
