大数据技术与架构 大数据技术与架构 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技术栈才能进行二次开发。
- 权限体系小规模使用还算方便,大规模使用须要很高的配置和运维成本。后续再有新的发现再来告知你们,散会。