前不久,一位準備入職阿里的學弟問我,他要做電商數據分析,電商有龐雜的標簽、模型、數據和業務邏輯,菜鳥應該要具備什么樣的分析能力啊?
我看了他的崗位職責,主要是負責經營決策支持、專題分析和數據看板搭建,對代碼算法涉及很少,更適合用BI工具來構建業務-數據-洞察的閉環場景。
BI工具是一類專注于數據驅動業務的分析工具,集合了模型開發、可視化、報表設計、實時分析、匯報展示等功能,部分還涉及到數倉、ETL,通俗點說就是數據“變現”的一站式服務。
目前市場上可選擇的BI很多,像Tableau、Power BI、FineBI、永洪BI、網易有數、Superset等都是較受歡迎的BI產品。
其中Tableau、Power BI是國外BI,也算家喻戶曉了,FineBI等是國內的后起之秀,Superset是Airbnb的開源BI。
如何選一個合適的BI分析工具?考慮到市場普及度和學習性價比,我覺得Tableau、Power BI、FineBI這三款主流BI應用比較值得花心思去學習,工作中用得更多。
結合我之前使用的心得,我又特地花了大半天去評測了這三款BI,通過搭建一個完整的儀表板,來比較易用性、數據源支持、分析建模、可視化搭建、分享匯報、市場普及度等各方面指標。
1、認識和使用BI數據工具
首先簡單介紹下出場的三位BI選手。
- Tableau:
以可視化著稱的BI領域老大哥,看板制作非常精美。它誕生于斯坦福大學,后來被saleforce收購,聽說現在在國內由阿里代理提供服務。
- PowerBI:
微軟的BI產品,數據處理和建模能力非常強大,當然DAX函數也非常難學。基于Excel生態,PowerBI的打通性比較好,積累了大量用戶。
- FineBI:
能力全面,容易上手,可以在瀏覽器上進行自助分析。比較了解國內用戶使用習慣,更適合國內企業的數據應用環境,聽說FineBI的國內市占率排第一。
現在FineBI更新到了6.0版本,有許多新的功能,比如DEF函數、多維智能分析、協同編輯、血緣分析等。總得來說,不管從分析能力、便捷程度、協同合作等都有了很大的進步,對個人自助分析更加友好。
對很多初學者來說,以為BI就像Excel一樣,功能就是做做表畫畫圖。
其實不然,使用BI工具有一套完善的流程,目地是構建一套數據看板,就像產品開發一樣。
BI和Excel最大的不同在于,Excel是個人的數據處理表格,適用于小規模數據的加載、分析、展示;而BI是基于數據庫的一站式數據-業務分析平臺,偏向于業務信息挖掘。
我把BI開發過程分為認識數據、連接數據、處理數據、分析數據、可視化表達、看板制作,共6大步。
最終目的是實現對業務的支持、洞察、驅動,這是數據分析的核心,不然前面的工作都是花架子。
比如說我在FineBi上看到的一個例子,基于電商超市業務搭建的配送分析、商品分析、利潤分析、退貨分析、客戶分析全場景看板,可以及時發現經營數據變化,快速制定決策。
作者基于電商超市業務繪制了BI系統架構,然后針對其中每一個業務場景開發數據指標和報表。
我覺得這就是能為業務帶來價值的BI分析,上面只是案例之一,大家可以去FineBI文檔看詳細資料。
2、如何連接數據源
BI工具基本上都支持多維度的數據源,比如Excel、文本數據、數據庫、大數據、云平臺等。
-
Excel就是大家最常用的xlsx、xls文件,估計也是個人連接數據最多的數據源。
-
文本數據源包括CSV、TXT、JSON、XML等。
-
數據庫包括MySQL、Oracle、SQLServer、Access、MongoDB等,既有關系型數據庫,也有非關系型數據庫。
-
大數據主要是Spark、Hadoop、Presto等。
-
云平臺支持像阿里云、華為云、騰訊云、AWS等各種云數據平臺。
針對上述常規的數據源,Tableau、Power BI、FineBI都會支持。
相比較Power BI,Tableau和FineBI支持的數據源更加豐富,比如JDBC驅動(阿里云Maxcomputer)、SAP BW、Essbase等。
FineBI對國內云數據的支持更加到位,還支持一些Java API,可以靈活地進行數據連接。
三個BI產品連接數據源的方法都很簡單,且操作數據庫方法也類似。
-
Tableau
-
PowerBI
-
FineBI
以FineBI為例連接MySQL
具體的連接方法可以查看相應BI文檔
https://help.fanruan.com/finebi/doc-view-94.html
https://learn.microsoft.com/zh-cn/power-bi/connect-data/desktop-quickstart-connect-to-data
https://help.tableau.com/current/guides/get-started-tutorial/zh-cn/get-started-tutorial-connect.htm
3、如何處理數據
數據導入完成后就需要對數據進行處理,雖然BI并不承擔ETL功能,也很難進行復雜的數據處理,但是像篩選、過濾、分組、排序、合并、類型轉換等基礎功能還是要具備的。
數據處理是BI分析的重中之重,需要重視起來。因為建模分析、可視化表達都需要進行數據處理,很少有現成的數據讓你用。
Tableau、Power BI、FineBI在基礎的數據處理能力上表現都很好,主要差異體現在交互界面的易用性上。
Tableau有專門的Prep工具用對數據進行ETL,也可以在Desktop上進行簡單的數據處理。
PowerBI則接近Excel的界面,通過Power Query進行數據調整轉換,需要一定的學習成本。
FineBI數據處理是這三者中最容易上手的,通過完善的數據編輯功能,讓分析師自己能輕松處理清洗數據。
編輯數據可實現新增列,分組統計,過濾,排序, 上下合并,左右合并、自循環列、行列轉換等功能,而且界面比較簡潔,一目了然。
比如說實現分組功能,通過菜單的分組按鈕可實現自定義分組。
PowerBI和Tableau很多基礎的數據處理都需要DAX和LOD函數實現,但是FineBI提供的編輯數據功能能覆蓋大部分需求,更容易入手。
當然FineBI也提供了大量的函數用于復雜的數據處理,能滿足各種分析需求。
我對比了下FineBI和Tableau函數,其實FineBI在函數的使用上反而更簡潔,而且FineBI最新增加的DEF函數也可以處理更加復雜的分析。
DEF函數的語法是:
def(指標, [維度1,維度2,...], [過濾條件1, 過濾條件2,...])
它以函數中維度作為分組、函數中過濾條件進行過濾,實現對指標的計算,在組件的計算中使用。
比如說針對以下表,設計相應的計算。
該表是分城市不同車型的銷售情況。
案例一:計算不同車型A城市的總銷售額,不區分月份。
使用FineBI,新建計算字段,DEF公式可以輸入:
DEF(SUM_AGG(${銷量}*${單價}),[${車型},${城市}],[${城市}="A"])
只需一行代碼便可以計算出A城市分車型銷售額,非常簡單。
因為DEF是定義靜態指標,所以只規定計算了城市、車型維度的銷售額,不支持去鉆取計算分月匯總。
這樣的計算在Tableau需要用到if判斷函數和FIXED表達式:
if [城市]='A' then { FIXED [城市],[車型]:sum([單價]*[銷量])} end
這一點上FineBI和Tableau代碼復雜度差不多,但DEF似乎更加簡潔,它把判斷語句也集成到DEF中。
案例二:計算A城市的銷售額,可動態匯總車型、月份等。
這里和案例一的區別在于,案例二不光只匯總城市、車型字段,而且根據視圖情況,動態匯總其他類別字段。
在FineBI中需要用DEFADD函數,可以定義動態指標,輸入:
DEF_ADD(SUM_AGG(${銷量}*${單價}),[${城市}],[${城市}="A"])
對于動態指標,在FineBI中能支持鉆取計算,選擇區域維度中的±即可實現鉆取聚合。
這一點是非常強大的,我們可以通過自定義維度+動態維度的結合,能實現任何邏輯的聚合。
Tableau實現該功能則通過if判斷和INCLUDE表達式:
if [城市]='A' then { INCLUDE [城市]:sum([單價]*[銷量])} end
除此之外,FineBI中還有個動態函數DEF_SUB,即排除某特定維度的動態聚合。
這個在Tableau對應的表達式是EXCLUDE,使用方法和上面案例一致。
綜上對于復雜函數計算,FineBI和Tableau都有相應的解決方案,且使用復雜度相差無幾,FineBI把判斷語句集成到DEF中則更為簡潔易懂。
4、如何分析數據
當數據按照需求處理完成后,就需要進行數據分析來提取關鍵信息。
BI中的分析能力主要指統計計算、OLAP、趨勢判斷、預測建模、對外接口等。
統計計算很好理解,就是數據的聚合、同環比、排序、累計等等。
BI工具都會提供基礎的統計計算快捷方式,覆蓋常用的需求。
-
Tableau
-
FineBI
OLAP是聯機處理分析,主要包括鉆取、分組、透視、聯動、切片、切塊等分析操作,是BI的主要功能。
Tableau可以連接到OLAP多維數據集,以便在最深層次上探索數據。向下鉆取、數據過濾和自動生成時間序列功能可作為深入了解這些多維數據集以及訪問數據洞察所需的工具。
PowerBI 通過SQL服務器連接到OLAP數據集,它提供了要在報告中顯示的數據度量列表。在創建報告時,所選維度和可視化選項一起顯示。
FineBI也 提供了多種OLAP 功能:數據鉆取、跳轉、聯動、使用過濾組件、Tab組件、文本組件、圖片組件、Web組件、參數。
從計算能力來看,Tableau更勝一籌,但PowerBI、FineBI也沒什么大的短板,聽說FineBI的Spider 引擎很快,OLAP組件也更加多元。
預測建模是針對歷史數據的模型分析,比如回歸、分類、聚類等,這是BI的一大亮點。
基本上Tableau、PowerBI、FineBI中都有主流的預測函數,比如Tableau中的MODEL_QUANTILE、MODEL_PERCENTILE。
另外還支持連接Python、R進行建模分析,FineBI、PowerBI比較容易實現,Tableau需要安裝插件麻煩一些。
除了預測建模,FineBI具備優勢的一點在于集成了很多商業模型,可以用數據分析中,比如RFM、AARRR等。
如下是在FineBI中搭建RFM模型:
綜上,Tableau、PowerBI、FineBI在分析能力上不相伯仲,可能Tableau、PowerBI對復雜模型支持和軟件性能上稍領先,但是FineBI集成了很多拿來即用的模型,而且對現實工作更具指導意義。
5、可視化和看板制作
可視化表達就是將數據變成能說話的圖表,讓觀眾一目了然,知道你用數據表達了什么觀點。
BI制作看板的步驟是先制作單個圖表,然后拼接成看板。
可視化遵循的邏輯層次是:工作表——看板。最基礎的單元是工作表,工作表不同于excel的work sheet,而是相當于excel上的一個圖,或BI上的一個視覺對象,是最小的可視化單元(文字、圖片除外)。
第二級是看板,看板是多個工作表在同一畫布上的集合。看板包括圖表、表格、組件、文字等,通過鉆取/聯動/篩選的操作對數據進行主題級別的分析。
前面我們也說過,Tableau可視化能力最強,圖表也更美觀。其圖表配色、結構、渲染非常適合商業分析,小白也能做出高大上的看板。
PowerBI比較微軟風,說不上好看,但中規中矩,現在也在慢慢變好。
要說國內大屏,不要錯過FineBI,你見過所有的看板、大屏、報告,FineBI都能搞定。
而且FineBI也能輕松搞定分析報告:
從3個BI的可視化組件來看,基本都能完成大多數可視化圖表。
- Tableau
- PowerBI
- FineBI
從圖表豐富度看,Tableau相對最多,FineBI次之,PowerBI原生圖表差一些,但有插件補充。
FineBI和Tableau的圖表搭建都相對簡易,都是基于圖形語法(The Grammar Of Graphics)設計,以“形狀“和對應的“顏色“,“大小“,“提示“,“標簽“等屬性進行圖表類型替代。
以FineBI為例 ,用戶可在 圖形屬性、圖形組件樣式 中設置圖表的顏色、標簽、圖例、網格線、背景等屬性。
圖表組件存在多個指標字段時,每個指標字段的圖形屬性是可以單獨設置的。
小結
對比Tableau、PowerBI、FineBI三款主流BI工具,有以下幾點:
Tableau更加適合對可視化要求較高的專業數據分析師,因為其更靈活,適合做數據探索。但是價格較貴,操作更符合國外用戶習慣,一些布局調整不夠友好。
PowerBI功能上面還是很強大的。可以連接的數據源比較豐富,數據分析建模能力也很強大。不過界面比較傳統,用起來不熟悉的人稍微有點費勁,學習成本會比較高。
FineBI非常適合企業搭建業務報告和看板,輕松制作和分享管理,而且性能速度、建模能力、可視化能力、服務能力都相對較強。
我現在用的最多的是FineBI和Tableau,公司和個人大大小小的看板、報告都是基于FineBI進行搭建,基于其成熟的組件進行BI開發,省了很多事。Tableau則會用來做一些可視化設計的工作。