其他分享
首页 > 其他分享> > Apache老母鸡又下蛋?一文俯瞰Apache Superset

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

作者:互联网

点击上方蓝色字体,选择“设为星标

回复”资源“获取更多资源

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

想必大家已经听说了,1 月 21 日,开源的可视化工具 Apache Superset 宣布毕业并成为 Apache 软件基金会(ASF)的顶级项目(Top-Level Project)。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

截至目前,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。

主要具有以下功能特性:

以上那些都是废话,老实说对开发人员最大的吸引力:支持的数据源足够多,界面足够花里胡哨!

Superset丰富的数据源支持和图表展示

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

上面展示了Superset支持的图表类型的冰山一角,另外Superset深度集成了非常丰富的数据源:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

这其中,包含了大数据领域常见的 Druid、ClickHouse、Presto等OLAP数据库,这些数据库都是大数据领域最经常应用的。

你还可以通过直接写 SQL 来展示数据:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

Superset极其简单的安装和配置

大家要特别注意,由于Superset是Python开发的,所以本地需要进行Python的环境安装。另外,需要有pip这个包管理工具。这对Java为主的大数据体系的程序员有一丢丢的挑战,不过相信大家可以克服。

由于小编只是进行测试,我本地直接使用pip安装:

#安装
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几乎支持了市面上主流的常用数据库,我们可以对照官网的文档安装不同数据源所需要的依赖包。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

你可以参考这里:https://superset.apache.org/docs/databases/installing-database-drivers#supported-databases-and-dependecies 。

链接PostgreSQL

我们本地使用PostgreSQL进行测试,首先要安装psycopg2:

pip install psycopg2

然后就可以通过

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

来链接到Superset了。

选择Source -> Databases,点击加号新增数据源:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

在进行这步操作之前,小编把测试数据导入到了Postgresql中,导入方法在这里:https://github.com/dylburger/noaa-ghcn-weather-data。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

加好后回弹出提示:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

在分析页面中,可以针对某一个表事先定义的时间字段、维度及指标字段进行数据探索分析,并可以选择相应的图表进行可视化展示。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

这个做法Superset应该是参考了众多中间件对数据列定义的方式,在此进行约束,哪些列可以进行聚合运算等等。

然后就是一系列的定制化操作:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

然后,运行我们的自定义选项:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

然后就可以看到展示的效果:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

是不是非常骚气。最后我们可以把多个图表整合到Dashboards中。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

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. 权限体系小规模使用还算方便,大规模使用需要很高的配置和运维成本。

后续再有新的发现再来告知大家,散会。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

大数据可视化从未如此简单 - Apache Zepplien全面介绍

后起之秀Pulsar VS. 传统强者Kafka?谁更强

基于Prometheus+Grafana打造企业级Flink监控系统

欢迎点赞+收藏+转发朋友圈素质三连

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

文章不错?点个【在看】吧!

标签:Superset,老母鸡,数据源,用户,可视化,Apache,superset
来源: https://blog.51cto.com/u_14222592/2898419