一、简介
Apache Superset 是Airbnb开源的数据挖掘和可视化平台。支持丰富的数据源连接,多种可视化方式,并能够对用户实现细粒度的权限控制。该工具主要特点是可自助分析、自定义仪表盘、分析结果可视化(导出)、用户/角色权限控制,还集成了一个SQL编辑器,可以进行SQL编辑查询等。
二、支持功能
- 丰富的数据可视化集;
- 易于使用的界面,用于浏览和可视化数据;
- 创建和共享仪表板;
- 与主要身份验证提供程序(数据库,OpenID,LDAP,OAuth和REMOTE_USER通过Flask AppBuilder集成)集成的企业就绪身份验证;
- 可扩展的高粒度安全性/权限模型,允许有关谁可以访问单个要素和数据集的复杂规则;
- 一个简单的语义层,允许用户通过定义哪些字段应显示在哪个下拉列表中以及哪些聚合和功能度量可供用户使用来控制如何在UI中显示数据源;
- 通过 SQLAlchemy 连接到任何基于 SQL 的数据源,包括 PB 级的现代云原生数据库和引擎;
- 与Druid.io的深度集成。
三、Superset 部署
Superset 的部署可以使用本地Python环境、Docker Compose、K8s等方式,这里基于前再者进行示范
3.1 基于本地 Pthon 部署
3.1.1 安装依赖包
1 | [hadoop@hadoop3 ~]$ sudo yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel cyrus-sasl-devel openldap-devel bzip2-devel |
编译依赖sqlite3,后面编译python的时候,缺失sqlite3的库,并不会直接报错,直到运行Superset时就会报ModuleNotFoundError: No module named '_sqlite3'
1 | [hadoop@hadoop3 ~/downloads]$ wget http://www.sqlite.org/sqlite-3.5.6.tar.gz |
3.1.2 安装 python3 环境
1 | [hadoop@hadoop3 ~/downloads]$ wget https://www.python.org/ftp/python/3.7.11/Python-3.7.11.tgz |
3.1.3 开启 python 虚拟环境
1 | [hadoop@hadoop3 ~]$ sudo pip3 install --upgrade setuptools pip |
或者使用 pyenv-virtualenv:
1 | Here we name the virtual env 'superset' |
3.1.4 安装和初始化 Superset
1 | 安装 superset |
如果报错 ERROR: flask-appbuilder 3.4.0 has requirement Flask-WTF<0.15.0,>=0.14.2, but you'll have flask-wtf 1.0.0 which is incompatible.
请安装 pip3 install Flask-WTF==0.14.3
3.2 基于Docker Compose 部署
3.2.1 克隆 Superset
1 | [hadoop@hadoop3 ~]$ git clone https://github.com/apache/superset.git |
3.2.2 启动 Superset
1 | [hadoop@hadoop3 ~/superset]$ docker-compose -f docker-compose-non-dev.yml up |
访问 Superset UI 页面,默认账户密码admin
3.2.3 Superset 汉化
在 docker/pythonpath_dev/superset_config.py
文件任意位置中添加以下内容
1 | LANGUAGES = { |
重启 Superset
1 | [hadoop@hadoop3 ~/superset]$ docker-compose -f docker-compose-non-dev.yml down |
3.3 添加 MySQL 数据库
在 Data –>> Databases –>> 选择右上解的 +数据库 –>> MySQL
然后添加数据库相关配置
添加完后就可以在 SQL Lab –>> SQL Editor 进行查询