繁体   English   中英

大型 BigQuery 上的 DBT 增量实现使用完整扫描

[英]DBT incremental materialization on huge BigQuery use a full scan

我在 BigQuery 上有一个巨大的表,我想增量加载以节省 BigQuery 处理。

这是伪代码/配置:

config(
    materialized='incremental',
    incremental_strategy = 'insert_overwrite',
    partition_by = {'field': 'load_date', 'data_type': 'date'}
)
}}


select * from {{ source('huge_table') }}
{% if is_incremental() %}
    where load_date >= (select max(load_date) from {{ this }})
{% endif %}

该表在load_date列上进行了分区,我希望使用max(load_date)来优化查询并使用最后一个分区。

相反,查询正在执行完整扫描并消耗许多资源。

有人知道如何优化这个 DBT 加载吗?

如果这是您的完整配置,那么我认为问题在于使用insert_overwrite策略而不指定partitions键。

Jeremy Cohen 在这里写了一篇很棒的文章。

但基本上,如果您要替换一组固定的分区,只需在配置中定义这些分区,优化器就会感谢您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM