Superset 資料分析平臺搭建及使用 2
Superset 資料分析平臺使用
一、實驗介紹
1.1 實驗內容
Superset 是 Airbnb 開源的資料分析與視覺化平臺,同時也是由 Python 語言構建的輕量級 BI 系統。Superset 可實現對 TB 量級資料進行處理,相容常見的數十種關係或非關係型資料庫,並在內部實現 SQL 編輯查詢等操作。除此之外,基於 Web 服務的 Superset 可實現多使用者協使用,並可針對不同角色進行許可權管理。Superset 如今已歸屬於 Apache 孵化專案,並被 Yahoo,豆瓣等國內外知名公司使用。
1.2 實驗知識點
- Superset 平臺使用
1.3 實驗環境
- python2.7
- Xfce 終端
1.4 適合人群
本課程難度為一般,屬於初級級別課程,適合具有 Python 基礎,並對資料分析與視覺化感興趣的使用者。
二、Superset 簡明教程
2.1 Dashboards 看板
當我們登陸 Superset 之後,預設呈現的是看板介面。看板是許多 BI 類工具的必要元素之一,它的作用是將不同型別的圖表平鋪集中呈現,這些圖表甚至可以由不同資料表繪製而來。看板所達到的效果也是顯而易見的。
Superset 提供預設提供了 3 個示例看板,分別是:Misc Charts、Birth、World’s Bank Data。我們可以通過下面的動圖看到,它集中顯示了世界人口變化的一些資料圖表。其中包含地圖樣式、餅狀圖、散點圖、柱狀圖、詞圖等。
看板中的圖表並不是靜態的,它可以實隨著資料庫的變化時重新整理。你可以隨意組合、拖動、拼接不同型別的圖表。圖表是動態可互動。例如圖中所示,當我們在 World’s Bank Data 看板中選擇特定地區時,看板中的所有圖表都會重新整理到選定地區的資料。
2.2 Slice 切片
上面,我們介紹了看板,而看板中的圖表均是通過 Slice 切片工具繪製。你可以通過頂部選單欄進入到切片。
切片,實際上就是抽取整個資料庫中的特定一塊資料,然後針對這塊資料進行繪圖的過程。通過對資料庫切片,我們就可以用不同型別的圖表繪製不同維度的資料,從而達到對整個資料集的透視效果。
你可以通過左上角的 + 號新建一個切片。進入之後,需要選取資料表、選取繪製的圖型別。介面的下方,是針對資料的一些選項。通過不同的篩選條件,將需求繪製出來。
Superset 目前支援繪製 30 多種不同型別的圖表,它們如下圖所示。其中,Sankey,Chord Diagram,Word Cloud 等樣式的圖表都非常不錯。
2.2 Sources 資料來源
Slice 切片中使用到的資料由 Superset 資料來源提供。Superset 資料來源實際上就是連線本地資料庫。
Superset 安裝完成之後,就可以直接連線 SQLite 資料庫。但同時也支援連線常見的資料庫型別,不過需要安裝依賴。相關資料庫安裝命令如下:
# MySQL 資料庫pip install mysqlclient# Postgres 資料庫pip install psycopg2# Presto 資料庫pip install pyhive# Oracle 資料庫pip install cx_Oracle# Redshift 資料庫pip install sqlalchemy-redshift# MSSQL 資料庫pip install pymssql# Impala 資料庫pip install impyla# SparkSQL 資料庫pip install pyhive# Greenplum 資料庫pip install psycopg2# Athena 資料庫pip install "PyAthenaJDBC>1.0.9"# Vertica 資料庫pip install sqlalchemy-vertica-python# ClickHouse 資料庫pip install sqlalchemy-clickhouse
Superset 使用了 SQLAlchemy,使得連線資料庫變得非常簡單。SQLAlchemy 是 Python 語言下的一款開源軟體,它提供了 SQL 工具包及物件關係對映工具。
下面,我們就嘗試連線一個數據庫,首先你可以先通過下面命令下載 SQLite 資料庫檔案。示例資料來源於 清華大學開放中文詞庫。
wget http://labfile.oss.aliyuncs.com/courses/919/THUOCL_IT.sqlite
然後,我們點選頂部資料庫選單,然後通過 + 新建連線。
需要填寫資料庫名稱,然後重點是 SQLAlchemy URI
。這裡是 SQLite 資料庫,在 Linux 下它的連結如下:
sqlite:////home/shiyanlou/THUOCL_IT.sqlite
連結以 sqlite://
開頭,後面是資料檔案的絕對路徑 //home/shiyanlou/THUOCL_IT.sqlite
。
不同型別資料庫的 SQLAlchemy URI
開頭部分不一致,具體如下:
# MySQL 資料庫mysql://# Postgres 資料庫postgresql+psycopg2://# Presto 資料庫presto://# Oracle 資料庫oracle://# sqlite 資料庫sqlite://# Redshift 資料庫postgresql+psycopg2://# MSSQL 資料庫mssql://# Impala 資料庫impala://# SparkSQL 資料庫jdbc+hive://# Greenplum 資料庫postgresql+psycopg2://# Athena 資料庫awsathena+jdbc://# Vertica 資料庫vertica+vertica_python://# ClickHouse 資料庫clickhouse://
填寫完 SQLAlchemy URI
之後,可以點選 Test Connection 測試連線是否正確。如果成功連結,頁面下方會顯示出該資料庫對應的表。頁面下方的選項,推薦Expose in SQL Lab
和Allow Run Sync
打√
,其餘預設即可。
2.4 SQL 工具箱
Superset 頂部的最後一個選單為 SQL 工具箱,它提供了針對資料庫的 SQL 查詢功能。
三、實驗總結
Superset 適合與個人或中小企業內部使用的 BI 工具。相比於成熟的商業軟體,它開源免費,可以自己根據需求進一步 DIY。基於 Web 的形式非常方便,還可以多使用者協同使用。
當然,Superset 也有一些缺點。多標之間的聯動操作、過濾條件都比較薄弱,更新迭代慢,這些這都不及商業軟體。