Apache Superset开发指南:从文档贡献到可视化插件开发
文档开发指南
Apache Superset的文档系统基于Docusaurus 2构建,这是一个现代化的静态网站生成器。文档源代码存放在项目目录下的docs
文件夹中。
本地开发环境搭建
要搭建本地文档开发环境并启用热重载功能,可以按照以下步骤操作:
- 进入文档目录
- 安装依赖项
- 启动开发服务器
具体命令如下:
cd docs
yarn install
yarn start
启动后,开发服务器将在本地3000端口运行,支持实时预览修改效果。
生产环境构建
要创建文档站点的生产版本并启动本地服务,可以使用以下命令:
yarn build
yarn serve
可视化插件开发指南
Superset中的可视化组件使用JavaScript或TypeScript实现。系统内置了多种可视化类型(称为"viz插件"),存放在superset-frontend/plugins
目录中。
开发环境准备
开发viz插件需要满足以下条件:
- 操作系统:MacOS或Linux(Windows不完全支持)
- Node.js 16
- npm 7或8版本
- 熟悉React和npm/Node系统
创建Hello World示例插件
- 安装Superset Yeoman生成器:
npm i -g yo
cd superset-frontend/packages/generator-superset
npm i
npm link
- 创建插件目录并初始化:
mkdir /tmp/superset-plugin-chart-hello-world
cd /tmp/superset-plugin-chart-hello-world
yo @superset-ui/superset
- 构建插件:
npm i --force
npm run build
或者启动开发模式(支持实时重载):
npm run dev
- 将插件集成到Superset中:
cd superset-frontend
npm i -S /tmp/superset-plugin-chart-hello-world
- 修改
MainPreset.js
文件,添加插件引用和配置。
测试指南
Python测试
Superset使用tox标准化测试框架进行Python测试。运行测试的基本命令:
tox -e <环境名称>
例如:
tox -e py38
也可以运行单个测试文件或特定测试方法。
前端测试
使用Jest和Enzyme进行TypeScript/JavaScript测试:
cd superset-frontend
npm run test
端到端测试
使用Cypress进行端到端集成测试:
tox -e cypress
或者手动设置测试环境:
- 启动后端服务
- 构建前端
- 运行Cypress测试
调试指南
Flask应用调试
在Docker容器中调试Flask应用的步骤:
- 修改docker-compose.yaml文件,添加调试支持
- 进入容器安装调试工具
- 注入debugpy到Flask进程
- 配置VSCode连接调试器
Kubernetes环境调试
在Kubernetes环境中调试需要:
- 配置Pod以root用户运行并添加SYS_PTRACE能力
- 建立端口转发隧道
- 使用VSCode连接调试
国际化支持
Superset使用Flask-Babel实现国际化支持。添加新语言支持的基本流程:
- 检查语言代码是否已存在
- 初始化新语言字典
- 提取待翻译字符串
- 更新语言文件
- 使用Poedit等工具翻译
- 应用翻译到前端
通过配置superset_config.py
中的LANGUAGES
变量,可以启用语言选择功能。
组件预览
Superset包含Storybook用于预览组件样式和布局:
cd superset-frontend
npm run storybook
开发新React组件时,建议在组件文件旁添加对应的Story文件。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考