大數據技術與架構 大數據技術與架構 git
想必你們已經據說了,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作一個全面的講解,看看它到底適用於哪些場景。程序員
Apache Superset 是一款現代化的開源數據工具,用於數據探索和數據可視化。它提供了簡單易用的無代碼可視化構建器和聲稱是最早進的 SQL 編輯器,用戶可使用這些工具快速地構建數據儀表盤。
Apache Superset 將 SQL IDE、數據瀏覽工具、拖拽式儀表板編輯器和插件組合使用,以構建自定義的可視化效果,支持從許多關係數據庫和非關係數據庫中建立儀表板,這些數據庫包括 SQLite、MySQL,以及 Amazon Redshift、Google BigQuery、Snowflake、Oracle 數據庫、IBM DB2 和其餘各類兼容的數據源,而且能夠鏈接到 Apache Drill 和 Apache Druid。此外,Superset 還適用於雲原生場景和 Docker。
主要具備如下功能特性:github
上面展現了Superset支持的圖表類型的冰山一角,另外Superset深度集成了很是豐富的數據源:
這其中,包含了大數據領域常見的 Druid、ClickHouse、Presto等OLAP數據庫,這些數據庫都是大數據領域最常常應用的。
你還能夠經過直接寫 SQL 來展現數據:sql
你們要特別注意,因爲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
你能夠參考這裏:https://superset.apache.org/docs/databases/installing-database-drivers#supported-databases-and-dependecies 。安全
咱們本地使用PostgreSQL進行測試,首先要安裝psycopg2:架構
pip install psycopg2
而後就能夠經過app
postgresql://<UserName>:<DBPassword>@<Database Host>/<Database Name>
來連接到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的一些功能。
在數據可視化方向有不少與 Superset 相似的競品,好比國外知名的開源的有 Redash 、 Metabase,商業版的有Tableau。
總體從瞭解Superset的背景到使用過程,小編最大的感覺是:
- 效率高、Developer Friendly(對開發者友好),適合那些須要快速支持業務的場景,尤爲是BI人員看板需求。
- 感受這是一個程序員主導的產品,基於Python開發,對於使用者來講須要有Python技術棧才能進行二次開發。
- 權限體系小規模使用還算方便,大規模使用須要很高的配置和運維成本。後續再有新的發現再來告知你們,散會。