开源BI神器Superset 4.x定制化开发系列(二)开发环境搭建

172 阅读2分钟

Apache Superset有多种代码构建方式,虽然官方推荐使用docker-compose的方式进行环境搭建,但本文从开发者的角度出发,使用前后端分离开发的模式,直接使用flask server和webpack的方式构建前后端开发环境。

01.操作系统及开发工具

  • 操作系统:MacBook MacOS Sequoia 15.6
  • 开发工具:Cursor、Trae、VS Code等

*开发工具可根据自己习惯选择Python开发环境,本文使用Cursor

02.基础环境安装

Apache Superset 4.x所依赖的基础环境包含Python3.10及以上、Node.js 20及以上.

2.1 Python环境安装

安装miniconda环境

#官网下载并自主安装miniconda

创建superset python环境

# 创建superset Python运行环境,版本3.10
conda create -n superset python=3.10

使用superset python环境

# 进入superset的python环境
conda activate superset

2.2 安装Node.js环境

安装Node.js

# 自主官网下载安装

查看Node.js版本

# 查看node版本,要求20以上,如果已经安装过低版本,自行升级到20以上
node -v

03.代码构建

3.1 克隆代码

git clone https://github.com/apache/superset.git

3.2 构建后端代码

安装python包

# 进入到superset根目录,执行下列命令
pip install -r requirements/development.txt

以可编辑(开发)模式安装Superset

# 该模式会创建代码连接,修改代码后不需要再次安装,但需重启服务。
pip install -e . 

初始化数据库

# 默认会初始化自带的sqlite数据库,如果需要改成MySQL或者Pg需要设置环境变量SQLALCHEMY_DATABASE_URI为相应的数据库,后续文章会写
# 默认设置在superset/config.py中
# SQLALCHEMY_DATABASE_URI = (
#     f"""sqlite:///{os.path.join(DATA_DIR, "superset.db")}?check_same_thread=false"""
# )

superset db upgrade

创建管理员用户

# 创建管理员用户(会让你输入用户名和密码) 
superset fab create-admin

创建默认的角色和权限

# 创建默认的角色和权限 
superset init

加载样例数据

superset load-examples

启动Flask后端服务器

# 启动 Flask 开发 Web 服务器
# 该服务是唯一的核心后端服务,superset其他的可选服务(websocket、Celery等)可暂不启动,需要异步查询、缓存、定时等功能时才需要。

superset run -p 8088 --with-threads --reload --debugger --debug

3.3 构建前端代码

进入前端代码目录

# 从仓库的根目录 
cd superset-frontend 

安装前端依赖包

# 安装 `package-lock.json` 中的依赖项 
# 安装过程就算设置了国内镜像也比较慢,我花了1个小时才完成
npm ci

启动Dev Server

# 启动完成后,访问http://localhost:9000/打开前端的页面
# Dev Server会自动代理到后端的http://localhost:8088进行接口访问
npm run dev-server

04.本地调试

打开本地的Superset

image.png

输入之前创建的管理员用户和密码

image.png 成功进入,则表示整个环境已经设置成功,可直接修改前后端的代码,会自动编译构建。后续文章会介绍具体的修改方法,敬请关注!