Apache Superset开发指南:从文档贡献到可视化插件开发

Apache Superset开发指南:从文档贡献到可视化插件开发

Superset Superset 是一款开源的数据可视化平台,可以帮助用户轻松地创建各种类型的图表,并且支持多种数据源接入。Superset支持强大的查询语句构建器、支持多种数据源、提供多种图表类型、易于集成到现有工作流程中。Superset适用企业级的数据分析和报告生成 Superset 项目地址: https://gitcode.com/gh_mirrors/sup/superset

概述

Apache Superset作为一款开源的数据可视化与商业智能工具,其开发过程涉及多个技术环节。本文将深入介绍Superset开发中的关键操作指南,包括文档维护、可视化插件开发、测试策略以及国际化支持等内容。

文档开发与维护

Superset的文档系统基于Docusaurus 2构建,这是一款现代化的静态网站生成器。文档开发环境搭建步骤如下:

  1. 环境准备

    • 进入项目文档目录
    • 安装依赖:yarn install
    • 启动开发服务器:yarn start
  2. 构建生产版本

    • 执行构建命令:yarn build
    • 本地预览构建结果:yarn serve

文档修改提交时应遵循规范,使用docs:前缀标识文档相关的提交。

可视化插件开发实战

开发准备

开发Superset可视化插件需要满足以下条件:

  • MacOS或Linux操作系统(Windows支持有限)
  • Node.js 16环境
  • npm 7或8版本
  • 熟悉React和npm/Node生态系统

创建Hello World插件

  1. 初始化开发环境

    npm i -g yo
    cd superset-frontend/packages/generator-superset
    npm i
    npm link
    
  2. 创建插件目录结构

    mkdir /tmp/superset-plugin-chart-hello-world
    cd /tmp/superset-plugin-chart-hello-world
    
  3. 运行生成器

    yo @superset-ui/superset
    

    按照提示输入插件信息,生成器会自动创建完整的项目结构。

  4. 构建与开发

    • 完整构建:npm run build
    • 开发模式(热更新):npm run dev

集成到Superset

  1. 安装插件

    cd superset-frontend
    npm i -S /tmp/superset-plugin-chart-hello-world
    
  2. 修改主配置文件: 在MainPreset.js中添加插件引用和配置:

    import { SupersetPluginChartHelloWorld } from 'superset-plugin-chart-hello-world';
    // ...
    new SupersetPluginChartHelloWorld().configure({ key: 'ext-hello-world' }),
    
  3. 启动开发服务器验证

    npm run dev-server
    

测试策略详解

后端测试

Superset采用pytest框架进行Python后端测试,推荐使用docker-compose环境:

  1. 运行完整测试套件

    scripts/tests/run.sh
    
  2. 执行单元测试

    pytest ./path_to_test.py
    
  3. Presto/Trino测试: 可通过Docker启动本地Presto服务:

    docker run -p 15433:15433 starburstdata/presto:350-e.6
    

    并配置环境变量指向该服务。

前端测试

前端测试基于Jest和Enzyme:

  1. 运行全部测试

    cd superset-frontend
    npm run test
    
  2. 执行单个测试文件

    npm run test -- path/to/file.js
    

端到端测试

Superset提供两种e2e测试方案:

  1. 本地环境测试

    • 启动后端服务
    • 构建前端资源
    • 运行Cypress测试
  2. Docker环境测试

    CYPRESS_CONFIG=true docker compose up
    

    然后在新终端中启动Cypress测试界面。

调试技巧

Flask应用调试

  1. 配置Docker环境: 修改docker-compose.yaml,添加调试端口和权限。

  2. 容器内操作

    • 安装调试工具
    • 注入debugpy到Flask进程
    • 配置IDE连接调试端口
  3. Kubernetes环境调试: 需要额外配置Pod安全上下文,并通过端口转发连接调试器。

国际化支持

Superset使用Flask-Babel实现多语言支持:

  1. 启用语言选择: 在配置文件中添加支持的语言列表:

    LANGUAGES = {
        'en': {'flag': 'us', 'name': 'English'},
        'zh': {'flag': 'cn', 'name': 'Chinese'},
    }
    
  2. 翻译工作流程

    • 提取新字符串:./scripts/translations/babel_update.sh
    • 更新翻译文件:pybabel update
    • 编译翻译结果:pybabel compile
  3. 前端翻译处理

    npm run build-translation
    

代码规范检查

Python代码规范

使用ruff进行代码风格检查:

ruff check path/to/file.py

通过本文介绍的核心开发指南,开发者可以全面掌握Superset项目的关键开发技能,从文档维护到功能扩展,构建高质量的Superset扩展功能。

Superset Superset 是一款开源的数据可视化平台,可以帮助用户轻松地创建各种类型的图表,并且支持多种数据源接入。Superset支持强大的查询语句构建器、支持多种数据源、提供多种图表类型、易于集成到现有工作流程中。Superset适用企业级的数据分析和报告生成 Superset 项目地址: https://gitcode.com/gh_mirrors/sup/superset

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

褚铃尤Kerwin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值