我做了个开源数据应用平台 Lumina:数据人的快乐,终于轮到我了(内含在线 Demo)
我做了个开源数据应用平台 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 都是对作者续命的“电池”
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]