![]()
想必大家已經聽說了,1 月 21 日,開源的可視化工具 Apache Superset 宣佈畢業併成爲 Apache 軟件基金會(ASF)的頂級項目(Top-Level Project)。
![]()
截至目前,Superset榮登Github熱榜Top10,並且Superset也迎來了v1.0.0大版本的更新。Github地址:
https://github.com/apache/superset
,有33000+ Star,小編曾經在阿里雲社區試用過Superset,本文將對Superset做一個全面的講解,看看它到底適用於哪些場景。
Superset簡介
Apache Superset 是一款現代化的開源數據工具,用於數據探索和數據可視化。它提供了簡單易用的無代碼可視化構建器和聲稱是最先進的 SQL 編輯器,用戶可以使用這些工具快速地構建數據儀表盤。
Apache Superset 將 SQL IDE、數據瀏覽工具、拖拽式儀表板編輯器和插件組合使用,以構建自定義的可視化效果,支持從許多關係數據庫和非關係數據庫中創建儀表板,這些數據庫包括 SQLite、MySQL,以及 Amazon Redshift、Google BigQuery、Snowflake、Oracle 數據庫、IBM DB2 和其他各種兼容的數據源,並且可以連接到 Apache Drill 和 Apache Druid。此外,Superset 還適用於雲原生場景和 Docker。
豐富的數據可視化集
易於使用的界面,用於瀏覽和可視化數據
創建和共享儀表板
與主要身份驗證提供程序(數據庫,OpenID,LDAP,OAuth和REMOTE_USER通過Flask AppBuilder集成)集成的企業就緒身份驗證
可擴展的高粒度安全性/權限模型,允許有關誰可以訪問單個要素和數據集的複雜規則
一個簡單的語義層,允許用戶通過定義哪些字段應顯示在哪些下拉列表中以及哪些聚合和功能度量可供用戶使用來控制如何在UI中顯示數據源
通過SQLAlchemy與大多數說SQL的RDBMS集成
以上那些都是廢話,老實說對開發人員最大的吸引力:支持的數據源足夠多,界面足夠花裏胡哨!
Superset豐富的數據源支持和圖表展示
![]()
![]()
上面展示了Superset支持的圖表類型的冰山一角,另外Superset深度集成了非常豐富的數據源:
![]()
這其中,包含了大數據領域常見的 Druid、ClickHouse、Presto等OLAP數據庫,這些數據庫都是大數據領域最經常應用的。
![]()
Superset極其簡單的安裝和配置
大家要特別注意,由於Superset是Python開發的,所以本地需要進行Python的環境安裝。另外,需要有pip這個包管理工具。這對Java爲主的大數據體系的程序員有一丟丟的挑戰,不過相信大家可以克服。
#安裝
pip install superset
#創建管理員用戶名和密碼
fabmanager create-admin --app superset
#初始化
superset db upgrade
#裝載樣例數據
superset load_examples
#創建默認角色和權限
superset init
#啓動
superset runserver
更推薦大家使用Docker Compose的方式安裝:
$ git clone https://github.com/apache/superset.git
$ cd superset
$ docker-compose up
然後就可以訪問本地的:
http://localhost:8088
進入到Superset的首頁了。
目前Superset幾乎支持了市面上主流的常用數據庫,我們可以對照官網的文檔安裝不同數據源所需要的依賴包。
![]()
![]()
![]()
你可以參考這裏:
https://superset.apache.org/docs/databases/installing-database-drivers#supported-databases-and-dependecies
。
鏈接PostgreSQL
我們本地使用PostgreSQL進行測試,首先要安裝psycopg2:
postgresql://<UserName>:<DBPassword>@<Database Host>/<Database Name>
選擇Source -> Databases,點擊加號新增數據源:
![]()
![]()
![]()
在進行這步操作之前,小編把測試數據導入到了Postgresql中,導入方法在這裏:
https://github.com/dylburger/noaa-ghcn-weather-data。
![]()
![]()
![]()
![]()
![]()
在分析頁面中,可以針對某一個表事先定義的時間字段、維度及指標字段進行數據探索分析,並可以選擇相應的圖表進行可視化展示。
![]()
這個做法Superset應該是參考了衆多中間件對數據列定義的方式,在此進行約束,哪些列可以進行聚合運算等等。
![]()
![]()
![]()
![]()
![]()
![]()
是不是非常騷氣。最後我們可以把多個圖表整合到Dashboards中。
![]()
Superset權限體系
Superset的權限體系是通過Flask AppBuilder (FAB)完成,Flask-AppBuilder是基於Flask實現的一個用於快速構建Web後臺管理系統的簡單的框架。
Superset附帶一組由Superset自己處理的角色。隨着Superset的發展,您可以假設這些角色將保持最新狀態。不建議您通過刪除或添加權限來以任何方式更改這些角色,因爲在您運行下一個超級集羣初始化命令時,這些角色將重新同步到其原始值。
Superset支持用戶自定義創建一個角色,例如:您可以創建一個角色Financial Analyst,該角色將由一組數據源(表)和/或數據庫組成。然後用戶將被授予Gamma,Financial Analyst,或者sql_lab角色都可以。
Superset的默認角色有:Admin、Alpha、Gamma、sql_lab、Public,:
管理員有所有的權利,其中包括授予或撤銷其他用戶和改變其他人的切片和儀表板的權利。
alpha可以訪問所有數據源,但不能授予或撤消其他用戶的訪問權限,並且他們也只能修改自己的數據。alpha用戶可以添加和修改數據源。
Gamma訪問有限。他們只能使用他們通過另一個補充角色訪問的數據源中的數據。他們只能訪問查看從他們有權訪問的數據源製作的切片和儀表板。目前,Gamma用戶無法更改或添加數據源。我們假設他們大多是內容消費者,雖然他們可以創建切片和儀表板。
還要注意,當Gamma用戶查看儀表板和切片列表視圖時,他們只會看到他們有權訪問的對象。
sql_lab角色用於授予需要訪問sql lab的用戶,而管理員用戶可以訪問所有的數據庫,默認情況下,Alpha和Gamma用戶需要一個數據庫的訪問權限。
使用感受
在數據可視化方向有很多與 Superset 類似的競品,比如國外知名的開源的有 Redash 、 Metabase,商業版的有Tableau。
整體從瞭解Superset的背景到使用過程,小編最大的感受是:
1. 效率高、Developer Friendly(對開發者友好),適合那些需要快速支持業務的場景,尤其是BI人員看板需求。
2. 感覺這是一個程序員主導的產品,基於Python開發,對於使用者來說需要有Python技術棧才能進行二次開發。
3. 權限體系小規模使用還算方便,大規模使用需要很高的配置和運維成本。
本文分享自微信公衆號 - 大數據技術與架構(import_bigdata)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。