更改现有动态表

本节介绍如何使用 ALTER DYNAMIC TABLE 命令对现有动态表进行更改:

  • 更改动态表的仓库或目标滞后

  • 为动态表重命名、交换或添加群集密钥

更改动态表的仓库或目标滞后

您可能希望调整动态表的仓库以提高成本效率或提高性能。有关更多信息,请参阅 计算成本仓库配置如何影响动态表性能

您可能希望调整动态表的目标滞后,以获取更新的数据、降低计算成本或更好地与上游依赖关系的刷新间隔保持一致。有关更多信息,请参阅 了解动态表目标滞后

要更改动态表的仓库或目标滞后,请使用 ALTER DYNAMIC TABLE 命令。例如:

-- Change the warehouse for my_dynamic_table to my_other_wh:
ALTER DYNAMIC TABLE my_dynamic_table SET
  WAREHOUSE = my_other_wh;
Copy
-- Specify the downstream target lag for a dynamic table:
ALTER DYNAMIC TABLE my_dynamic_table SET
  TARGET_LAG = DOWNSTREAM;
Copy

重命名动态表

如果您的脚本或应用程序依赖于特定表名称,并且您希望在不更改现有脚本的情况下更新动态表,则重命名动态表可能很有用。例如,如果您有一个引用特定动态表名的脚本,通过重命名表,您可以在不更改脚本的情况下更换基础表。这确保了连续性,并避免了跨脚本或进程更新多个引用的麻烦。

要重命名动态表,请使用 ALTER DYNAMIC TABLE ... RENAME TO 命令。例如:

ALTER DYNAMIC TABLE my_dynamic_table RENAME TO my_new_dynamic_table;
Copy

交换动态表

交换动态表可以实现数据集或表版本之间的无缝过渡,而不会干扰工作流程或修改依赖的脚本。例如,如果您正在开发表的新版本,但希望保持现有名称以供正在进行的流程使用,通过交换,您可以将旧表替换为新表。这种方法确保了连续性,同时使得在最小的停机时间或干扰下进行更新、测试或升级成为可能。

要交换动态表,请使用 ALTER DYNAMIC TABLE ... SWAP WITH 命令。请注意,您只能将动态表与另一个动态表交换。

例如:

-- Swap my_dynamic_table with the my_new_dynamic_table:
ALTER DYNAMIC TABLE my_dynamic_table SWAP WITH my_new_dynamic_table;
Copy

向动态表中添加群集密钥

向动态表中添加群集密钥可以通过提高查询效率和刷新操作来增强性能:

  • 查询效率:与常规表一样,通过对常用联接键或筛选列进行聚类,群集密钥可以帮助加速查询。

  • 刷新操作:如果群集密钥与频繁的更改模式保持一致,则群集密钥可以帮助加快刷新速度;例如,当有少数用户发生变更时,按用户 ID 进行聚类可能会非常有效。

群集密钥可以为动态表的增量刷新模式或完全刷新模式指定。 在完全刷新模式下,聚类操作会在刷新过程中执行,因此无需后台重聚类。

要对动态表进行聚类,请使用 ALTER DYNAMIC TABLE ...CLUSTER BY 命令:

ALTER DYNAMIC TABLE my_dynamic_table CLUSTER BY (date);
Copy
语言: 中文