请教一个问题,你们公司的统计中心是用什么数据库架构搭建的。

2023-10-18 10:44:06 +08:00
 longmeier90
先介绍一下 技术栈

python + mysql

由于数据量大,而且跨很多表查询比较慢,统计维度多。就想着重构一下 看看有什么好的技术栈给推荐一下吗。

订单表、患者表、检查数据表、挂号信息表

筛选条件 例:0-18 岁、患者来源 xxx 、距上次检查超过半年且近视度数大于多少且没有买 xxx 商品、等一些复杂多维度的查询,一联跨很多张表,而且直接从 mysql 取出数据还需要再加工拼接,所以说比较慢,不能所见即所得那种。

有没有这方面的大佬,就像我这种需求的话哪些技术栈比较合适,给点建议怎么才能更好的实现。
2053 次点击
所在节点    MySQL
10 条回复
zhenjiachen
2023-10-18 10:50:00 +08:00
同求架构,我们现在是把数据多的同步到 clickhouse ,然后查询相对 mysql 快很多,但是领导需求千奇百怪,每次改代码都好麻烦。
Fooooo0
2023-10-18 11:08:15 +08:00
Google 一下 "OLAP 实时统计 数据库",目前比较热门的是 clickhouse 和 Doris 。
当然你说的要解决一些复杂多维度的查询可能需要引入 ETL 预处理或者一些 BI 工具,单纯数据库解决不了这个问题。
luoyou1014
2023-10-18 12:00:06 +08:00
简单点的话,直接用 mysql 中的 json 字段,这样就不用多表联查了,缺点是 json 的联合索引仅支持一个 json 字段,可以考虑采用虚拟字段来支持多个 json 索引
realpg
2023-10-18 12:02:16 +08:00
数据量多大?有一亿行么?
我这 mysql 8700 万行不分表 没觉得数据量大性能差
ISO8859
2023-10-18 12:04:02 +08:00
为什么不用 ES 呢
realpg
2023-10-18 12:06:29 +08:00
没打完就发出去了
你这种需求,不需要换技术栈
而是需要统计常见维度,做非实时调度查询系统,放在冷库里有调度的专门跑这些查询
冷库里去掉各种字符串字段,各种字段能数值化就数值化


比如你说的:
0-18 岁、患者来源 xxx 、距上次检查超过半年且近视度数大于多少且没有买 xxx 商品

业务部门显然是要筛用户进行推广或者营销,这种都是低响应要求的。
不会因为 0.5 秒没出结果客户就跑了,行政开销远高于系统开销

多进行总结,预提报告数据,同时后台不断学习,创建预设维度自动跑,同时调度响应各种筛选维度
superchijinpeng
2023-10-18 12:31:05 +08:00
CK Starrocks
bjzhush
2023-10-18 12:36:39 +08:00
如果说做数据统计和聚合,我之前的项目用的是 apache kylin ,还不错
这玩意没法查出具体某一条数据,但是拿来做数据统计非常合适,有兴趣可以了解一下
SD10
2023-10-18 12:51:50 +08:00
先搞清楚是做 OLAP 还是 OLTP ,解决方案不一样的。
MaxFang
2023-10-18 13:32:22 +08:00
报表业务不要直接使用业务表,使用业务表就导致 join 漫天飞。
需要合理的规划表维度,从业务表抽取数据到报表,ETL 这类的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/983028

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX