因為文章內容太長了,防止大家看的疲憊,所以這篇文章分為上下集。上半部分,會講一下如何安裝superset mac docker版,以及基本介紹superset的功能。下半集教大家如何用superset製作一個疫情地圖。
在前言之前,我們先看一下效果吧。
數據可視化話可以說是非常實用的一個技能,無論是Excel圖標,Python可視化,都可以讓大量的數據變得不是那麼枯燥,讓人一眼就能看出數據所反應的問題。如果你擅長vba,即使用Excel也能做出非常有用的動態可視化圖表,相比來說Python的確更適合用來數據可視化。
基於我的淺薄理解,數據可視化就是Business Intelligence, 常見的商業BI工具包括Tableau,Power BI等等。而有些公司則自己開發BI工具,比如我們要講的Superset,就是Airbnb的工具。
BI工具的Dashboard功能可以方便我們動態的查看想要的細節,比如說今年疫情新聞的丁香醫生疫情地圖,從地圖上,我們可以看出每個省份的疫情狀況,點擊省份,則又可以查看市級情況,只要Dashboard做好了設定,可以一層一層的深入了解。
商用BI dashboard就是這麼一個設置好了層級,可以逐步分析發現問題的平臺。企業一般根據需求預設及格Dashboard,連接資料庫,實時更新數據,尋找問題。
數據可視化也好,數據分析也好,在商業環境下,其實更多是配合需求講出一個故事來。根據需求,可以迴避不好的數據,或者編造一個自圓其說不易戳穿且有數據為證的謊言。此處推薦我正在看的一本書《簡單統計學:如何識別一本正經的胡說八道》,你可在學習如何識別偽數據分析的同時掌握一下如何一本正經胡說八道的技能,並反應到ppt當中,我相信對於職業生涯還是很有幫助的。
那麼我為什麼不用Python呢,額,是因為我自學的水平有點爛,所以挑了這個自帶了很多可視化效果的Superset,你也可以選擇其他的開源數據平臺,或是試用Tableau
Superset自帶了近二三十種可視化模板,可以根據需求自由調配。通過模板組合稱dashboard即可實時使用。
Superset的層級結構如下:第一個單位是table(導入database並不能直接實用,你只能每次使用一張表,當然還有一個騷操作,你可以在SQL Lab功能中篩選出多張表之間的數據生成你需要的表)
第二個單位是charts(以前叫slices) (Charts就是你根據單個table生成的視圖模板,每次只能生成一個,你可以用同一張表生成不同的charts)
第三個單位就是dashboard了 (由Charts匯聚而成,你可以添加篩選工具,細化你需要了解的內容)
希望這些內容能讓你了解到數據可視化,BI以及superset的一些基本知識,我的理解如果有出錯的地方,也歡迎各位大佬指正。
那接下來,就從目錄開始,安裝並開始基本使用。
目錄macOS docker
Superset安裝
創建admin帳號
基本使用(功能介紹)
基本使用-csv上傳
基本使用-資料庫連接
案例-新冠肺炎可視化分析設置
基本使用-數據清理及格式
基本使用-可視化
基本使用-Dashboard
macOS Docker關於如何使用macOS作為伺服器,請參考第一篇公眾號文章
大部分功能都能在mac docker上很好的運行,但是純host模式的網絡模式鏡像不適用於mac docker。如果你已經有了基本的docker使用經驗,可以直接開始了,當然,沒有相關經驗,也可以從下載一個dmg開始,Mac Docker下載。因為我會提供最直接的代碼供大家複製黏貼。
Superset安裝首先交代一下,我使用的是Dockerhub上的現成鏡像amancevice/superset,點擊連結可以查看原文。
以下內容全部在termianl中操作
拉取鏡像:
docker pull amancevice/superset
需要注意下面的命令,『 -v /你的/資料庫儲/路徑 』,這句請修改為你本機資料庫存儲路徑,或者你可以直接將容器完全連通本機全盤;另外如果需要換埠,請修改『 -p 8021 』,創建容器:
docker run -d --name superset -p 8021:8088 -v /你的/資料庫儲/路徑:/home/superset amancevice/superset
至此,Superset已完成安裝,需要注意,此時你雖然可以訪問192.xx.xx.xx:8021了,但你並沒有用戶名和密碼。
創建admin帳號以下內容全部在termianl種操作
創建admin,請直接輸入一下命令:
docker exec -it 容器id fabmanager create-admin --app superset
系統會提示你創建密碼,兩次確認即可。
我在windows上配置完密碼之後,還初始化了superset自帶的世界人口資料庫案例,鑑於我之後會以一個實例來講,我就不多次一舉了,當然,如果你想看看,請執行以下命令:
docker exec -it 容器id superset db upgrade
至此,你可以打開並登陸Superset了
基本使用(功能介紹)Superset畢竟是Airbnb這麼一個商業公司使用的平臺。所以在權限這塊還是考慮的算是挺全的,雖然沒有SSO等複雜對接。但他的權限組成方式是類似於SAP的角色代碼(由302個基本權限 組成角色權限 再分配給用戶),還包括一些簡單的日誌審計功能。個人使用無所謂了,對於團隊或公司使用,不同職能查看不同的數據,不同的dashboard,團隊使用是夠了,大型公司大量Dashboard及數據接入是否能夠正常運行,我就不確定了。
包含了dashboar樣式的導入,css樣式的自定義等,這方面我也不是很懂了,主要是界面查看的自定義。我就不做解釋了。
這個比較重要,是所有數據連接的關鍵點, 你有兩個選擇,連接資料庫,或者是上傳CSV,這兩個內容會在後面講。 table選項則是我們進去自定義數據分析方式的入口,主要就是這個。至於Druid,是海量數據下進行交互式實時數據展現的 BI/OLAP 工具(我也不懂,懵逼,我還沒用到這個地步)。
Charts存儲著我們對原始數據生成的一些展示方式,就像這樣。我們可以選擇不同的展示方式,比如下圖種的時間折線圖。再通俗點,就是先篩選excel的數據,再做了個折線圖。使用Superset,你可以擁有很多看起來更高大上的,比如蛇形圖,比如城市熱點圖等等。
BI,或者說是數據分析的精華,由不同的Charts組成,根據不同的數據類型設計不同的Charts,然後合併到一起,更方便的從多個緯度查看數據情況。這裡就放一張superset的官宣圖吧。
Superset一直被詬病的一點是只能使用單張表格的數據,excel都能多表vlookup呢,你一個大數據平臺居然沒這功能。無意囉嗦兩句,superset本身就是作為一個公司內部某部門的需求開發出來的,人家當時的需求分析的數據可能就只是在某個資料庫的某一張表裡。現在開源以後有了SQL Lab,幹嘛呢?需要跨表跨資料庫?可以曲線救國,從多張表中用sql select出你需要的數據,生成一張新的表,用excel的話來說,就是vlookup出多張表的數據,然後創建一個新的表,用這張新表去做分析。
Superset的基本功能介紹先到這裡,接下來,開始數據導入。
基本使用-csv上傳我會講到如何去關聯資料庫,但對於初學者,或者不擅長資料庫的人來說(妄加斷言,大部分真正有BI需求的人,幾乎都不懂資料庫)
所以,我們從簡單的CSV上傳開始說吧。也沒那麼簡單,一般中文系統中文excel下導出的csv往往編碼不對,所以,你無法成功的向Superset中導入csv。
數據清理,這個非常重要,擅長使用sql語句清理資料庫的,相信大部分人都做不到,所以,在學習過程中,可以選擇excel整理完成後到處 utf-8格式的csv
macOS 導出 utf-8 csv,非常簡單,另存為 - 格式 - csv(utf-8)
Windows,請參考百度經驗 , 希望沒有ETC跑出來指責我為什麼不用高貴的Google而是百度。
好了,點擊upload,完成我們的上傳。接下來就可以去Sources - Tables當中折騰我們的數據了。
基本使用-資料庫連接資料庫連接,在Sources - Databases當中,選擇添加,以SQLAlchemy URI關聯資料庫。作為使用Superset自學數據可視話的我來說。我也就用了一個sqlite嘗試了,更多的資料庫連接方式,請查看SQLAlchemy指引
sqlite:////home/superset/home-assistant_v2.db
在資料庫連接過程中,我建議你勾選allow csv upload,其餘不用設置(應該說是按需設置)。如下圖:
那在下一期的文章,我將教大家利用現有數據製作疫情地圖網站。