Snowflake 中存储与计算的分离

问题描述 投票:0回答:2

Snowflake 的关键特性之一是存储和计算的分离。

虽然我确实明白这意味着什么,但我意识到我实际上并没有真正理解这有什么特别之处。更具体地说,我不明白没有它意味着什么,至少在云数据库的背景下。

例如,我读到 Redshift 没有提供这一点。这意味着什么?像 Redshift 这样的软件没有它能做什么(或者做得不如 Snowflake 好)?

注意:我并不是要讨论各种解决方案的优点,而只是讨论它们在某一特定功能方面的客观差异。

database snowflake-cloud-data-platform cloud
2个回答
0
投票

Snowflake 存储和计算解耦的主要优点是可扩展性。这意味着您可以让任意数量的用户访问相同的数据,而不会在非高峰时段计算资源利用率不足。从这里

云基础设施独特地实现了充分的弹性 因为资源可以随时添加和丢弃。这使得 可以为所有用户提供您所需的资源,并且 工作负载,但只有一个旨在充分利用的架构 云的优势。 Snowflake 的存储、计算、 和系统服务使得动态修改成为可能 系统的配置。资源可以调整大小和规模 独立、透明、即时。这使得它成为可能 让 Snowflake 在多个维度上提供充分的弹性:

数据:存储的数据量可以随时增加或减少。与无共享架构不同,其中 计算存储固定,计算配置确定 与系统中的数据量无关。这种架构 还使得以非常低的成本存储数据成为可能,因为没有 将数据存储在数据库中需要计算资源。

Compute:用于查询处理的计算资源也可以是 随着工作负载的强度随时放大或缩小 系统变化。因为存储和计算是解耦的, 数据是动态分布的,改变计算资源不会 需要重新整理数据。计算资源可以更改 即时、无中断。


0
投票

存储和计算解耦允许各自独立扩展。这非常强大,因为它允许调整每个的大小,并且可以随着工作负载的变化轻松调整计算的灵活性。

这有一个缺点。硬件还需要解耦才能启用此功能,这会增加成本并产生数据移动瓶颈。为了缓解这些瓶颈,软件实施了高级缓存和其他技术,这些技术在大多数情况下运行得相当好,但这些会导致新的性能权衡和一些额外成本。这是一个经典的“灵活性的成本和收益是什么?”情况每个都很难量化。

灵活资源和定制资源之间的选择取决于客户的需求。如果您有大量且相当固定的工作负载,那么定制资源将以更低的成本提供更高的性能。但如果您的工作量变化很大,那么灵活性将降低成本。宇宙中没有魔法,解耦有成本也有好处。

为了澄清您对 Redshift 的描述,它确实为已配置集群的固定计算与存储比率提供了许多不同的选项。这些配置的集群类型还可以处理存储在云 Redshift Spectrum 中的其他数据,从而提供存储的可扩展性。它们还具有并发扩展功能,允许计算随着工作负载的增加而自动扩展。此外,Redshift 有一个完全解耦的选项,即 RA3 类型,它为计算灵活性提供了完整的存储。因此,只有当我们谈论 7 或 8 年前的 Redshift 功能(我在上面的回答中所做的)时,您的比较点才有效。

© www.soinside.com 2019 - 2024. All rights reserved.