X-lab2017 / open-wonderland

X-lab 开放实验室的开源奇妙世界
60 stars 11 forks source link

[Clickhouse] 升级阿里云 Clickhouse 版本 #222

Closed frank-zsy closed 1 year ago

frank-zsy commented 1 year ago

实验室目前内部使用的阿里云 Clickhouse 云服务是 2021.1 创建的,CH 版本是 20.8,已经两年过去,目前社区版本已到 22.11,阿里云上的云服务最新版本已到 22.8,引入了很多新的功能,性能上也有较大提升。

我建议可以考虑一次阿里云 Clickhouse 云服务的升级,将服务版本升级至 22.8 版本。但由于阿里云 CH 云服务不支持原地升级,所以需要有如下的一些步骤:

不知道大家如何看

zhicheng-ning commented 1 year ago

挺好的~,旧的 CH 还有 19 天就过期

frank-zsy commented 1 year ago

目前的云上 CH 硬件规格为 32 核 128GB 内存 1500GB 硬盘单副本实例,由于之前有过一次表结构优化,硬盘空间需求有较大减少。

建议新实例的规格为 16 核 64GB 内存 1000GB 硬盘。因为按照目前的监控数据来看:

降配后每月使用成本预计可以降低 48% 左右,基本减半。

frank-zsy commented 1 year ago

挺好的~,旧的 CH 还有 19 天就过期

CH 一直都是包月自动续费的,所以到期时间一直都会在一个月以内~

zhicheng-ning commented 1 year ago

ok

frank-zsy commented 1 year ago

王老师觉得可以吗?@will-ww

will-ww commented 1 year ago

月自动续费的,所以到期时间一直都会在一个月以内~

太可以了,支持!

frank-zsy commented 1 year ago

已开通 22.8 实例,但之前使用的 JavaScript 客户端已无法适配当前的服务端版本,需要修改底层的连接库到官方库,这个官方库是今年 9 月刚刚发布的,支持的服务端最低版本就是 22.8。目前还没有到 1.0 版本,但我们没有更好的选择。

frank-zsy commented 1 year ago

导入程序的客户端已迁移至 clickhouse-js,已经开始线上导入,整体处理速度优于第三方客户端类库,以目前导入速度,完成已有 50 亿条记录的导入大概需要 30 小时左右。

frank-zsy commented 1 year ago

比预计的时间长了点,大概刚好 48 小时左右完成了历史数据导入,对于日常的脚本分析已经可以切换到新实例中。OpenDigger 的迁移在进行中。

frank-zsy commented 1 year ago

通过前期导入速度估算的导入时间显著小于实际导入时间,可能的原因是目前的官方库中存在内存泄露问题,会导致大量导入时出现内存上升和性能降低。目前来看对于 OpenDigger 中的大部分工作没有太大影响,但对于大规模操作,例如 OpenRank 数据导出(单次导入 4 亿条数据)时会出现内存不足的问题。已提了相关 Issue https://github.com/ClickHouse/clickhouse-js/issues/127 ,我也在查相关的代码,解决这个问题后应该会有性能上的提升,可以满足超大规模的处理。

frank-zsy commented 1 year ago

经测试,应该是没有内存泄露,但这个新客户端的数据插入速度较慢,导致输入侧堆积。目前通过降低插入速度可以满足日常使用需求。

frank-zsy commented 1 year ago

ClickHouse 升级基本完成,OpenDigger 除 Python kernel 外已经切向新实例

实验室同学已经开始使用新实例 @zhicheng-ning