我做了个开源数据应用平台 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 并登录(见文首),挑个「数据源」连上;
- 新建「数据集」:选表或写 SQL,预览字段,保存;
- 新建「视图」:选数据集,配置维度/度量(柱状、折线等),预览 OK;
- 设置「订阅」:挑个仪表盘/视图,配置 Cron,选通知通道,跑一下测试;
- 分享给同事:公共链接 or 签名分享,权限拿捏好。
打不开脑洞?随便上一个产品留存/活跃/销售趋势,就能跑起来。
- 真·数据复用: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。
- # 环境:Node 20+、pnpm 9+,准备 MySQL/Redis/RabbitMQ
- pnpm install
- pnpm -C apps/server dev
- pnpm -C apps/web dev
复制代码 开源与参与
<ul>https://github.com/TNT-Likely/Lumina
Star & Issue 都是对作者续命的“电池”
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|
|
|
相关推荐
|
|