了解动态表的仓库使用情况¶
每个动态表都需要一个仓库来运行其刷新。您可以在创建动态表时指定此仓库,Snowflake 会自动将其用于所有计划刷新。
有关为动态表配置仓库的指南,请参阅 调整仓库配置。
How warehouse size affects refresh performance¶
仓库更大并不总是会导致成本更高。在许多情况下,将仓库大小增加一倍会使每秒成本增加一倍,但运行时会减半。这会使总成本相当,但刷新速度更快。更大的仓库通过两种方式提高性能:
内存:当刷新需要的内存超过仓库提供的内存时,数据会溢出到本地存储。这种溢出会增加总计算工作量并减慢刷新过程。更大的仓库拥有更多内存,可以完全避免溢出。
并行:更大的仓库可同时运行更多任务。跨多个分区扫描大量数据的刷新受益最大。使用更大的仓库时,小型数据集和顺序操作的收益递减。
For more information about warehouse sizing, see 仓库规模.
双仓库支持¶
动态表支持不同刷新类型使用单独的仓库:
WAREHOUSE:定期运行增量刷新。
INITIALIZATION_WAREHOUSE:运行 初始化和完全刷新,它们会执行完整的数据扫描,并且通常更耗费资源。
重要
When you refresh manually by running ALTER DYNAMIC TABLE REFRESH COPY SESSION, the command uses the current session's warehouse. Snowflake ignores the INITIALIZATION_WAREHOUSE in this scenarios, even for initializations.
这种独立功能使您可以使用更大的仓库进行资源密集型初始化,而无需在定期增量刷新时支付该容量的费用。双仓库支持在以下常见场景中非常有用:
您希望在将辅助动态表提升为主动态表时更快恢复,并且必须重新初始化该表。
您必须满足严格的 RTO/RPO 要求,但又不想增加日常运营成本。
When you don't set the INITIALIZATION_WAREHOUSE parameter, Snowflake runs all refreshes on the warehouse specified by WAREHOUSE.