全部产品
Search
文档中心

云数据库 ClickHouse:社区兼容版集群垂直变配和水平扩缩容

更新时间:Dec 13, 2024

为了应对业务的不断变化,当您需要调整云数据库 ClickHouse 社区兼容版集群的配置或规模时,您可以对云数据库ClickHouse进行垂直变配和水平扩缩容操作,以帮助您的业务在成本与性能之间达到最佳平衡。

垂直变配和水平扩缩容概览

垂直变配相比水平扩缩容,变配耗时更短,因此对您的业务影响更小。当您的集群性能指标未能满足业务需求时,建议优先考虑垂直变配。

变更类型

适用场景

原理

影响

操作

垂直变配

CPU、内存、磁盘资源不足或冗余时,增加或减少每个节点的资源。

增加或减少社区兼容版集群的节点规格、存储空间和ZooKeeper规格,纵向扩展集群的计算能力、存储空间能力和分布式协作能力

说明

存储空间不支持垂直降配。存储空间缩容解决方案如下。

  • 如果您是多节点实例,您可以考虑水平缩容一个节点来达到存储空间缩容的目的,具体需要根据您的业务需求而定。

  • 如果您是单节点实例,您可以考虑新建实例,通过实例迁移来达到存储空间缩容的目的。

社区兼容版集群进行升级存储类型和增加存储空间后不会对实例产生影响(仅2021年12月01日之后创建的实例),但在变更集群规格和ZooKeeper规格后会重启集群。

重要
  • 垂直变配所需时间为10至15分钟。重启集群所需的时间与集群的数据量密切相关:库表数量及冷存数据量越多,启动时间越长。

  • 针对双副本集群,因为涉及到副本之间的请求切换,升级过程中集群可能出现连接闪断现象,建议在业务低峰期进行变配并保证业务有重试机制。

  • 针对单副本集群,整个升级过程中集群不可用,建议在业务低峰期或停写状态下进行变配并保证业务有重试机制。

  • ZooKeeper在业务高峰期进行变配可能会导致库表元数据和实际数据不一致,建议在业务低峰期或停写状态下进行变配。

垂直升配和垂直降配

水平扩容

  • 迁移扩容:扩容后的集群数据需重新分布的场景。

  • 简单扩容:

    适用于集群满足以下条件的场景:

    • 在集群扩容前,数据写入方式是直接写入本地表,或者写入sharding key为rand方式的分布式表。

    • 扩容前后节点间的数据无需均衡。

重要

集群中包含ReplacingMergeTree、CollapsingMergeTree、VersionedCollapsingMergeTree等表引擎的表,禁止使用简单扩容。由于这些类型的表的数据只有在同一个节点上才能合并,然而,简单的扩容会导致需要合并的数据被分散到不同的节点,从而使其无法进行合并。

迁移扩容:迁移扩容将增加社区兼容版集群节点数量,横向扩展集群的计算能力,并对已有历史数据进行迁移和数据重分布。

简单扩容:迁移扩容将增加社区兼容版集群节点数量,横向扩展集群的计算能力,数据是直接写入本地表模式且扩容前后不依赖节点间的数据均衡。

社区兼容版集群在水平扩容过程中,除最后1%阶段不可写外,全程可读可写

水平扩容和水平缩容

水平缩容

  • 水平缩容:

    • 减少节点,节约成本。

    • 随机下线节点,没有指定固定的节点。

  • 指定节点缩容:下线指定的集群规格类型为大存储规格的集群。

减少社区兼容版集群节点数量,降低成本。

社区兼容版集群在水平缩容过程中,除最后1%阶段不可写外,全程可读可写。

水平扩容和水平缩容

前提条件

  • 集群状态为运行中。

  • 集群没有未完成支付的续费订单。

    说明

    您可以登录云数据库ClickHouse控制台,在页面右上角,选择费用 > 费用与成本在左侧导航栏,单击订单管理,完成订单支付或作废该订单。

注意事项

  • 垂直变配:仅2021年12月01日之后创建的云数据库ClickHouse社区兼容版集群支持变更ZooKeeper规格。ZooKeeper规格费用请参见社区兼容版ZooKeeper规格费用

  • 水平扩缩容:

    • MergeTree类型引擎表水平扩容后,会将原有历史数据迁移写入新的集群中并自动完成重分布。

    • 非MergeTree类型(如外表,Log表等)水平扩容后,仅进行表结构迁移,不进行数据迁移。物化视图仅进行结构迁移,不进行数据迁移。

    • Kafka/RabbitMQ引擎表不支持迁移,扩缩容前先删除。

    • 水平扩容后内部节点IP会发生变化,如果依赖节点IP数据写入和访问,需重新获取集群的VPC网段IP,具体操作,请参见获取集群的VPC网段IP

    • 仅本地盘版本支持指定节点缩容。在指定节点缩容模式下,被下线的节点的数据将会丢失;而在水平缩容模式下,数据则不会丢失,而是会进行重分布。

  • 费用:变更集群配置后,费用将会发生变化,具体费用请以控制台为准。更多信息,请参见变更配置计费说明

垂直升配和垂直降配

  1. 登录云数据库ClickHouse控制台

  2. 在页面左上角,选择集群所在地域。

  3. 集群列表页面,选择社区版实例列表

  4. 在目标集群ID操作列,单击变更配置

  5. 变更配置弹窗中,选择垂直升配或者垂直降配,单击确定

  6. 变配降配页面,根据业务需求选择相应的变更配置。

    说明
    • 存储空间存储类型在进行变配时,不能与规格同时进行变配。

    • 集群默认提供4核8 GB的ZooKeeper规格。您可以在监控告警页面的集群监控面板查看ZooKeeper指标是否存在资源瓶颈,当默认规格不满足业务需求时请及时升配。

  7. 单击立即购买,根据提示完成支付。

  8. 支付完成页面,单击管理控制台

  9. 社区版实例列表状态列,可查看目标集群的状态。

    说明
    • 变更存储空间后,变更立即生效,集群状态为运行中

    • 变更规格ZooKeeper规格后,预计等待10~15分钟。当集群状态由变配中转变为运行中时,垂直升配或垂直降配成功。

水平扩容和水平缩容

  1. 登录云数据库ClickHouse控制台

  2. 在页面左上角,选择集群所在地域。

  3. 集群列表页面,选择社区版实例列表

  4. 在目标集群ID操作列,单击变更配置

  5. 变更配置弹窗中,选择水平扩容或者水平缩容,单击确定

  6. 在弹出的扩容或缩容检测窗口,查看检测状态。

    说明

    进入检测窗口时,水平扩容默认选择的迁移扩容的方式,如需选择简单扩容,需单击此页面的上一步,在扩容选择弹框中,选择简单扩容,单击下一步,进入变配页面。

    • 检测成功:单击下一步

    • 检测失败:根据页面提示进行相应修改,修改完成后单击重试检测。检测成功后,单击下一步

      在水平扩容的过程中,检测失败的原因主要有以下几种。

      • 缺失唯一的分布式表:表示本地表没有创建分布式表,需要再创建一个对应的分布式表。

      • 对应的分布式表不唯一:表示本地表有不止一个分布式表,请删除多余的分布式表,仅保留一个即可。

      • Kafka/RabbitMQ引擎表不支持:表示存在Kafka/RabbitMQ引擎表,请删除。

      • 多副本实例存在非Replicated的*MergeTree表:表示数据在多副本之间不一致,扩缩容在迁移数据期间会出现异常。

      • 分布式表和本地表的列不一致:表示需要您修改分布式表和本地表的列一致,否则扩缩容在迁移数据期间会出现异常。

  7. 变配降配页面,根据您的业务需求,配置节点数量以及停写时间。

    说明

    集群扩缩容会发生数据迁移,为了保证迁移的成功率,停写时间有以下要求:

    • 建议您停写时间至少设置30分钟。

    • 扩缩容必须在配置变更创建后的5天内结束,因此,源集群停写时间的结束日期必须小于或等于当前日期+5

    • 为了降低扩缩容对您业务的影响,建议您设置的停写时间范围处于您的业务低峰时段。

  8. 单击立即购买,并根据页面提示完成支付。

  9. 订购完成页面,单击管理控制台

  10. 社区版实例列表状态列,可查看目标集群的状态。当集群状态由扩缩容中转变为运行中时,水平扩容或水平缩容成功。

说明

水平扩容或水平缩容预计等待30分钟以上,等待时长和数据量相关,具体任务执行状态以控制台显示的集群状态为准。