一.简述
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