superset搭建与使用


[TOC]

superset概要

Apache Superset (incubating) is a modern, enterprise-ready business intelligence web application

1. 安装Python3环境

请移步官网

2. 安装系统环境

1
2
3
yum upgrade python-setuptools;
yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel;

3. 安装Python独立运行的虚拟环境

1
2
3
4
5
6
7
8
9
10
11
#安装虚拟环境

pip3 install virtualenv

# 生成新环境

virtualenv venv

# 进入虚拟环境

. ./venv/bin/activate 或者 source /venv/bin/activate

4. 安装superse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 安装superset

pip3 install superset

# 初始化账户

fabmanager create-admin --app superset

# 数据库初始化

superset db upgrade

superset init

# 运行服务

superset runserver

5.安装中遇到的坑

5.1 python3 虚拟环境sqlite3找不到
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 安装sqlite-devel:

yum -y install sqlite-devel

# 找到Python3安装目录

find / -name configure

# 编译

./configure --prefix=/usr/local/python3

# 安装

make && make install

5.2 在初始化数据库的时候报错

这是 SQLAlchemy 库版本太高导致的,需要安装低版本的 SQLAlchemy 库。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 查看当前 SQLAlchemy 版本

pip3 list | grep -i sqlalchemy

Flask-SQLAlchemy 2.3.2

SQLAlchemy 1.3.2

SQLAlchemy-Utils 0.33.11

# 安装低版本 SQLAlchemy

pip3 install SQLAlchemy==1.2.18
---------------------
作者:kongxx
来源:CSDN
原文:https://blog.csdn.net/kongxx/article/details/89006866
5.3 安装mysqlclient包报错

error:

1
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-fwot3_uw/mysqlclient/
1
2
3
yum install python-devel
yum install mysql-devel
yum install gcc

6.Superset故障启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 找到superset进程

ps -aux | grep superset

# 全部kill

kill -9 xxx

# 进入虚拟环境

. ./venv/bin/activate

# 重启

superset runserver

7. superset后期改造

7.1sql语句中 as 中文 支持:

Superset/static/assets/javascripts/SqlLab/components/VisualizeModal.jsx 第85行修改为如下代码

1
const re = /^[\u4e00-\u9fa5_a-zA-z0-9]+$/;

需要安装必要的前端工具打包编译,当然你也可以使用find 命令找到引用这段代码的位置直接修改打包后的文件比如superset/static/assets/dist/sqllab.724779533427ddssdd84342.entry.js

7.2Table名支持中文
  • superset/models/helpers.py
1
2
更改text_factory = str
(connection.connection.connection.text_factory = str
  • superset/views/base.py
1
2
wzx = item.get_perm().decode('utf8')
view_menu = sm.find_view_menu(wzx)
7.3 如何支持同期,上期,本期等数据的对比,如同比,环比示例
  • 上期,本期等数据的对比
  • 同比,环比计算

快手对superset的使用优化

time shifts git pull

8. 如何很好的使用superset

  1. 在SQL Lab 中数据使用数据库, 在下方输入sql ,点击runquery 没有问题的话,点击visualize ,生成视图和表, 进入slice生成界面。

  2. 在slice制作中选择相应的视图, 并在左变的维度和条件设置中,设置他们,可实时看到设计效果, 待完成后保存为slice, 如果需要保存为dashboard.

  3. 如果需要添加控件, 则在相同的制作slice方式中,或者选择相同的slice的源表,生成视图控件( FilterBox),生成控件后,保存到相应的dashboard中,即可控制相应的报表。

  4. 报表的命名规则:

  • 大部门 + ‘_’ +分类(业务) + ’_’ + ‘功能’
    • 报表视图介绍: 展示用table view, 汇总用Pivot Table, 其他有二维饼图,直方图, 二维饼图。时间序列图 等等。
  • 做好权限控制,不同的部门看到的数据库不同,来控制权限。
  1. 报表缓存处理

文章作者: Callable
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Callable !
评论
  目录