请教一个 Java ShardingSphere 动态分库分表的问题。

2021-11-18 16:54:34 +08:00
 agzou
一个历史数据存储的服务,对外提供写入还有查询的接口(单表),表字段固定只有几个,其中有一个是时间戳字段,查询条件必带时间,根据不同现场,每天数据量不固定,但是要过性能测试的话,需要满足 30~45 分钟,20 万 /秒写入数据量的雪崩测试,还有持续一天的 100 万 /分钟写入的压测。

需求其实很简单,如果能用一些 OLAP 的数据库( clickhouse )也没啥问题,但是项目方限定了只能用 mysql,或者 oracle(吐了!!!),这样只能上分库分表的方案。


调研了一番,准备使用 ShardingSphere 实现,但是这个方案也有问题,我们不能够提前预知现场的数据量,所以希望能够动态的根据数据量来进行,比如一张表数据量超过 1 千万,就动态进行分表,后面的数据写到新表,但是这样查询又走不了分区键,每次都所有表查,性能也有很大问题。


请教一下,如何能够根据 [数据量] 还有 [时间] 来进行动态分表呢....,当数据量大于一定阈值的时候,将后面写入数据再拆分,还要能够满足命中时间分区
1369 次点击
所在节点    Java
2 条回复
liuzhen
2021-11-18 17:28:07 +08:00
你好像进入了误区,当数据量超过一千万,你怎么取这张表里的数据呢?分库分表首先要确定策略。数据量是可以预估的,比如每个人每天会产生多少条数据再结合系统增长用户数
chihiro2014
2021-11-18 17:30:37 +08:00
你可以自定义分库分表策略啊,看下它的生命周期你就知道该怎么做了

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

https://www.v2ex.com/t/816337

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

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

© 2021 V2EX