现代云数据仓库中的存储和计算是否分离?

Is the storage and compute decoupled in modern cloud data warehouses?

非常感谢,我现在很困惑,如果有人能插手解释一下,那就太好了!

你有理由感到困惑,因为很多地方都应用了一层厚重的营销。让我们从一些事实开始:

所有数据库都需要本地磁盘才能运行。此磁盘可以存储 tables 的永久版本(经典的本地存储 tables 并且需要存储本地工作数据集以便数据库运行。即使在没有 tables 永久存储在本地磁盘上,本地磁盘的大小很重要,因为这允许处理和缓存从远程存储获取的日期。

永久 tables 的远程存储有两种“风格”——定义为外部 tables 和透明远程 tables。虽然这些风格的工作方式以及每个不同的数据库如何优化它们有很多差异,但它们都将 table 的永久版本存储在远离数据库计算系统的磁盘上。

远程永久存储有利也有弊。 “解耦”是远程永久存储最常被提及的优势。这只是意味着您不能用“冷”数据的存储填满本地磁盘,因为在这种情况下,只有“使用中”的数据存储在本地磁盘上。需要明确的是,如果工作数据集太大,即使使用远程永久存储,您也可以填满(或耗尽)本地磁盘。远程永久存储的缺点是数据是远程的。通过网络访问一些灵活的存储解决方案意味着获取数据需要更多时间(所有数据库系统都有自己的方法来尽可能多地隐藏它)。这也意味着对数据的一致性控制也是跨网络的(在某些方面),并且也会带来影响。

External tables和transparent remote tables都是remote permanently store,但是有区别。外部 table 与 fully-owned table 所在的一致性结构不同(无论是本地还是远程)。透明远程只是意味着数据库正在使用远程 table “好像”它是本地拥有的。

VM 不会更改本地磁盘情况。一定数量的磁盘被分配给盒子中的每个 VM,并且一定数量的本地磁盘被分配给每个 VM。磁盘仍然是本地的,只是只有一部分物理磁盘可以被任何一个 VM 寻址。

所以离开事实,转向观点。虽然营销人员会告诉您为什么一种数据库存储在所有情况下都优于另一种,但事实并非如此。每种都有优点和缺点,哪种最适合您取决于您​​的需求。只提供一种数据组织的数据库供应商会告诉你这是最好的选择,而且它适合一些人。

本地 table 对于那些数据访问速度至关重要且缓存不起作用的应用程序,本地存储总是更快。但是,这意味着 DBA 将需要做一些工作来维护 on-disk 数据已优化并且适合可用的本地存储(对于所需的计算大小)。这是真正的工作,需要时间和精力。移动远程的好处是减少了这项工作,但它是以数据库成本、硬件成本、and/or 性能的某种组合为代价的。有时值得权衡,有时不值得。