You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在dbt中加载BigQuery分片表作为数据源?

处理BigQuery分片表的dbt数据源配置方案

方案一:BigQuery视图 + dbt源定义

dbt的schema.yml不支持直接用通配符指定表名,最直接的解决方式是先在BigQuery层聚合分片表:

  • 在BigQuery中创建视图,自动包含所有ad_d_*分片表:
    CREATE OR REPLACE VIEW `你的项目ID.funnel_io_ads.ad_combined` AS
    SELECT * FROM `你的项目ID.funnel_io_ads.ad_d_*`
    
    这个视图会自动识别新增的分片表,不需要手动更新。
  • 修改dbt的schema.yml,将这个视图定义为源:
    version: 2
    
    sources:
      - name: funnel_io_ads
        tables:
          - name: ad_combined
            description: 聚合所有ad_d_*分片表的视图
    

方案二:dbt自定义宏动态查询

如果不想创建额外视图,可通过dbt宏生成带通配符的查询:

  • 编写宏文件(比如macros/get_sharded_ad_data.sql):
    {% macro get_sharded_ad_data() %}
      SELECT * FROM `你的项目ID.funnel_io_ads.ad_d_*`
    {% endmacro %}
    
  • 在dbt模型中直接调用宏:
    {{ get_sharded_ad_data() }}
    
    每次运行模型都会自动查询所有分片表,无需手动维护配置。

关于增量模型的说明

增量模型更适合逐步加载新增数据的场景,如果只是需要一次性查询全部分片表,上面两种方案更高效。若后续要仅加载当月新增分片,可结合增量模型和宏,在增量过滤条件中匹配分片表的年月后缀。

内容的提问来源于stack exchange,提问作者Christoph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 10:50:46