您當前的位置:首頁 > 書法

如何優雅地使用Tableau Prep Builder?

作者:由 喜樂君 發表于 書法時間:2019-07-16

Tableau Prep正式釋出於2018年4月,當月我就在工作環境中使用它,一直到年底才有了中文版本。那時恰逢因為Desktop無法勝任複雜的資料清理,我感到無能為力放棄一小段時間之際,因此可以說Tableau Prep在最關鍵的時候,讓我重拾了對“大資料視覺化分析”的資訊,之後順利推廣到公司的IT和大資料部門。

一年三個月之後的今天,我給很多人反覆推薦了Prep的強大和魅力,自己也幾乎逢專案必用Prep開啟分析之旅。這幾天為一家上市醫藥公司做了三天的高強度培訓,按照朋友@紀楊老師的建議,我把此前最後講解的Prep穿插到了Desktop視覺化分析之前,後來感覺效果確實不錯。Prep緩解了大家“資料整理恐懼症”的壓力,從而為Desktop的視覺化分析提前清理了道路。

晚上又回答了上海一家客戶的Prep問題諮詢,我想有必要總結自己一年多的使用經歷,為正在使用和準備使用prep的朋友撥開前面的不確定和雲霧。

說明:2019年開始,Tableau Prep調整為兩個產品分支,Prep Builder複雜前端的資料視覺化整理和輸出,Prep Conductor負責Server端的資料流管理和執行部分。

一、何時使用Tableau Prep

可以說,Tableau Desktop中的資料整理功能,Prep全部都能完成,而且往往效果會更好;反之則不行。在以下的情形下,推薦優先甚至只能使用Tableau Prep整理:

1、資料整理過程,需要對資料做深度處理,比如非常多的錯誤值需要清理,大量的0值或者null需要排除——關鍵是,所需要清理的資料量非常大時。

這些功能desktop亦能完成,但是Prep更有效率,可以避免大量的清理運算對desktop視覺化造成的效能壓力,體現到Server端就是提高了資料訪問者的流暢性。昨天在客戶那裡,500M的Excel表格,12列轉置後相當於增加了11倍資料,然後清除0值,輸出的hyper檔案卻只有80M,輸出耗時大約5分鐘。如果同樣的操作放在desktop中完成,再發布到Server中提供共享訪問,因為資料清理所帶來的時間浪費,隨著訪問使用者的增加,可以理解為是倍數級別的。

謹記:從效率和效能方面看,區分資料整理和資料視覺化兩個環節,幾乎總是有意義的。

2、為了提高視覺化的效能,需要大幅度調整資料來源的聚合級別並選擇部分資料欄位

在這裡,Prep擔當了搭建臨時的資料倉庫(或者理解為資料快取)的作用。我們知道資料是有詳細級別的,不是每次資料聚合(比如過去各月各區域貢獻的銷售額)都要從最細的資料粒度來計算求和,這樣會影響資料載入和分析效能。

比如我們要做零售終端的貢獻分析,我們的很多報表都可以從一個臨時表來生成——各零售終端在每個月在每個商品的貢獻,我們可以把這個詳細級別標記為:終端*月份*商品。為此,我們可以使用prep的聚合功能,提前建立一個臨時聚合表,把最細的資料詳細級別資料(比如:終端*精確時間*商品*批次*會員)提前聚合到想要的級別(精確時間——> 月份,不保留會員和批次資訊)。這樣每個月的資料量很可能壓縮到之前的1/10,並且可以刪除不用的無關欄位,這樣的資料會非常顯著地提高資料視覺化過程中的效率。

3、涉及到多次資料連線,並且是在不同階段做資料連線

資料聯結是資料整理必備的技能,簡單的聯結可以直接在desktop中完成,但是如果要多個數據源多次聯結,特別是在一個數據源整理的不同階段做聯結,desktop就束手無策了,這正是Prep大放光彩的時刻。

Prep在此方面有幾個地方絕對讓人過目不讓:

直觀檢視連線結果,包括各部分的連線記錄數和連線明細;並可基於結果立刻整理;

透過拖拽輕鬆實現多次連線,更有效率。

連線和整理過程透過流程儲存,過程可以重複使用。

如何優雅地使用Tableau Prep Builder?

4、需要使用行轉列功能,或者列轉行兩次及以上(巢狀表頭)

資料整理階段總會遇到很多不符合“資料庫正規化”的資料,這需要結構上的整理,比如把很多的列轉為行顯示——特別是所謂的“寬表”,經常用一列代表一個月份或者一個同類的主題。

而在少數情況下,我們還需要行轉為列——主要是報表展示的需要。Desktop在資料來源的層面僅能執行一次列轉行操作,而多次轉置和行轉列是Prep獨有的功能,加上Prep可以在一個流程的多個地方執行轉置,在轉置方面就更加強大。

二、如何優雅的使用Tableau Prep

作為Prep最早的一批粉絲和深度使用者,說明一下幾個關鍵點。

1、 把篩選操作儘可能提前

在任何時候,減少資料的大小都是有意義的。在新版本的Tableau Prep中,進一步增加了“資料篩選”的功能,可以直接透過計算欄位保留資料,或者透過多選輕鬆清除資料。(Tableau Prep Builder 2019。2。3超級棒新功能 )

不過這裡提供一個預防性的建議:

儘可能不要在資料來源的層面隱藏資料欄位,而是放到下一次清理環節中使用“移除”欄位來代替。

為什麼呢?我和我的客戶都遇到過類似的情境:可能是bug或者資料來源支援的問題,當你的資料來源欄位增加時,Prep往往不能自動加入這些新欄位,相當於只在原來的框架中增量更新,不會自動擴充套件欄位的多少。這種情況下,重新整理資料來源無效果,只能重建資料來源連線,重建的代價就是第一個環節的設定會消失,此前手動隱藏的欄位就會重現天日,不得不重新點選一遍。

2、多使用資料聚合,分層看需求,分層準備資料,養成建立資料倉庫的習慣

資料聚合是提高效能的核心操作,養成根據分析需要建立資料倉庫的概念,會幫助分析師理清資料的層次性、提高視覺化過程的效率、減少視覺化過程中的複雜運算(LODs)。這也是tableau Prep資料整理的核心落腳點。

“資料是有層次性的”,每個層次代表的是一種視角、一種高度和一種業務場景。資料視覺化幫助我們建立全覽視角,資料聚合幫助我們從資料層面清晰化。完美搭配~

如何優雅地使用Tableau Prep Builder?

3、建議:每個流程只做一種操作及其相關操作

雖然Tableau倡導“在任何步驟中應用清理操作”,但是我想同時給出的建議是

“不要濫用Tableau軟體的易用性”,否則只會增加混亂

。從設計的角度看,從使用的經驗總結看,儘可能只在一個環節執行一種操作及其緊密關聯的整理。比如資料轉置環節,那就僅僅做轉置和轉置後的欄位重新命名;資料聚合環節,僅僅做資料聚合,除非是聚合的需要,不要在這個環節更改欄位名稱。

Prep的功能只有幾大類:資料整理、資料連線Join、資料並集Union、資料聚合、資料轉置,努力讓每個環節都具有實質性的意義。

如何優雅地使用Tableau Prep Builder?

愛因斯坦說,“凡事要追求簡單,但不要過於簡單”,這句話可以作為資料清理環節的理念。

4、使用顏色和說明,記錄流程,便於覆盤

在prep中,有幾個特別主要的指示牌:流程標題、說明和顏色。在資料連線、資料並集中,顏色是最好的指示牌,我們甚至不需要記住兩側資料的名字了。

一定要善加使用Prep的流程標題和說明,於己於人,都是好處多多。每個流程的“名稱”可以說明重點,而“說明”則闡述製作過程和注意點。

愛上PREP,整個世界都會美好。

Jul 14, 2019 from石家莊to山東

Jul 16, 2019 update