Superset3 前后端搭建详解
Superset3 搭建
Superset
框架是一套包括前后端代码的框架,后端语言为 Python
,前端语言为 React
,superset
启动后包括一个前端地址+端口,一个后端地址+端口的服务,后端这个服务是带前端页面的,如果访问这个地址 /api/v1
,则可以看到具体接口内容。
另外后端部署分两种情况,一种是直接搭建在 Windows
本地电脑里,一种是运维搭建到服务器上。以下分别对两种后端进行介绍:
flowchart LR
Superset3 -->后端Python
Superset3 -->前端React
后端Python --> 方法1:后端本地搭建生成localhost:8088
后端Python --> 方法2:后端线上搭建生成线上IP地址
前端React --> 生成localhost:9000
后端:
方法1、在Windows 本地搭建
在安装 Superset
之前,需要创建一个 Python
虚拟环境:
注意,最好使用 cmd
管理员模式下进行创建(我试了 git
终端等,都无法创建成功)
# 在安装Superset之前,建议在一个Python虚拟环境中安装,以避免依赖包之间的冲突:
# 安装虚拟环境管理工具
pip install virtualenv
# 在项目目录下创建虚拟环境
virtualenv superset-venv
# 激活虚拟环境 注意:用CMD运行命令,试了其他终端无法激活
# Windows
superset-venv\Scripts\activate
3. 安装Superset 在虚拟环境中,使用pip安装Superset。
$ pip install apache-superset==3.1.0
# 初始化数据库
$ superset db upgrade
# 创建管理员用户
$ superset fab create-admin
# 加载示例数据(可选)
$ superset load_examples
# 创建默认角色和权限
$ superset init
$ superset run -p 8088 --with-threads --reload --debugger
命令运行过程中,根据提示会创建一个superset
的用户名密码(管理员),另外有可能需要创建一个 superset_config.py
的文件,并填写对应的SECRET_KEY
,并将此文件加入到环境变量里才可以。
运行完毕,可以访问 localhost:8088
,如果可以访问,则本地后端服务搭建完成。
后面如果要启动,则直接运行以下两条命令行即可(还是使用cmd
):
$ superset-venv\Scripts\activate // 进入环境
$ superset run -p 8088 --with-threads --reload --debugger // 启动后端服务
启动后,如果要连接 MYSQL
数据库,需要手动安装(需要在虚拟环境中安装mysql,默认没有)
$ pip install mysqlclient
方法2:运维线上搭建
后端部署后,前端需要将 /superset-frontend/webpack.proxy-config.js
下的本地地址修改为后端给的在线地址。
如果启动前端后发现有部分资源找不到,样式错乱,是因为浏览器安全策略的原因,可以让运维将 /superset/config.py
下的 TALISMAN ENABLED
设置为 False
即可.
前端:
前端搭建
$ cd superset-frontend
$ npm install // 这中间经历了不少波折,总之各种方法都试试
$ npm run dev-server
Superset 数据库
Superset
包括两个数据库,一个是默认底层数据库,内部存储了 superset
的用户,角色等信息,另一个数据库是第三方数据库,也就是页面上新建连接的数据库,用于图表等的使用
flowchart LR
Superset数据库 -->默认底层数据库,存放用户信息等
Superset数据库 -->第三方页面使用的数据库,存放图表引用的数据等
其他
- 配置中文:添加系统变量
SUPERSET_CONFIG_PATH
为D:\project\caixin\superset_config.py
(位置随便放),在文件里配置BABEL_DEFAULT_LOCALE = 'zh'
重启即可 npm
源:最好将npm
源改为https://registry.npmmirror.com
(获取npm
源:npm config get registry
)