Superset对接Apache Druid数据源

一.简述

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角色相同的权限集

Ⅵ).自定义角色

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

四.依赖

Superset对接Apache Druid数据源

五.使用

Ⅰ).配置Druid数据源

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

Superset对接Apache Druid数据源

b).点击添加

Superset对接Apache Druid数据源

c).编辑信息

Superset对接Apache Druid数据源

d).刷新数据源

Superset对接Apache Druid数据源
Superset对接Apache Druid数据源

Ⅱ).配置其他数据源

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

a).点击添加

Superset对接Apache Druid数据源

b).编辑配置

Superset对接Apache Druid数据源

c).测试连接

Superset对接Apache Druid数据源

d).连接成功,展示tables

Superset对接Apache Druid数据源

e).添加成功

Superset对接Apache Druid数据源

六.修改元数据库

默认元数据库是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
上一篇:【错误记录】PyCharm 运行 Python 程序报错 ( SyntaxError: Non-ASCII character ‘\xe5‘ in file x.py on line 1, but )


下一篇:PostgreSQL 10.0 preview 性能增强 - hash,nestloop join优化(聪明的优化器是这样的)