Superset 一款轻量级BI工具

一、简介

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
2
3
4
5
[hadoop@hadoop3 ~/downloads]$ wget http://www.sqlite.org/sqlite-3.5.6.tar.gz
[hadoop@hadoop3 ~/downloads]$ tar xf sqlite-3.5.6.tar.gz
[hadoop@hadoop3 ~/downloads]$ cd sqlite-3.5.6/
[hadoop@hadoop3 ~/downloads/sqlite-3.5.6]$ ./configure --disable-tcl
[hadoop@hadoop3 ~/downloads/sqlite-3.5.6]$ make && sudo make install

3.1.2 安装 python3 环境

1
2
3
4
5
[hadoop@hadoop3 ~/downloads]$ wget https://www.python.org/ftp/python/3.7.11/Python-3.7.11.tgz
[hadoop@hadoop3 ~/downloads]$ sudo tar zxf Python-3.7.11.tgz -C /usr/src/
[hadoop@hadoop3 ~/downloads]$ cd /usr/src/Python-3.7.11/
[hadoop@hadoop3 Python-3.7.11]$ sudo ./configure LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include" --enable-optimizations
[hadoop@hadoop3 Python-3.7.11]$ sudo make altinstall

3.1.3 开启 python 虚拟环境

1
2
3
4
5
6
7
[hadoop@hadoop3 ~]$ sudo pip3 install --upgrade setuptools pip
[hadoop@hadoop3 ~]$ pip3 install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple

[hadoop@hadoop3 ~]$ python3 -m venv venv
[hadoop@hadoop3 ~]$ . venv/bin/activate

#可以通过deactivate命令退出虚拟环境。

或者使用 pyenv-virtualenv:

1
2
3
# Here we name the virtual env 'superset'
pyenv virtualenv superset
pyenv activate superset

3.1.4 安装和初始化 Superset

1
2
3
4
5
6
7
8
9
10
11
#安装 superset
(venv) [hadoop@hadoop3 ~]$ pip3 install apache-superset -i https://pypi.tuna.tsinghua.edu.cn/simple

#初始化 superset
(venv) [hadoop@hadoop3 ~]$ superset db upgrade

#创建管理员用户,初始化,启动superset
(venv) [hadoop@hadoop3 ~]$ superset superset fab create-admin
(venv) [hadoop@hadoop3 ~]$ superset load_examples
(venv) [hadoop@hadoop3 ~]$ superset init
(venv) [hadoop@hadoop3 ~]$ superset run -h 0.0.0.0 -p 8088 --with-threads --reload --debugger

如果报错 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

图片1

3.2.3 Superset 汉化

docker/pythonpath_dev/superset_config.py 文件任意位置中添加以下内容

1
2
3
4
LANGUAGES  = {
'en' : { 'flag' : 'us' , 'name' : 'English' },
'zh' : { 'flag' : 'cn' , 'name' : 'Chinese' },
}

重启 Superset

1
2
[hadoop@hadoop3 ~/superset]$ docker-compose -f docker-compose-non-dev.yml down
[hadoop@hadoop3 ~/superset]$ docker-compose -f docker-compose-non-dev.yml up

图片2

3.3 添加 MySQL 数据库

Data –>> Databases –>> 选择右上解的 +数据库 –>> MySQL

然后添加数据库相关配置

图片3

添加完后就可以在 SQL Lab –>> SQL Editor 进行查询

图片4

-------------本文结束感谢您的阅读-------------