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