Apache 老母鸡又下蛋?一文俯瞰 Apache Superset
想必大家已经听说了,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 数据库,这些数据库都是大数据领域最经常应用的。
你还可以通过直接写 SQL 来展示数据:
Superset 极其简单的安装和配置
大家要特别注意,由于 Superset 是 Python 开发的,所以本地需要进行 Python 的环境安装。另外,需要有 pip 这个包管理工具。这对 Java 为主的大数据体系的程序员有一丢丢的挑战,不过相信大家可以克服。
由于小编只是进行测试,我本地直接使用 pip 安装:
更推荐大家使用 Docker Compose 的方式安装:
然后就可以访问本地的:http://localhost:8088 进入到 Superset 的首页了。
目前 Superset 几乎支持了市面上主流的常用数据库,我们可以对照官网的文档安装不同数据源所需要的依赖包。
链接 PostgreSQL
我们本地使用 PostgreSQL 进行测试,首先要安装 psycopg2:
然后就可以通过
来链接到 Superset 了。
新增数据源
选择 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,:
Admin
管理员有所有的权利,其中包括授予或撤销其他用户和改变其他人的切片和仪表板的权利。
Alpha
alpha 可以访问所有数据源,但不能授予或撤消其他用户的访问权限,并且他们也只能修改自己的数据。alpha 用户可以添加和修改数据源。
Gamma
Gamma 访问有限。 他们只能使用他们通过另一个补充角色访问的数据源中的数据。 他们只能访问查看从他们有权访问的数据源制作的切片和仪表板。 目前,Gamma 用户无法更改或添加数据源。 我们假设他们大多是内容消费者,虽然他们可以创建切片和仪表板。
还要注意,当 Gamma 用户查看仪表板和切片列表视图时,他们只会看到他们有权访问的对象。
sql_lab
sql_lab 角色用于授予需要访问 sql lab 的用户,而管理员用户可以访问所有的数据库,默认情况下,Alpha 和 Gamma 用户需要一个数据库的访问权限。
Public
允许登录用户访问一些 Superset 的一些功能。
使用感受
在数据可视化方向有很多与 Superset 类似的竞品,比如国外知名的开源的有 Redash 、 Metabase,商业版的有 Tableau。
整体从了解 Superset 的背景到使用过程,小编最大的感受是:
后续再有新的发现再来告知大家,散会。
基于Prometheus+Grafana打造企业级Flink监控系统
欢迎关注,《大数据成神之路》系列文章
版权声明: 本文为 InfoQ 作者【王知无】的原创文章。
原文链接:【http://xie.infoq.cn/article/ff7e60ae303e0de531f0b4bf5】。文章转载请联系作者。
评论