You need to enable JavaScript to run this app. BigQuery空前缀通配符查询匹配错误表原因咨询
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery空前缀通配符查询匹配错误表原因咨询

问题根因

出现该问题的核心原因是BigQuery 通配符表查询的 Schema 推断发生在查询编译阶段,早于 _TABLE_SUFFIX 过滤条件的执行,具体逻辑如下:

  • 当你使用空前缀通配符 `my_project.my_dataset.*` 时,编译阶段会扫描数据集下所有表来推断本次查询的输出 Schema:
    1. 新增ios_daily_report_20210505表后,通配符匹配到了结构不同的Android_ad_revenue_raw_20210428和ios_daily_report_20210505两个表
    2. 两个表结构不兼容时,BigQuery 默认会选取最新创建的ios_daily_report_20210505的表结构作为本次查询的输出 Schema
    3. 后续执行阶段才会应用_TABLE_SUFFIX = 'Android_ad_revenue_raw_20210428'过滤条件,此时实际读取的是Android表的数据,但列结构已经被固定为iOS表的结构,两者列不匹配,因此返回的所有行数据都是null
  • 当你调整为带前缀的通配符 `lovely-pets-2-dog-world-173288.appsflyer.A*` 时:
    1. 编译阶段通配符仅匹配A开头的表,只有Android_ad_revenue_raw_20210428符合匹配规则,因此直接使用该表的结构作为查询输出Schema
    2. 执行阶段过滤_TABLE_SUFFIX后读取的数据结构和输出结构完全匹配,因此可以返回正常结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 03:36:06