1. 程式人生 > >Superset 資料分析平臺搭建及使用 2

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 LabAllow Run Sync,其餘預設即可。

2.4 SQL 工具箱

Superset 頂部的最後一個選單為 SQL 工具箱,它提供了針對資料庫的 SQL 查詢功能。

此處輸入圖片的描述

三、實驗總結

Superset 適合與個人或中小企業內部使用的 BI 工具。相比於成熟的商業軟體,它開源免費,可以自己根據需求進一步 DIY。基於 Web 的形式非常方便,還可以多使用者協同使用。

當然,Superset 也有一些缺點。多標之間的聯動操作、過濾條件都比較薄弱,更新迭代慢,這些這都不及商業軟體。