
本文字数:6753;估计阅读时间:17 分钟
作者: Dmitry Pavlov
本文在公众号【ClickHouseInc】首发

在现代云数据库服务中,计算资源分离 (compute-compute separation) 是一种强大的技术,它通过为特定的工作负载、用户或业务功能提供独立的计算资源,优化数据库性能和资源管理。不同于传统的资源共享模式,这种方法可以为不同类型的数据库操作(如读和写)提供专属计算实例,降低操作之间的干扰。对于负载波动较大的环境,这种方式尤其重要,因为它能够确保查询速度和可靠性不受影响。
在本文中,我们将介绍 ClickHouse Cloud 中的计算资源分离技术,解释其重要性,并重点说明它能为用户带来哪些具体优势。
什么是计算资源分离?
计算资源分离指的是数据库系统为不同的用户、工作负载或操作类型分配独立的计算资源,避免它们相互干扰。这样可以确保查询的性能和稳定性不受其他任务影响。虽然配额和限制也可以在一定程度上达到类似效果,但它们的灵活性和保障性远不及计算资源分离。
简而言之,用户可以创建多个独立的计算池,它们可以读取和写入相同的数据,但分别用于不同的任务。
计算资源分离的优势
这种模式在以下场景中尤为实用:
1. 读写分离
在某些场景下,写入操作对执行时间非常敏感,因此数据库中的其他查询不应影响 INSERT 和 UPDATE 的执行。如果用户直接提交查询,或者使用 BI 工具执行临时查询 (ad-hoc queries),可能会导致资源消耗过大,影响整体性能。
计算资源分离允许我们为 INSERT 操作等关键任务分配专属计算资源,确保其性能不受其他查询影响。在某些情况下,读取操作可能比写入更重要,此时也可以使用相同的方法为其分配独立计算资源。
2. 为不同团队和业务需求提供专属计算资源
大型企业往往有多个团队或部门共享同一个数据库或数据仓库。不同团队可能有不同的查询性能需求,并且更倾向于独享计算资源,以保证查询性能的一致性。
此外,许多团队希望能够独立管理数据库成本,以便进行责任划分和预算控制。
在这种情况下,计算资源分离带来了多重优势:
-
隔离不同团队的查询任务,避免相互影响。
-
灵活调整计算资源,每个团队可以根据需求选择合适的计算规模和成本。
-
独立计费,使查询成本一目了然,尤其适用于启用了空闲计算管理的场景。
3. 为不同工作负载提供灵活的高可用性级别
不同的工作负载对高可用性的需求各不相同。有些任务至关重要,而另一些则可以接受较低的可用性,以减少成本。例如:
-
终端用户产品的图表和可视化需要最高级别的可用性,因此应部署在三个可用区 (Availability Zones) 中。这类查询通常较为简单,对 CPU 和内存的需求较低。
-
ETL/ELT 查询既重要又计算密集,但失败后可以自动重试。因此,仅在两个可用区部署两个节点即可满足需求。
-
大规模临时查询 (ad-hoc queries)需要大量内存,并且通常由分析师手动执行。由于分析师通常只在每周 5 天、每天 8 小时的工作时间内使用这些查询,因此在非工作时间可以释放计算资源。此外,如果某个节点短暂故障,他们也能接受偶尔的查询失败。在这种情况下,仅在一个可用区部署单节点即可满足需求。

最低0.47元/天 解锁文章
9295

被折叠的 条评论
为什么被折叠?



