V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
agzou
V2EX  ›  Java

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

  •  
  •   agzou · 2021-11-18 16:54:34 +08:00 · 1489 次点击
    这是一个创建于 1133 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一个历史数据存储的服务,对外提供写入还有查询的接口(单表),表字段固定只有几个,其中有一个是时间戳字段,查询条件必带时间,根据不同现场,每天数据量不固定,但是要过性能测试的话,需要满足 30~45 分钟,20 万 /秒写入数据量的雪崩测试,还有持续一天的 100 万 /分钟写入的压测。

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


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


    请教一下,如何能够根据 [数据量] 还有 [时间] 来进行动态分表呢....,当数据量大于一定阈值的时候,将后面写入数据再拆分,还要能够满足命中时间分区
    2 条回复    2021-11-18 17:30:37 +08:00
    liuzhen
        1
    liuzhen  
       2021-11-18 17:28:07 +08:00 via Android
    你好像进入了误区,当数据量超过一千万,你怎么取这张表里的数据呢?分库分表首先要确定策略。数据量是可以预估的,比如每个人每天会产生多少条数据再结合系统增长用户数
    chihiro2014
        2
    chihiro2014  
       2021-11-18 17:30:37 +08:00
    你可以自定义分库分表策略啊,看下它的生命周期你就知道该怎么做了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3494 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 05:00 · PVG 13:00 · LAX 21:00 · JFK 00:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.