Mysql 和 Clickhouse 使用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LiJavaT
V2EX    数据库

Mysql 和 Clickhouse 使用

  •  
  •   LiJavaT 317 天前 3485 次点击
    这是一个创建于 317 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在有个 Java 服务每天要抓取十几万的数据,这个数据量太大了,查询速度也慢。现在方案的是,第一次 Mysql 抓取全量数据同步到 CLickhouse 中,clickhouse 存储历史数据,Mysql 就存储当天抓取的数据然后同步到 clickhouse 中。这样就解决了 Mysql 中表的数据量过大的问题。 想问一下大佬们,我这解决方案有啥问题。期间也想过用 monodb 存储但是 monodb 不是太好用就放弃了

    28 条回复    2024-11-27 16:24:08 +08:00
    zsj1029
        1
    zsj1029  
       317 天前
    有点感觉没必要,你担心的 mysql 数据量大,应该是表大,每天创建一个新表,可以解决你说的问题
    分库分表也是为了解决查询慢,其实索引做好,几百万数据应该也不慢的
    vacuitym
        2
    vacuitym  
       317 天前
    那为啥不全存在 ck
    Ico945
        3
    Ico945  
       317 天前
    没啥问题吧,还得有个定时任务来清理 mysql 的数据?
    LiJavaT
        4
    LiJavaT  
    OP
       317 天前
    @vacuitym 因为实时更新当天数据,ck 处理更新不太好吧
    LiJavaT
        5
    LiJavaT  
    OP
       317 天前
    @Ico945 对对 还得在跑个定时任务清理一下
    vacuitym
        6
    vacuitym  
       317 天前
    @LiJavaT 看你频率,如果频率不高触发下合并就行
    LiJavaT
        7
    LiJavaT  
    OP
       317 天前
    @zsj1029 主要是每天创建一个新表,后面做一下数据分析还有查询比较麻烦
    jfds
        8
    jfds  
       317 天前
    查询复杂的话这个方案没啥问题。如果查询场景简单,这个数据量只用 mysql 也行,建好索引和分表用个几年问题不大。
    bthulu
        9
    bthulu  
       317 天前
    一天十几万也大吗? 我这厂里设备上报的实时数据, 每秒中几百个设备上报一次, 一天近一千万条数据, 也没见 mysql 不能用啊
    LiJavaT
        10
    LiJavaT  
    OP
       317 天前
    @bthulu 数据不需要经常查询吗,这样查询挺慢的吧
    000sitereg
        11
    000sitereg  
       317 天前 via Android
    cdc 抓取增量数据到 ck ,历史数据用 java 等方案插入 ck
    wwwyt
        12
    wwwyt  
       317 天前
    每天十几万数据也不多,中间加一层 ES 做索引就可以解决查询慢的问题
    venglide
        13
    venglide  
       317 天前
    建议 mysql 和 ck 都不要用了,直接 starrocks 吧,mysql 协议,实时能力不错,分析效率和 ck 相近,关键是运维比 ck 方便太多。
    MoozLee
        14
    MoozLee  
       317 天前
    问题不大,我们也是这样处理的,每天几十万数据先进 mysql 表,然后 cdc 到 clickhouse 。最后在 clickhouse 做其他汇总处理
    realpg
        15
    realpg  
    PRO
       317 天前
    @zsj1029 #1
    索引做好 上亿数据查询也不慢的
    singkingcho
        16
    singkingcho  
       317 天前
    如果不怎么更新的话,可以用 doris ,然后做按天的分区。
    bthulu
        17
    bthulu  
       317 天前
    @LiJavaT 那是, 绝大部分情况下都不会查的
    Frankcox
        18
    Frankcox  
       317 天前
    每天更新的数据是一次新增还是会有大量更新?只是每天新增十几万数据,感觉可以直接都放在 clickhouse 。我们现在部分需要分析的重要日志也是存 clickhouse ,每天几百万,写入没什么问题。
    adgfr32
        19
    adgfr32  
       317 天前 via Android
    直接每天数据都往 ck 存,查询也是走 ck 。或者只用 mysql ,做好分表就行。
    你说的要更新 ck 是指数据爬到新的需要更新吗?可以加个版本号,ck 不擅长做数据更新删除,想更新的时候用不同的版本号新增一次,查询条件带上版本号。不用担心数据量太大,ck 就是干这个的,按时间做个分区几百亿都没事。
    codingmiao
        20
    codingmiao  
       317 天前
    话说为什么你们简称 ck 不是 ch
    allstarvrgo
        21
    allstarvrgo  
       317 天前
    [这个数据量太大了,查询速度也慢] 考虑这个问题 ,如果查询条件是某天的数据,可以使用 mysql 的分区表,按天分区。
    如果查询条件可能是历史的所有数据,则需要根据查询条件设置好 ck 主键,直接使用 ck 查询。
    sxt10240000
        22
    sxt10240000  
       317 天前
    @LiJavaT mysql 一亿数据量的普通查询时间在毫秒级,当然你没搞索引当我没说
    maichael
        23
    maichael  
       317 天前   5
    @codingmiao 关于这个,CH 官方文档甚至有说明: https://clickhouse.com/docs/en/faq/general/dbms-naming
    Rat3
        24
    Rat3  
       317 天前
    补上你的查询需求
    8355
        25
    8355  
       317 天前
    我们现在单表 117 亿的 clickhouse 做报表统计 没啥问题啊。。。你这点量 mysql 都跑的动吧。
    heiya
        26
    heiya  
       316 天前
    埋点数据放 ch ,从 ch 中定时统计出来的数据放 mysql 方便查询,美滋滋。
    keshawnvan
        27
    keshawnvan  
       316 天前
    换个 HTAP 数据库,比如 PolarDB ,TiDB 之类的。
    ACCI
        28
    ACCI  
       316 天前
    这种数据可以用 doris 或者 hudi 之类的数据库吧, 按天动态分区.
    也是 mysql 协议, 这种数据量轻轻松松吧.

    而且 ck 也是可以分区的吧. ck 的查询强得很
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     857 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 21:41 PVG 5:41 LAX 14:41 JFK 17:41
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86