一.简述

Apache
Superset是一款由Airbnb开源的“现代化的企业级BI(商业智能)的Web应用程序”,其通过创建和分享Dashboard,为数据分析提供了轻量级的数据查询和可视化方案。

Apache Superset的前端主要使用Reat和NVD3/D3,后端则基于Python的Flask框架和Pandas、SQLAichemy等第三方依赖库

二.功能

Ⅰ).集成数据查询


Superset支持多种数据库,包括MySQL、PostgresSQL、Oracle、SQLServer、SQLite、Impala、Hive、ClickHouse等,并深度支持Apache
Druid

Ⅱ).细颗粒安全模式

可以在功能层面和数据层面进行访问控制。支持多种鉴权方式(例如数据库、OpenID、LDAP、OAuth、REMOTE_USER等)

Ⅲ).可视化图库


通过NVD3/D3预定义了多种可视化图表库,满足大部分的数据展示功能;另外,也支持嵌入其他的JavaScirpt图标库(例如HighCharts、ECharts),或二次开发

三.权限

Superset的安全行由Flask
AppBuilder(FAB)处理。FAB是一个“简单快速的应用程序开发框架,构建在Flask之上”。FAB提供了身份验证、用户管理、权限和角色。默认角色如下:

Ⅰ).Admin

管理员拥有所有的权限,包括授予或撤销其他用户的权限,以及修改其他用户的charts和dashboard

Ⅱ).Alpha

Alpha可以访问所以数据源,但无法授予或撤销其他用户的权限。Alpha用户可以添加和修改数据源

Ⅲ).Gamma


Gamma具有访问权限。Gamma只能使用访问查看Gamma用户自己可访问的数据源制作的charts和dashboard。目前,Gamma用户无法添加和修改数据源

Ⅳ).Sql_lab

被授予对SQL Lab的访问权限

Ⅴ).Public

可通过在superset/config.py设置PUBLIC_ROLE_LIKE_GAMMA=True,授予该角色与Gamma角色相同的权限集

Ⅵ).自定义角色

使用着可以根据自己的需求自定义角色权限

四.依赖



五.使用

Ⅰ).配置Druid数据源

a).选择Sources,下拉菜单选择Druid Clusters



b).点击添加



c).编辑信息



d).刷新数据源




Ⅱ).配置其他数据源

以ClickHouse为例
安装依赖:pip install sqlalchmy_clickhouse

a).点击添加



b).编辑配置



c).测试连接



d).连接成功,展示tables



e).添加成功



六.修改元数据库

默认元数据库是SQLite,实际生产环境中可能需要更可靠的数据库(如MySQL、Oracle)来存储管理元数据,下面以MySQL替换SQLite为例

Ⅰ).安装依赖
pip install mysqlclient
Ⅱ).修改配置

a).路径
./lib/python2.7/site-packages/superset
b).备份
cp config.py config.py_date_time_user.bak
c).编辑
vi config.py #
SQLALCHEMY_DATABASE_URL='sqlite://'+os.path.join(DATA_DIR,'superset.db')
SQLALCHEMY_DATABASE_URL='mysql://db_user:password@db_hostname/superset'
d).初始化
fabmanager create-admin --app superset
e).更新数据库数据
superset db upgrade
f).初始化角色
superset init