使用BigQuery访问Google Analytics分析自定义维度

问题描述


我想从我的GA BigQuery数据中获取以下架构: 主机名; customDimension2; customDimensions3;浏览量;屏幕视图; TotalEvents;届会

起初,我只想获取主机名和cd2,我的查询如下:

SELECT hits.page.hostname,hits.customDimensions.value  
FROM `dataset`,UNnesT(hits) as hits  
WHERE hits.customDimensions.index = 2 
LIMIT 1000

出现以下错误
无法访问[1:162]上类型为ARRAY >的值的字段索引

那么我该如何处理两个不同的BigQuery数组?

解决方法

以下是用于BigQuery标准SQL

#standardSQL
SELECT hit.page.hostname,customDimension.value  
FROM `dataset`,UNNEST(hits) AS hit,UNNEST(hit.customDimensions) AS customDimension 
WHERE customDimension.index = 2 
LIMIT 100
,

由于该数组中最多可以包含200个字段,并且通常只希望其中之一,所以最好不要与其交叉连接,而是编写一些子查询。

SELECT 
  page.hostname,(SELECT value FROM UNNEST(h.customDimensions) WHERE index=2) AS cd2 
FROM `dataset`,UNNEST(hits) as h  
LIMIT 1000

与交叉连接版本相比,您拥有的数据越多,执行该查询的速度就越快。子查询总是比交叉联接更快。