來到新公司后,領(lǐng)導(dǎo)布置的第二項(xiàng)工作任務(wù)是在公司的Tableau Server上建立一個(gè)反映業(yè)務(wù)宏觀概況的儀表盤。
早就聽說過Tableau這款圖形化的BI工具,只是以前在互聯(lián)網(wǎng)公司的業(yè)務(wù)團(tuán)隊(duì),大家傾向于“自己動(dòng)手,豐衣足食”,可視化BI的工具都是自己開發(fā)了,一直沒有機(jī)會(huì)接觸到這樣業(yè)界常用的BI工具。前一段時(shí)間投簡歷時(shí)也看到很多公司的招聘要求里有使用Tableau的工具,所以也對(duì)使用這款工具有了足夠的好奇心,這次終于有機(jī)會(huì)接觸,決定好好研究一下。
目前部門在Tableau Server上有自己的項(xiàng)目,其中有36個(gè)不同的工作簿,大多是根據(jù)運(yùn)營和技術(shù)人員的具體要求來定制開發(fā)的。領(lǐng)導(dǎo)的訴求是目前沒有一個(gè)地方能夠直觀地看到業(yè)務(wù)的整體經(jīng)營狀況,此前一直沒有人手來做這件事情,現(xiàn)在希望我能建立這樣一個(gè)工具,也正好利用這個(gè)機(jī)會(huì)進(jìn)一步熟悉業(yè)務(wù)流程和相關(guān)數(shù)據(jù)指標(biāo)。
為了保證我能夠理解他的需求,他專門抽了時(shí)間兩次向我和其他的新同事說明了當(dāng)前的業(yè)務(wù)流程,并描述了他所關(guān)注的若干指標(biāo),以便我們能夠?qū)ο嚓P(guān)的數(shù)據(jù)分析框架有所了解。
為了更好地了解現(xiàn)有的數(shù)據(jù)分析指標(biāo),我首先將Tableau Server上已有的36個(gè)工作簿進(jìn)行了整理,記錄下每個(gè)工作簿中的工作表、圖形樣式、使用指標(biāo)。完成了這份檔案,我對(duì)于部門常用的分析指標(biāo)就更加熟悉了。
此外,還專門請(qǐng)負(fù)責(zé)策略分析的同事對(duì)業(yè)務(wù)流程做了更詳細(xì)地說明,重點(diǎn)在于部分指標(biāo)的計(jì)算公式和可能影響計(jì)算的業(yè)務(wù)關(guān)鍵點(diǎn)。
整理好了背景信息,就開始動(dòng)手搭建Tableau使用環(huán)境。安裝Tableau Desktop后,為了能夠連接Hadoop,還需要額外安裝Haddop odbc驅(qū)動(dòng)。點(diǎn)擊連接的Cloudera Hadoop數(shù)據(jù)源,輸入公司服務(wù)器的地址和端口,選擇Hive Server,傳輸使用SASL方式,輸入個(gè)人的用戶名和密碼,就連接好了。
進(jìn)入之后在架構(gòu)中添加部門所在的數(shù)據(jù)庫名稱,就能夠開始添加具體的表使用數(shù)據(jù)源了。如果能夠確定要用到的數(shù)據(jù)比較小,后續(xù)篩選比較簡單,可以直接輸入數(shù)據(jù)表的名稱,在Tableau中完成數(shù)據(jù)篩選。如果篩選過程比較復(fù)雜,數(shù)據(jù)表比較龐大,我覺得還是使用自定義SQL更好,這樣后續(xù)的操作比較方便。
輸入SQL之后,可以選擇“實(shí)時(shí)”或“數(shù)據(jù)提取”方式獲取數(shù)據(jù)。前者適用于數(shù)據(jù)比較小時(shí),如果數(shù)據(jù)比較大,最好使用“數(shù)據(jù)提取”方式將數(shù)據(jù)下載到本地,這樣后續(xù)操作時(shí)不用每次都連接到數(shù)據(jù)庫進(jìn)行查詢,費(fèi)時(shí)費(fèi)力。
在動(dòng)手搭建BI儀表之前,我先規(guī)劃了要監(jiān)測(cè)業(yè)務(wù)的哪些方面,用到哪些指標(biāo),構(gòu)建哪種形式的圖表??紤]到領(lǐng)導(dǎo)需要的是宏觀層面的監(jiān)測(cè),因此將大方向定為數(shù)量和財(cái)務(wù)兩個(gè)方向,前者主要涉及業(yè)務(wù)的數(shù)量指標(biāo),如銷售量等,后者主要涉及銷售收入、成本等財(cái)務(wù)指標(biāo)。我決定一開始將指標(biāo)盡可能多地包羅在這個(gè)框架里面,當(dāng)然其中有一些維度和指標(biāo)可能暫時(shí)沒有辦法獲得準(zhǔn)確的數(shù)字,或者需要進(jìn)行校準(zhǔn),但是在第一期工作中列出來,有助于確定之后的工作方向,根據(jù)對(duì)業(yè)務(wù)的重要性進(jìn)行選擇。
由于對(duì)Tableau的性能不夠熟悉,我決定一開始限定一下數(shù)據(jù)源需要采集的字段值,如限定產(chǎn)品類別。事實(shí)證明這一步還是很有必要的,由于當(dāng)前處于同時(shí)摸索工具性能與操作,以及指標(biāo)和數(shù)據(jù)庫架構(gòu)的過程中,對(duì)數(shù)據(jù)的篩選存在一些沒有考慮到的地方,導(dǎo)致了數(shù)據(jù)提取時(shí)間過長。根據(jù)這一情況,對(duì)儀表所涉及的時(shí)間進(jìn)行了限制,決定集中反映最近7天的數(shù)據(jù),首先保證能夠成功獲取數(shù)據(jù)。
接下來就可以開始操作工作表了。時(shí)值中秋假期,我決定首先學(xué)習(xí)一下Tableau的操作,官方網(wǎng)站上雖然有比較詳細(xì)的視頻講解,但是在使用時(shí)查閱起來并不方便,所以購買了美智訊編寫的兩本Tableau教材,利用假期和上下班的通勤時(shí)間完成了閱讀,大致了解了操作的基本流程和設(shè)計(jì)套路,于是開始自己動(dòng)手了。
因?yàn)榍捌诘闹笜?biāo)規(guī)劃比較詳細(xì),因此具體搭建圖表的過程還比較順利,只是在繪制標(biāo)靶圖時(shí),遇到了一點(diǎn)小困難,一下子無法按照需要添加參考線,很快通過復(fù)原使用的圖表類型就得到了解決。一些需要衍生計(jì)算的字段,通過使用函數(shù)也都得到了解決。
完成工作表的搭建后,就開始搭建儀表盤了。這一部分相對(duì)而言就更為簡單了,因?yàn)槭堑谝淮问褂肨ableau,我也沒有打算修飾得過于復(fù)雜,直接拼在一起就可以了。稍微加的一點(diǎn)裝飾是調(diào)整了一下圖例的位置,把度量說明放在了每個(gè)工作表視圖旁邊,方便閱讀。
然后就是發(fā)布上線的環(huán)節(jié)了,順利連接到了公司的Tableau Server,確定好發(fā)布項(xiàng)目、名稱、更新時(shí)間點(diǎn)后,順利上線了。
向領(lǐng)導(dǎo)簡單進(jìn)行了展示后,領(lǐng)導(dǎo)提供了幾點(diǎn)反饋意見,包括增加一個(gè)從門店平均水平進(jìn)行觀測(cè)的儀表盤,同時(shí)需要增加的包括兩個(gè)數(shù)量和財(cái)務(wù)指標(biāo),以及產(chǎn)品類別,另外還希望對(duì)產(chǎn)品名稱進(jìn)行篩選,去除已經(jīng)下架和最近無售賣的產(chǎn)品。
這些需求中的增加指標(biāo)和產(chǎn)品類別,篩選產(chǎn)品名稱都通過修改提取數(shù)據(jù)的SQL進(jìn)行了實(shí)現(xiàn)。新增加的指標(biāo)在Tableau中需要進(jìn)行額外的聚合計(jì)算,這個(gè)并不復(fù)雜。比較難辦的展示形式,經(jīng)過仔細(xì)思考,一方面增加了一個(gè)工作表以容納這些指標(biāo),另一方面通過首先在第二坐標(biāo)軸上添加指標(biāo)后隱藏,再增加參考線的方式,滿足了利用標(biāo)靶圖展示的要求。為了更好地效果,還去掉了參考線的選擇數(shù)據(jù)點(diǎn)時(shí)強(qiáng)調(diào)的設(shè)置,避免造成誤解。
此外,由于產(chǎn)品類別和產(chǎn)品名稱,以及城市和門店名稱存在從屬關(guān)系,還對(duì)篩選器進(jìn)行了級(jí)聯(lián)設(shè)置,保證了在上一級(jí)進(jìn)行篩選后,下一級(jí)只出現(xiàn)相關(guān)值,方便了使用。
至于門店平均水平的儀表盤,決定放到下一期再進(jìn)行開發(fā)。一方面是因?yàn)楸敬雾?xiàng)目的時(shí)間所限,另一方面是對(duì)這個(gè)儀表盤需要重新設(shè)計(jì),特別是有關(guān)指標(biāo)需要全部重新計(jì)算,工作量也相對(duì)較大,決定和庫存相關(guān)指標(biāo)放到一起來實(shí)現(xiàn)。
最后在頁面上增加了更新點(diǎn)的文字說明,調(diào)整了數(shù)據(jù)更新時(shí)間點(diǎn)(原來的設(shè)定時(shí)間比數(shù)據(jù)源的更新時(shí)間還早),隨后再次發(fā)布上線,本次項(xiàng)目完成。待解決項(xiàng),如門店平均水平儀表盤和庫存指標(biāo),將在熟悉并修改庫存相關(guān)指標(biāo)后進(jìn)行。