DBT在运行时会检查表格的依赖关系,如果依赖关系发生了变化,DBT将会删除并重建相应的表格。但是,如果依赖关系没有变化,DBT将不会重建表格,而是仅仅更新表格。
代码示例:
如下是一个示例选择语句,该语句使用到了从一个名为orders的表格中选择数据。当运行dbt run时,如果orders表格的数据没有变化,DBT将不会重建该表格,而是仅更新表格中的数据。
-- my_select.sql
select *
from {{ ref('orders') }}
where order_date >= '2021-01-01'
DBT将检测查询所引用的表格(例如“orders”),并查找该表格的元数据。如果表格的元数据与上次重新编译时相同,DBT将不会重新构建该表格,而是直接使用上一次运行时所生成的表格数据。