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

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

作者:互联网

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

大数据技术与架构 大数据技术与架构

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。
主要具有以下功能特性:

Apache老母鸡又下蛋?一文俯瞰Apache Superset
Apache老母鸡又下蛋?一文俯瞰Apache Superset
上面展示了Superset支持的图表类型的冰山一角,另外Superset深度集成了非常丰富的数据源:
Apache老母鸡又下蛋?一文俯瞰Apache Superset
这其中,包含了大数据领域常见的 Druid、ClickHouse、Presto等OLAP数据库,这些数据库都是大数据领域最经常应用的。
你还可以通过直接写 SQL 来展示数据:
Apache老母鸡又下蛋?一文俯瞰Apache Superset

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

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

然后就可以通过


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

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. 权限体系小规模使用还算方便,大规模使用需要很高的配置和运维成本。
    后续再有新的发现再来告知大家,散会。

标签:Superset,老母鸡,数据源,用户,Apache,superset,数据
来源: https://blog.51cto.com/15127517/2682865