V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
iamfenges
V2EX  ›  MySQL

请教一下 clickhouse 的使用问题

  •  
  •   iamfenges · 2023-06-27 09:50:56 +08:00 · 3957 次点击
    这是一个创建于 520 天前的主题,其中的信息可能已经有所发展或是发生改变。
    clickhouse 能作为 mysql 的从库吗?官网这个 MaterializedMySQL 引擎又写着是试验性的。你们是怎么使用的
    31 条回复    2023-06-27 23:02:58 +08:00
    wmz000
        1
    wmz000  
       2023-06-27 09:55:58 +08:00
    想知道啥需求为啥要使用 ck 做 mysql 的从库?
    vincent7245
        2
    vincent7245  
       2023-06-27 09:59:43 +08:00   ❤️ 1
    1 可以,但是前提是,ck 是做分析用的,而且数据有延迟,不能做业务

    2 我们用 impala+kudu ,性质和 ck 差不多,但是仅做分析用,数据是通过读取 binlog 同步的,自己写的中间件

    3 不要用分析数据库做业务,不要用分析数据库做业务,不要用分析数据库做业务
    ianEros
        3
    ianEros  
       2023-06-27 10:01:26 +08:00
    我咋记得这个引擎是类似外表,在 ck 做的映射,查询的时候 ck 还是连到 mysql 查

    一般的方案都是用 canal 同步到 ck ,或者直接用 ck
    经常修改的数据同步到 ck 还要区分版本,有时候还要 merge
    iamfenges
        4
    iamfenges  
    OP
       2023-06-27 10:01:40 +08:00
    @wmz000 就做一些数据统计,不是业务用的

    @vincent7245 是的,只做业务分析
    iamfenges
        5
    iamfenges  
    OP
       2023-06-27 10:04:05 +08:00
    @ianEros 你说的是 MYSQL 的表引擎,会直接查 mysql ,现在就是用这个,所以内存爆了
    ianEros
        6
    ianEros  
       2023-06-27 10:04:56 +08:00
    @iamfenges #5 内存多大 ck 巨吃内存
    iamfenges
        7
    iamfenges  
    OP
       2023-06-27 10:05:24 +08:00
    @ianEros 感谢,准备改成用 canal 同步试试
    iamfenges
        8
    iamfenges  
    OP
       2023-06-27 10:05:56 +08:00
    @ianEros 才 8G[捂脸]
    wmz000
        9
    wmz000  
       2023-06-27 10:06:38 +08:00
    @wmz000 #1 我理解由于这两个的数据模型和查询语句等差距,用 ck 做 mysql 你需要做不少转换类的工作吧,比起加一层同步数据的工作量呢?
    ianEros
        10
    ianEros  
       2023-06-27 10:14:12 +08:00
    @iamfenges #8
    我说错了,映射表的引擎是 mysql
    8g 有点小,数据量大一点就不够用,如果用 canal 同步的话,离线数据还好,如果数据经常修改的话同步也很麻烦,MergeTree 同一条数据每次修改会存一条记录,同一条记录会存好几个版本
    rongpx95
        11
    rongpx95  
       2023-06-27 10:15:59 +08:00
    可以是可以,但是考虑到性能,你还需要定时把 MySQL 视图的数据,同步到 CK, 后面基于 CK 做分析
    wmz000
        12
    wmz000  
       2023-06-27 10:16:22 +08:00
    @iamfenges #8 看你数据量啦,稍微大点,8g 怕是不够 ck 吃的,哈哈
    IDAEngine
        13
    IDAEngine  
       2023-06-27 10:20:06 +08:00
    @iamfenges 最好 64G 内存起,玩 ck 的话,
    qzwmjv
        14
    qzwmjv  
       2023-06-27 11:43:16 +08:00
    8G 就别考虑 ck 了
    mywowo
        15
    mywowo  
       2023-06-27 11:58:47 +08:00
    8G 玩个啥 clickhouse
    sadfQED2
        16
    sadfQED2  
       2023-06-27 12:04:39 +08:00 via Android
    做从库没听说过,我们是 mysql binlog>kafka>flink>ck
    weijancc
        17
    weijancc  
       2023-06-27 12:06:38 +08:00
    楼上说内存的, 我用的是个假的 clickhouse 吗, 300w 数据量才占了 700m 内存
    nulIptr
        18
    nulIptr  
       2023-06-27 12:27:46 +08:00
    @weijancc 300w 数据要啥 ck 。数据少就 mysql 自己玩呗,量上来了再整后面的
    weijancc
        19
    weijancc  
       2023-06-27 12:47:48 +08:00
    @nulIptr 做 olap 的, 刚部署 10 来天, 一个月后数据就千万了.
    weijancc
        20
    weijancc  
       2023-06-27 12:52:58 +08:00
    @nulIptr 而且数据量小用 clickhouse 也没什么问题, 我之前数据量 50w, 在低价云主机上的 mysql 执行复杂查询+group 要 7 秒, 而 clickhouse 是秒出结果
    wxf666
        21
    wxf666  
       2023-06-27 13:03:09 +08:00
    @weijancc #20 好奇你原来的 SQL 是啥? 50W 数据量要 7 秒?
    Frankcox
        22
    Frankcox  
       2023-06-27 13:05:38 +08:00
    Clickhouse 的内存占用跟什么有关?我们有个单机 8C8G 的 Clickhouse ,里面有七八个表,两三个表有十几亿行,剩下的几千万行,日常任务都是很简单的单表根据 Time 间隔 Select ,看语句执行情况内存占用很少,只有几十还是几百 M ,但是 CPU 拉满了,且一般都是分钟级别查询。
    xieshaohu
        23
    xieshaohu  
       2023-06-27 13:41:25 +08:00
    clickhouse 可以把 Mysql 表做外表,你想要分析方便,直接建立外表,然后 insert select 语法把数据快速导入到 clickhouse , 之后再基于 clickhouse 做聚合分析就行了。
    zong400
        24
    zong400  
       2023-06-27 13:48:15 +08:00
    @sadfQED2 flink 是做什么,kafka 不是能直接到 ck 吗
    sadfQED2
        25
    sadfQED2  
       2023-06-27 13:59:00 +08:00 via Android
    @zong400 流式计算引擎,通过 flink 能够在插入前做各种处理,比如拼表,过滤某些字段等等
    wu00
        26
    wu00  
       2023-06-27 14:30:49 +08:00
    @iamfenges canal 也挺不稳定的,小项目用 docker 部署了一个单机版的用来监控 binlog ,隔三岔五的假死,翻遍了日志就是没有异常;有条件还是用云服务省心。
    brader
        27
    brader  
       2023-06-27 14:43:12 +08:00
    可以的,但是我建议你 clickhouse 库只做数据统计用,不要用于强依赖数据一致性的业务。另外 clickhouse 库一定一定要分开专门的服务器来安装,因为 clickhouse 会极致利用服务器资源,和其他软件掺杂一起,可能会影响其他软件的运行。
    自动同步数据的话,你可以看看这个项目,我觉得挺好用,主要是轻量
    https://github.com/brokercap/Bifrost
    v2orz
        28
    v2orz  
       2023-06-27 14:53:23 +08:00
    @ianEros #3
    canal 不好用,维护更新少,建议换别的 CDC 方案,比如 flink CDC ,或者 DataX
    vgbhfive
        29
    vgbhfive  
       2023-06-27 20:43:50 +08:00
    可以把数据实时同步到 ck ,然后 ck 做数据分析,我公司就是这么搞得,实时同步工具参考 clickhouse-mysql-data-reader
    iluckypig
        30
    iluckypig  
       2023-06-27 23:02:26 +08:00
    分析可以,业务不行。
    lixintcwdsg
        31
    lixintcwdsg  
       2023-06-27 23:02:58 +08:00
    现在大部分公司就是这么用的,从 mysql binlog 那边同步入 CK
    ck 就是个只读的从库
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3059 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 14:49 · PVG 22:49 · LAX 06:49 · JFK 09:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.