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

BigQuery查询GA会话数据保存时报Schema is not flat错误如何解决

问题根本原因

该报错的核心原因是查询输出的结果列仍包含数组/嵌套结构体类型,而Google Drive支持的导出格式(CSV、Google Sheets等)要求输出为完全扁平的一维结构,不允许单个单元格存储多条数据。
你此前仅对hits数组做了拆分行操作,但h.customDimensions本身也是嵌套数组类型,单个hit下可对应多组index和value,因此输出结果中该列仍为非扁平结构,导出时就会触发报错。数据存储本身不存在问题,这是Google Analytics数据导出到BigQuery时的标准嵌套存储结构,只需在查询时完成完全打平即可解决问题。

修复方案

你需要再对customDimensions数组做一次unnest操作,将index和value展开为独立的扁平字段,修改后的查询代码如下:

SELECT 
  cd.index AS custom_dimensions_index,
  cd.value AS custom_dimensions_value
FROM `database-314102.70657995.ga_sessions_20211129`,
UNNEST(hits) AS h,
UNNEST(h.customDimensions) AS cd
LIMIT 1000

如果需要保留会话、hit级别的其他字段,可在SELECT子句中对应添加,只要最终输出的所有字段都是非数组、非嵌套的基础类型(字符串、数值、时间等),即可正常导出到Google Drive。
如果业务场景需要保留同一个hit下的多个customDimension不拆分行,也可以将数组先聚合为字符串再导出,示例代码如下:

SELECT 
  -- 将同一个hit下的所有customDimension拼接为单个字符串
  STRING_AGG(CONCAT(CAST(cd.index AS STRING), ':', cd.value), ', ') AS all_custom_dimensions
FROM `database-314102.70657995.ga_sessions_20211129`,
UNNEST(hits) AS h
LEFT JOIN UNNEST(h.customDimensions) AS cd
GROUP BY h
LIMIT 1000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:36:05