找回密码
 立即注册
首页 业界区 业界 我做了个开源数据应用平台 Lumina:数据人的快乐,终于 ...

我做了个开源数据应用平台 Lumina:数据人的快乐,终于轮到我了(内含在线 Demo)

茅香馨 5 小时前
我做了个开源数据应用平台 Lumina:数据人的快乐,终于轮到我了(内含在线 Demo)

先上干货:在线 Demo 与账号

  • GitHub:https://github.com/TNT-Likely/Lumina
  • 网址:https://lumina.zeabur.app/
  • 测试账号:testlumina
  • 密码:123456
  • 友情提示:演示环境是只读,创建/更新/删除可能被拦截(但你依然可以体验大部分流程)。
大家好,我是一个“不想复制 CSV 去做 KPI 报表”的数据人。某天我意识到,摸鱼不如摸框架,于是撸了个开源数据产品平台——Lumina。
一句话版本:

  • 连接数据库 → 配数据集(SQL/表)→ 配视图(图表)→ 拼仪表盘 → 订阅推送
  • 支持组织/角色权限、公共/签名分享、计划任务与通知通道
  • 前后端 TypeScript 单仓,工程化走起(日志、健康检查、只读演示环境……)
为什么做 Lumina?


  • 给业务看:别总让我发截图了,点开就能看,手机也能看,最好还能订阅到邮箱/群里。
  • 给数据看:一套数据集,多个视图复用。今天柱状图,明天折线图,后天 KPI 卡——别再写三遍 SQL。
  • 给工程看:别担心,日志、鉴权、限流、健康检查都安排了;二次开发也不痛(TypeScript 全栈)。
Lumina 能干啥?(一分钟懂)


  • 数据源(Datasource):连 MySQL(更多在路上),一键枚举库/表/字段,连接测试要有。
  • 数据集(Dataset):基于表或 SQL 建模,字段命名/别名/筛选项统一个口径。
  • 视图(View):拖拉拽绑定数据集,调一调维度/度量,预览看看效果,再发布。
  • 仪表盘(Dashboard):把多个视图拼在一起,布局一摆,领导 KPI 就上线了。
  • 通知(Notification)+ 订阅(Subscription):定时任务按 Cron 来,结果推送到邮箱/Webhook。
  • 分享(Public/Sign):公开链接或者签名访问,外部同学也能看(可精细控制)。
  • 权限与组织:多组织/多角色(Admin/Editor/Viewer),不给点权限,谁都动不了。
五分钟上手(不画饼,给路径)


  • 打开 Demo 并登录(见文首),挑个「数据源」连上;
    1.png

  • 新建「数据集」:选表或写 SQL,预览字段,保存;
    2.png

3.png


  • 新建「视图」:选数据集,配置维度/度量(柱状、折线等),预览 OK;
4.png


  • 新建「仪表盘」:把视图加进去,摆个舒服的布局;
5.png


  • 设置「订阅」:挑个仪表盘/视图,配置 Cron,选通知通道,跑一下测试;
6.png


  • 分享给同事:公共链接 or 签名分享,权限拿捏好。
7.png

打不开脑洞?随便上一个产品留存/活跃/销售趋势,就能跑起来。


  • 真·数据复用:Dataset 一处改名/校验,所有 View 自动受益,治理最省心。
  • 订阅有测试:推送前先“试一下”,失败别等凌晨两点才知道。
  • 演示环境只读:线上 Demo 安全放心玩,真正的写操作我们局部中间件精准拦截。
  • 工程化:

    • 结构化日志(AsyncLocalStorage 贯穿请求链路)
    • 启动自检:MySQL / Redis / RabbitMQ 状态一网打尽
    • 全局鉴权 + 局部只读中间件(精确到 create/update/delete 路由)
    • 公共预览与签名分享,不登陆也能看(受控)

  • 二次开发友好:Monorepo + TypeScript,全仓一致的工程体验。
图表类型(你想要的“花里胡哨”)


  • 已支持:柱状图、折线图、饼图、面积图、KPI 卡、表格、百分比图、雷达图、散点图等
  • 规划中:地图、漏斗、仪表盘、热力图、更多自定义组件
  • 说明:每种图表都支持基础配置与数据绑定,后续可扩展更多类型。
数据源支持 & 订阅渠道(你关心的“入”和“出”)


  • 数据源(当前已支持,见 packages/query-engine):

    • MySQL、PostgreSQL、ClickHouse、Oracle、SQL Server(MSSQL)、MongoDB、Elasticsearch(ES Search)
    • 说明:统一入口 QueryEngine(type, config),底层连接器可按需扩展(适配器模式)。

  • 订阅渠道(当前已支持,见 packages/notify):

    • 邮件(SMTP)、钉钉机器人、飞书(Lark)、Slack、Telegram、Discord
    • 规划中:企业微信、通用 Webhook、Server酱、Bark、短信、语音电话
    • 彩蛋:提供“连通性测试”,尽量把失败拦在上线之前。

技术栈(简洁但不简单)


  • Monorepo:pnpm + turbo
  • 后端:Egg.js、Sequelize、ioredis、amqplib、JWT
  • 前端:React + antd + Vite
  • 其他:ESLint、统一 TS 类型、结构化日志、健康检查、限流
谁适合用?


  • 中小团队的内部 BI 诉求:做 KPI 看板、日报订阅、运营复盘。
  • 想要可二开、能长出来的开源基座:你可以把它当“开源低代码 BI 内核”。
  • 想给客户/外部伙伴只读查看的场景:公共/签名分享就绪。
Roadmap(部分)


  • 数据源更多友军:……(欢迎 PR)
  • 视图联动与更丰富的图形库
  • 更细粒度的权限模型与审计
本地体验(可选)

想自己跑一遍?下面是极简流程,详细请看仓库 README。
  1. # 环境:Node 20+、pnpm 9+,准备 MySQL/Redis/RabbitMQ
  2. pnpm install
  3. pnpm -C apps/server dev
  4. pnpm -C apps/web dev
复制代码
开源与参与

<ul>https://github.com/TNT-Likely/Lumina
Star & Issue 都是对作者续命的“电池”
来源:豆瓜网用户自行投稿发布,如果侵权,请联系站长删除

相关推荐

您需要登录后才可以回帖 登录 | 立即注册