趋近智
传统MPP系统采用无共享架构,存储容量与计算能力紧密耦合。在这些环境中,即使CPU利用率接近零,为存储历史日志增加存储空间也需要增加计算节点。反之,为复杂数据转换增加处理能力,则必须额外配置不必要的存储容量。现代数据仓库平台通过物理和逻辑上分离计算层与存储层,彻底改变了这种局面。
这种架构转变依赖于云对象存储(例如Amazon S3、Google Cloud Storage或Azure Blob Storage)的弹性,它作为持久化存储库,而处理数据的瞬时计算集群可以独立地启动、调整大小或暂停。
在分离式架构中,数据库引擎分为三个不同层面。理解这些层如何协作,对于优化查询性能和成本而言十分重要。
下图展示了多个独立的计算集群如何通过全局元数据服务,与单一共享存储层进行交互。
全局服务层、不同计算集群和共享存储层之间的交互。
分离式架构中的主要工程问题是网络延迟。通过网络从对象存储读取数据,远比传统耦合系统中从本地磁盘读取数据慢得多。为缓解此问题,平台采用了积极的缓存策略。
当查询执行时,计算节点从远程存储层获取所需的微分区。这些文件随后缓存在计算节点的本地SSD上(通常称为“SSD缓存”或“磁盘缓存”)。后续访问相同数据的查询可以直接从本地SSD读取,从而避免网络传输。
此模型中的性能是缓存命中率的函数。查询的有效带宽 可以近似表示为:
其中:
由于 ,保持高缓存命中率对性能表现非常重要。这意味着,尽管计算在技术上是无状态的,但存在一个“预热”期,即一个冷集群必须下载数据才能达到最佳性能。
将计算与存储分离的一个显著优点是消除了不同工作负载之间的资源争用。在耦合系统中,一个处理数TB数据的繁重ETL作业会与CEO的执行仪表盘争抢相同的CPU和I/O资源。
在分离式系统中,您可以启动一个专用的“ETL集群”和一个独立的“报告集群”。这两个集群都引用相同的底层存储文件。元数据层确保报告集群看到数据的一致快照,即使ETL集群正在写入数据。这依赖于多版本并发控制(MVCC),即写入操作创建新的不可变文件,而不是修改现有文件。
分离允许不同的扩展行为。存储成本随数据量线性增长,而计算成本则根据查询复杂度和用户并发量波动。这种弹性防止了资源过度配置。
假设一种场景,数据量保持不变,但在工作时间查询负载激增。分离式系统允许计算层横向扩展(增加更多集群)或纵向扩展(调整集群大小),而无需重新分配数据。
下表展示了分离式资源使用效率与传统耦合方式在24小时周期内的对比。
资源配置对比。耦合模型需要始终为峰值负载配置资源,而分离模型则允许计算与实际需求保持一致。
虽然分离提供了灵活性,但它也使数据治理更复杂。由于存储层可供任何授权的计算集群访问,因此确保一致的访问控制是集中式元数据层的职责。安全策略(例如行级安全)必须由查询引擎在运行时执行,而不是由存储层本身执行。
此外,该架构本身具有的“时间旅行”功能,通过不可变存储块实现,让工程师能够查询数据在过去某个时间点的状态。这通过简单引用指向旧的、未删除的存储文件的元数据指针来完成,为防止意外数据损坏提供了保障,而无需传统的备份恢复操作。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造