我们要做个系统,最后卡在上层界面展示的数据库存储选型上了。
我们初期用的 es ,因为数据量很大,可能在 20-30 亿,然后要求每个字段都可以模糊匹配,也能做一些统计。
因为 es 不能比较好的关联,所以我们把所有的业务数据,都放在一个很大的 json 中了,就一个表,每个表就存储了很多一模一样数据结构的大 json ,第一阶段这样没啥问题。
但是 2.0 的需求上升了数据维度,举个栗子:
1.0 版本,我们的 json 存储了 班级、人员、喜好 等信息,我们只要通过喜好=xxx 就可以直接查询到 班级、人员、喜好...
2.0 版本,我们想在 es 搜索喜好,但是只想要班级、人员信息,不需要把喜好的数据带出来:
输入 喜好=xxx 输出 班级 A 人员 A 班级 B 人员 B
由于我们所有信息都放在一个 json 里面了,所以会有很多 班级 A 人员 A 喜好 A 班级 A 人员 A 喜好 B ... 这种结构,就不能直接输出 班级 A 人员 A 班级 B 人员 B ,是需要过滤的
而且后面的需求,比如 喜好苹果的人都在哪些班级里面,通过一个大 json 这种格式,就不能直接检索,肯定要在结果去重,而数据量又很大,就存在很多问题。
我也不知道我说没说清楚哈,大致就是这样,所以我们想修改为关系型数据库,但是迫于数据量很大,也有模糊搜索的需求,就不知道该怎么办了。总觉得需求又需要模糊匹配,也需要多表关联。这个场景,一般大家是怎么应对的呢?大佬们帮帮忙~~~
我们初期用的 es ,因为数据量很大,可能在 20-30 亿,然后要求每个字段都可以模糊匹配,也能做一些统计。
因为 es 不能比较好的关联,所以我们把所有的业务数据,都放在一个很大的 json 中了,就一个表,每个表就存储了很多一模一样数据结构的大 json ,第一阶段这样没啥问题。
但是 2.0 的需求上升了数据维度,举个栗子:
1.0 版本,我们的 json 存储了 班级、人员、喜好 等信息,我们只要通过喜好=xxx 就可以直接查询到 班级、人员、喜好...
2.0 版本,我们想在 es 搜索喜好,但是只想要班级、人员信息,不需要把喜好的数据带出来:
输入 喜好=xxx 输出 班级 A 人员 A 班级 B 人员 B
由于我们所有信息都放在一个 json 里面了,所以会有很多 班级 A 人员 A 喜好 A 班级 A 人员 A 喜好 B ... 这种结构,就不能直接输出 班级 A 人员 A 班级 B 人员 B ,是需要过滤的
而且后面的需求,比如 喜好苹果的人都在哪些班级里面,通过一个大 json 这种格式,就不能直接检索,肯定要在结果去重,而数据量又很大,就存在很多问题。
我也不知道我说没说清楚哈,大致就是这样,所以我们想修改为关系型数据库,但是迫于数据量很大,也有模糊搜索的需求,就不知道该怎么办了。总觉得需求又需要模糊匹配,也需要多表关联。这个场景,一般大家是怎么应对的呢?大佬们帮帮忙~~~