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

BigQuery运行ga_sessions表增量ETL时STRUCT字段读取错误问题咨询

报错原因

该错误是由于你在查询/ETL逻辑中,将trafficSource.adwordsClickInfo.targetingCriteria设为了必填STRUCT类型,但11月16日分区的部分数据中该字段为空、或嵌套子字段结构不匹配,触发了类型校验失败。GA官方输出的原始会话表所有字段默认均为可空(NULLABLE),仅当日的部分广告点击数据未回传定向规则内容,才会仅单日触发报错。

定位异常记录方法

执行以下查询即可捞出11月16日分区中所有触发报错的异常行(请替换表名和STRUCT内的子字段定义为你实际的结构):

SELECT 
  fullVisitorId,
  visitId,
  trafficSource.adwordsClickInfo
FROM `你的项目ID.你的数据集名.ga_sessions_20231116`
-- 安全访问返回NULL即代表该字段不符合要求
WHERE SAFE.trafficSource.adwordsClickInfo.targetingCriteria IS NULL
-- 排除adwordsClickInfo本身为空的正常非广告流量
AND trafficSource.adwordsClickInfo IS NOT NULL

忽略异常记录的解决方案

根据你的业务需求选择以下任意一种方案即可:

  • 方案一:查询时用SAFE.前缀访问该STRUCT字段,访问异常时会自动返回NULL而非触发报错,示例:
    -- 把原来的字段引用
    trafficSource.adwordsClickInfo.targetingCriteria.campaignId
    -- 改成
    SAFE.trafficSource.adwordsClickInfo.targetingCriteria.campaignId
    
  • 方案二:在查询的WHERE条件中新增过滤规则,直接排除异常行:
    WHERE SAFE.trafficSource.adwordsClickInfo.targetingCriteria IS NOT NULL
    
  • 方案三:如果是ETL输出表的字段约束问题,将输出表中targetingCriteria字段的模式从必填(REQUIRED)修改为可空(NULLABLE)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:54:02