之前研究过一些可视化工具/开源框架,包括powerBI、Tableau和Superset等。
Superset是Airbnb开源BI数据分析与可视化平台(曾用名Caravel、Panoramix),该工具主要特点是可自助分析、自定义仪表盘、分析结果可视化(导出)、用户/角色权限控制,还集成了一个SQL编辑器,可以进行SQL编辑查询等,原来是用于支持Druid的可视化分析,后面发展为支持很多种关系数据库及大数据计算框架,如:mysql, oracle, Postgres, Presto, sqlite, Redshift, Impala, SparkSQL, Greenplum, MSSQL。
总结记录一下Superset安装配置和基础使用。
1. 安装(CentOS & Win)
1.1 CentOS
yum makecache
sudo easy_install -i http://pypi.douban.com/simple/ pip
sudo easy_install pip
sudo yum install gcc libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel
#安装Superset
pip install superset
#创建管理员用户名和密码
fabmanager create-admin --app superset
#初始化Superset
superset db upgrade
#装载初始化样例数据
superset load_examples
#创建默认角色和权限
superset init
#启动Superset
superset runserver
数据库依赖
数据库 | 命令 | 链接方式 |
MySQL | pip install mysqlclient | mysql:// |
Postgres | pip install psycopg2 | postgresql+psycopg2:// |
Presto | pip install pyhive | presto:// |
Oracle | pip install cx_Oracle | oracle:// |
sqlite | sqlite:// | |
Redshift | pip install sqlalchemy-redshift | redshift+psycopg2:// |
MSSQL | pip install pymssql | mssql:// |
Impala | pip install impyla | impala:// |
SparkSQL | pip install pyhive | jdbc+hive:// |
1.2 Windows(参考https://zhuanlan.zhihu.com/p/36223295)
1.2.1 安装虚拟环境virtualenv(需要安装Python,并配置环境变量)
pip install virtualenv
1.2.2 使用virtualenv。先在D盘建立d:\pycharm\superset目录。
d:
md pycharm
cd pycharm
md superset
cd superset
1.2.3 激活
cd d:\pycharm\superset
# 创建虚拟环境
virtualenv env
# 激活,启用虚拟环境(必须要用反斜杆)
env\Scripts\activate
激活之后的界面如上图,注意在命令行输入的左侧有(env)标记,这样我们的后续操作都会在env中生效,不会影响整体的pyhton环境。
1.2.4 安装VS2015,2017好像不行。
1.2.5 安装sasl。不装这个包,可能superset安装会不成功。下载地址
1.2.6 前置项安装完毕,开始安装superset。(在这步出现问题,pip install python-geohash一直报错,最后卸载VS2015,安装Microsoft Visual C++ 14.0解决)
pip install superset
# 创建管理员帐号
fabmanager create-admin --app superset
# 初始化数据库 (windows下,先进入到
Python安装目录(或者virtualEnv的虚拟目录)下,lib\site-packages\superset\bin下)
Python superset db upgrade
# 加载例子(后续操作都需要在lib\site-packages\superset\bin下)
Python superset load_examples
# 初始化角色和权限
Python superset init
# 启动服务,端口 8088, 使用 -p 更改端口号。
Python superset runserver -d
1.2.7 使用浏览器,打开localhost:8088即可看到登录页面。
1.2.8 数据库连接:mysql://root:123456@127.0.0.1/crawler?charset=utf8。连接数据库之前一定要安装mysqlclient包:pip install mysqlclient
Superset支持的数据库:
2. Superset基础使用手册
2.1 创建数据源
2.1.1 连接新数据库
- Source -> Databases
点击加号(+)新增数据源
- Sqlalchemy Uri的写法:kylin://ADMIN:KYLIN@172.16.212.17:7070/kylin/api?project=lxw1234
- Kylin中的project名称,需要以URL参数的方式传递。
- 点击“TEST CONNECTION”,提示测试连接成功,并且在最下方,列出了project中所有的表。
2.1.2 添加数据表
- Sources -> Tables
- 点击加号(+)新增数据表
- Database选择之前创建好的数据源,Table Name必须是数据源中对应真实的表名,表中必须包含一个Date或者Timestamp类型的字段
2.1.3 数据表查看、编辑
- Sources -> Tables可看到所有已连接的数据表
- 可对表结构、数据类型、是否可进行group、filter、count、sum、min、max操作等进行编辑
2.2 数据探索分析与可视化展示
Table定义好维度字段和指标之后,即可针对该表进行数据探索分析与可视化展示,在List Table页面,点击一个表名,即可进入。
在分析页面中,可以针对某一个表事先定义的时间字段、维度及指标字段进行数据探索分析,并可以选择相应的图表进行可视化展示。
2.2.1 可视化图表类型选择
选择可视化图表类型。Superset自带的图表类型如上,包括柱状图、饼图、时间序列线图、堆积图、图表、热词图等。
2.2.2 数据时间范围选择
选择:
- 时间所在数据列
- 时间粒度
- 时间跨度
2.2.3 维度展示选择、图表可视化选择
- Group by:x轴统计维度
- Metrics:y轴展示的数据指标(包括指标的sum、avg等)
- Sort By:排序依据
可视化选择
- 配色
- 图例
- 是否堆积/分布
- ……
2.2.4 坐标轴编辑
- 选择X、Y轴数据格式
- 编辑X、Y轴标签
- 编辑Y轴边界
2.2.5 自定义查询/过滤
- 自定义SQL语句
- where、having语句
- 内置in/not in过滤器
2.2.6 查询可视化保存
- 将查询结果保存为slice
- 将slice增加到已有的dashboard/新增dashboard中
2.2.7 Dashboard编辑
编辑每个Slice对应的模块,可以自由拖拽位置和大小,并保存整个Dashboard的布局。
2.2.8 多表关联查询
在数据表编辑界面,可通过Database Expression,运用SQL语句实现多表关联查询。