这是一个创建于 882 天前的主题,其中的信息可能已经有所发展或是发生改变。
一个历史数据存储的服务,对外提供写入还有查询的接口(单表),表字段固定只有几个,其中有一个是时间戳字段,查询条件必带时间,根据不同现场,每天数据量不固定,但是要过性能测试的话,需要满足 30~45 分钟,20 万 /秒写入数据量的雪崩测试,还有持续一天的 100 万 /分钟写入的压测。
需求其实很简单,如果能用一些 OLAP 的数据库( clickhouse )也没啥问题,但是项目方限定了只能用 mysql,或者 oracle(吐了!!!),这样只能上分库分表的方案。
调研了一番,准备使用 ShardingSphere 实现,但是这个方案也有问题,我们不能够提前预知现场的数据量,所以希望能够动态的根据数据量来进行,比如一张表数据量超过 1 千万,就动态进行分表,后面的数据写到新表,但是这样查询又走不了分区键,每次都所有表查,性能也有很大问题。
请教一下,如何能够根据 [数据量] 还有 [时间] 来进行动态分表呢....,当数据量大于一定阈值的时候,将后面写入数据再拆分,还要能够满足命中时间分区
2 条回复 • 2021-11-18 17:30:37 +08:00
|
|
1
liuzhen 2021-11-18 17:28:07 +08:00 via Android
你好像进入了误区,当数据量超过一千万,你怎么取这张表里的数据呢?分库分表首先要确定策略。数据量是可以预估的,比如每个人每天会产生多少条数据再结合系统增长用户数
|
|
|
2
chihiro2014 2021-11-18 17:30:37 +08:00
你可以自定义分库分表策略啊,看下它的生命周期你就知道该怎么做了
|