了解动态表的仓库使用情况¶
每个动态表都需要一个仓库来运行其刷新。您可以在创建动态表时指定此仓库,Snowflake 会自动将其用于所有计划刷新。
有关为动态表配置仓库的指南,请参阅 调整仓库配置。
仓库大小如何影响刷新性能¶
仓库更大并不总是会导致成本更高。在许多情况下,将仓库大小增加一倍会使每秒成本增加一倍,但运行时会减半。这会使总成本相当,但刷新速度更快。更大的仓库通过两种方式提高性能:
内存:当刷新需要的内存超过仓库提供的内存时,数据会溢出到本地存储。这种溢出会增加总计算工作量并减慢刷新过程。更大的仓库拥有更多内存,可以完全避免溢出。
并行:更大的仓库可同时运行更多任务。跨多个分区扫描大量数据的刷新受益最大。使用更大的仓库时,小型数据集和顺序操作的收益递减。
有关仓库大小的更多信息,请参阅 仓库规模。
双仓库支持¶
动态表支持不同刷新类型使用单独的仓库:
WAREHOUSE:定期运行增量刷新。
INITIALIZATION_WAREHOUSE:运行 初始化和完全刷新,它们会执行完整的数据扫描,并且通常更耗费资源。
重要
当您通过运行 ALTER DYNAMIC TABLE REFRESH COPY SESSION 进行 手动刷新 时,该命令会使用当前会话的仓库。在这种情况下,Snowflake 会忽略 INITIALIZATION_WAREHOUSE,即使是初始化也是如此。
这种独立功能使您可以使用更大的仓库进行资源密集型初始化,而无需在定期增量刷新时支付该容量的费用。双仓库支持在以下常见场景中非常有用:
您希望在将辅助动态表提升为主动态表时更快恢复,并且必须重新初始化该表。
您必须满足严格的 RTO/RPO 要求,但又不想增加日常运营成本。
当您未设置 INITIALIZATION_WAREHOUSE 参数时,Snowflake 会在 WAREHOUSE 指定的仓库上运行所有刷新。