展平Google Analytics数据(包含重复字段)不再有效

M B*_*ter 13 google-analytics google-bigquery

我们拥有优质的Google Analytics帐户,可让我们访问行级事件数据.此数据每天导出到Google Bigquery,并且每天都会在数据集中创建一个新表.

直到一周前,我们才能将此Google Analytics数据展平为CSV,然后将其展平为临时临时表,然后将其导出为CSV.我们以前的查询是这样的:

SELECT * FROM 
    flatten([xxxxxxxx.ga_sessions_20140829],hits),
    flatten([xxxxxxxx.ga_sessions_20140828],hits),
    flatten([xxxxxxxx.ga_sessions_20140827],hits),
    flatten([xxxxxxxx.ga_sessions_20140826],hits)
Run Code Online (Sandbox Code Playgroud)

昨天我注意到这个查询现在会抛出一个错误:

Cannot output multiple independently repeated fields at the same time. Found customDimensions_value and hits_product_productSKU
Run Code Online (Sandbox Code Playgroud)

显然,flatten()函数已经发生了一些变化,因为hits_product_productSKU是hits字段的子代.

我还尝试了查询历史中的一些旧查询,但它们也被破坏了.没有发布说明提到任何变化,所以发生了什么?

如何再次导出Google Analytics BigQuery导出文件中的所有内容?

Dan*_*itt 15

这实际上是我上周提交的错误修复的结果,并阻止您获得不正确的结果.

默认情况下,BigQuery会在返回之前展平所有查询结果,但我们只想展平一个独立重复的字段,以避免数据的跨产品扩展.错误是我们对多个重复字段的检查未能在某些情况下考虑父记录的重复,这导致我们无法压扁一些独立重复的字段.这意味着我们可以返回平行,其中独立重复的值实际上被"展平"为依赖重复的值,而不是生成交叉积,这实际上是错误的结果.

你在这里看到的是更严格的检查结果:在我们尝试展平结果之前,你的输出模式中至少有两个重复的字段.

另一个需要注意的重要事项是FLATTEN([table-value],[field])函数仅将您指定的字段的重复性展平为第二个参数.当你说flatten([xxxxxxxx.ga_sessions_20140829],命中)时,你只会压缩"命中"记录.如果您还想展平其重复的孩子(产品,促销等),您必须明确为这些字段添加另一个展平,例如:

FLATTEN(FLATTEN([xxxxxxxx.ga_sessions_20140829],命中),hits.product)

-

您有几个选项可以使您的示例工作:

1)选择较少的字段.如果您只关心获得几个字段的扁平输出,则可以通过仅显式选择您关注的字段来从查询结果中删除独立重复的字段.

2)添加更多FLATTEN.您需要在每个重复的字段上展平,这些字段看起来至少包含hits,hits.product和customDimensions.您可能会发现错误消息会抱怨不同的重复字段:在架构中的重复字段上添加更多FLATTEN,直到它工作为止.

  • flatten_all函数怎么样?我们想将所有数据导入到我们自己的数据仓库中,因此嵌套5个或更多的扁平查询看起来有点像hacky ...... (2认同)