Apache老母雞又下蛋?一文俯瞰Apache Superset

Apache老母雞又下蛋?一文俯瞰Apache Superset

大數據技術與架構 大數據技術與架構 git

Apache老母雞又下蛋?一文俯瞰Apache Superset

想必你們已經據說了,1 月 21 日,開源的可視化工具 Apache Superset 宣佈畢業併成爲 Apache 軟件基金會(ASF)的頂級項目(Top-Level Project)。
Apache老母雞又下蛋?一文俯瞰Apache Superset
截至目前,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。
主要具備如下功能特性:github

  • 豐富的數據可視化集
  • 易於使用的界面,用於瀏覽和可視化數據
  • 建立和共享儀表板
  • 與主要身份驗證提供程序(數據庫,OpenID,LDAP,OAuth和REMOTE_USER經過Flask AppBuilder集成)集成的企業就緒身份驗證
  • 可擴展的高粒度安全性/權限模型,容許有關誰能夠訪問單個要素和數據集的複雜規則
  • 一個簡單的語義層,容許用戶經過定義哪些字段應顯示在哪些下拉列表中以及哪些聚合和功能度量可供用戶使用來控制如何在UI中顯示數據源
  • 經過SQLAlchemy與大多數說SQL的RDBMS集成
    以上那些都是廢話,老實說對開發人員最大的吸引力:支持的數據源足夠多,界面足夠花裏胡哨!

    Superset豐富的數據源支持和圖表展現

Apache老母雞又下蛋?一文俯瞰Apache Superset
Apache老母雞又下蛋?一文俯瞰Apache Superset
上面展現了Superset支持的圖表類型的冰山一角,另外Superset深度集成了很是豐富的數據源:
Apache老母雞又下蛋?一文俯瞰Apache Superset
這其中,包含了大數據領域常見的 Druid、ClickHouse、Presto等OLAP數據庫,這些數據庫都是大數據領域最常常應用的。
你還能夠經過直接寫 SQL 來展現數據:
Apache老母雞又下蛋?一文俯瞰Apache Supersetsql

Superset極其簡單的安裝和配置

你們要特別注意,因爲Superset是Python開發的,因此本地須要進行Python的環境安裝。另外,須要有pip這個包管理工具。這對Java爲主的大數據體系的程序員有一丟丟的挑戰,不過相信你們能夠克服。
因爲小編只是進行測試,我本地直接使用pip安裝:docker

#安裝
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幾乎支持了市面上主流的經常使用數據庫,咱們能夠對照官網的文檔安裝不一樣數據源所須要的依賴包。apache

Apache老母雞又下蛋?一文俯瞰Apache Superset
Apache老母雞又下蛋?一文俯瞰Apache Superset

Apache老母雞又下蛋?一文俯瞰Apache Superset
你能夠參考這裏:https://superset.apache.org/docs/databases/installing-database-drivers#supported-databases-and-dependecies安全

連接PostgreSQL

咱們本地使用PostgreSQL進行測試,首先要安裝psycopg2:架構

pip install psycopg2

而後就能夠經過app

postgresql://<UserName>:<DBPassword>@<Database Host>/<Database Name>

來連接到Superset了。

  • 新增數據源
    選擇Source -> Databases,點擊加號新增數據源:
    Apache老母雞又下蛋?一文俯瞰Apache Superset
  • 連接到數據庫
    Apache老母雞又下蛋?一文俯瞰Apache Superset
    Apache老母雞又下蛋?一文俯瞰Apache Superset
    在進行這步操做以前,小編把測試數據導入到了Postgresql中,導入方法在這裏:https://github.com/dylburger/noaa-ghcn-weather-data
    Apache老母雞又下蛋?一文俯瞰Apache Superset
  • 新建表
    Apache老母雞又下蛋?一文俯瞰Apache Superset
    Apache老母雞又下蛋?一文俯瞰Apache Superset
    Apache老母雞又下蛋?一文俯瞰Apache Superset
    加好後回彈出提示:
    Apache老母雞又下蛋?一文俯瞰Apache Superset
    在分析頁面中,能夠針對某一個表事先定義的時間字段、維度及指標字段進行數據探索分析,並能夠選擇相應的圖表進行可視化展現。
    Apache老母雞又下蛋?一文俯瞰Apache Superset
    這個作法Superset應該是參考了衆多中間件對數據列定義的方式,在此進行約束,哪些列能夠進行聚合運算等等。
    而後就是一系列的定製化操做:
  • 圖表類型選擇
    Apache老母雞又下蛋?一文俯瞰Apache Superset
  • 時間範圍選擇
    Apache老母雞又下蛋?一文俯瞰Apache Superset
  • 計算維度選擇
    Apache老母雞又下蛋?一文俯瞰Apache Superset
  • 聚合維度選擇
    Apache老母雞又下蛋?一文俯瞰Apache Superset
    而後,運行咱們的自定義選項:
    Apache老母雞又下蛋?一文俯瞰Apache Superset
    而後就能夠看到展現的效果:
    Apache老母雞又下蛋?一文俯瞰Apache Superset
    是否是很是騷氣。最後咱們能夠把多個圖表整合到Dashboards中。
    Apache老母雞又下蛋?一文俯瞰Apache Superset

    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,:

Admin

管理員有全部的權利,其中包括授予或撤銷其餘用戶和改變其餘人的切片和儀表板的權利。

Alpha

alpha能夠訪問全部數據源,但不能授予或撤消其餘用戶的訪問權限,而且他們也只能修改本身的數據。alpha用戶能夠添加和修改數據源。

Gamma

Gamma訪問有限。他們只能使用他們經過另外一個補充角色訪問的數據源中的數據。他們只能訪問查看從他們有權訪問的數據源製做的切片和儀表板。目前,Gamma用戶沒法更改或添加數據源。咱們假設他們大可能是內容消費者,雖然他們能夠建立切片和儀表板。
還要注意,當Gamma用戶查看儀表板和切片列表視圖時,他們只會看到他們有權訪問的對象。

sql_lab

sql_lab角色用於授予須要訪問sql lab的用戶,而管理員用戶能夠訪問全部的數據庫,默認狀況下,Alpha和Gamma用戶須要一個數據庫的訪問權限。

Public

容許登陸用戶訪問一些Superset的一些功能。

使用感覺

在數據可視化方向有不少與 Superset 相似的競品,好比國外知名的開源的有 Redash 、 Metabase,商業版的有Tableau。
總體從瞭解Superset的背景到使用過程,小編最大的感覺是:

  1. 效率高、Developer Friendly(對開發者友好),適合那些須要快速支持業務的場景,尤爲是BI人員看板需求。
  2. 感受這是一個程序員主導的產品,基於Python開發,對於使用者來講須要有Python技術棧才能進行二次開發。
  3. 權限體系小規模使用還算方便,大規模使用須要很高的配置和運維成本。後續再有新的發現再來告知你們,散會。
相關文章
相關標籤/搜索