动态表的工作原理

创建动态表时,可以指定用于从一个或多个基对象或动态表转换数据的查询。自动刷新过程会定期执行此查询,并使用对基对象所做的更改来更新动态表。

流/任务与动态表之间的比较

此自动化过程计算对基对象所做的更改,并将这些更改合并到动态表中。若要执行此工作,该过程将使用与动态表关联的计算资源。 有关资源的更多信息,请参阅 了解动态表的成本

创建动态表时,您可以为数据指定目标“新鲜度”(目标 滞后)。例如,您可以指定数据最多应比基表更新晚五分钟。基于此目标新鲜度,自动化过程会设置刷新,以便动态表中的数据在此目标内保持最新(即在基表更新后的五分钟内)。

如果数据不需要刷新,则可以指定更长的目标新鲜度时间以降低成本。例如,如果目标表中的数据最多只需要比基表的更新晚一小时,则可以将目标新鲜度指定为一小时(而不是五分钟)以降低成本。

何时使用动态表

有几种方法可以转换管道中的数据(例如,流和任务、CTAS、您自己的自定义解决方案)。动态表是一种数据转换的选项。

动态表最好在以下情况下使用:

  • 您不需要编写代码来跟踪数据依赖项和管理数据刷新。

  • 您不需要,也不想避免流和任务的复杂性。

  • 您确实需要具体化多个基表的查询结果。

  • 您需要构建多个表,以通过 ETL 管道转换数据。

  • 不需要精细的刷新计划控制,只需为管道指定目标数据新鲜度。

  • 您不需要使用不受支持的动态查询构造,例如 存储过程完全刷新中支持的非确定性函数 中列出的非确定性函数或 外部函数,也不需要使用作为外部表、流或物化视图的动态表的源。

备注

动态表可用作流的源。 一起使用时,基于动态表的流的工作方式与任何其他流一样。有关其他信息和示例,请参阅 动态表与流、任务和物化视图的比较

语言: 中文