Google analytics 优化产品范围查询的性能

Google analytics 优化产品范围查询的性能,google-analytics,google-bigquery,Google Analytics,Google Bigquery,我想每天构建下表,以存储网站页面性能的一些聚合数据。然而,每天的数据量超过1500万行 我可以采取哪些步骤来提高性能?我打算将它们另存为分片表,但我想进一步改进,是否可以将数据嵌套在每个表中以进一步提高性能?最好的方法是什么 SELECT device.devicecategory AS device, hits_product.productListName AS list_name, UPPER(hits_product.productSKU) AS SKU, AVG(hits_produc

我想每天构建下表,以存储网站页面性能的一些聚合数据。然而,每天的数据量超过1500万行

我可以采取哪些步骤来提高性能?我打算将它们另存为分片表,但我想进一步改进,是否可以将数据嵌套在每个表中以进一步提高性能?最好的方法是什么

SELECT
device.devicecategory AS device,
hits_product.productListName AS list_name,
UPPER(hits_product.productSKU) AS SKU,
AVG(hits_product.productListPosition) AS avg_plp_position

FROM `mindful-agency-136314.43786551.ga_sessions_20*` AS t
  CROSS JOIN UNNEST(hits) AS hits
  CROSS JOIN UNNEST(hits.product) AS hits_product
WHERE parse_date('%y%m%d', _table_suffix) between 
DATE_sub(current_date(), interval 1 day) and
DATE_sub(current_date(), interval 1 day)

AND hits_product.productListName != "(not set)"
GROUP BY 
device,
list_name,
SKU
由于您使用productSku和productListName作为维度/组,因此无法与产品数组交叉连接

您还与product交叉连接,这可能很危险,因为有时此数组丢失,您会破坏整行—通常使用左连接。但在这种情况下,这很好,因为你只对产品领域感兴趣

但是,您应该清楚是否希望使用hits.product.isImpression和hits.product.isClick查看列表单击或列表印象。我看不出有什么区别。在列表视图的情况下,可能会筛选出点击的位置\u product.isImpression

<> P>而不是碎片,您可能需要考虑按日期添加日期字段和分区,以及按ListNoNoX聚类。有关更新信息,请参阅 开始吃饭。在以后查询表时,这比碎片更有效

启动表格时可能会出现以下情况:

创建表“x.y.z” 按日期划分 按列表名称聚类 像 选择 分析日期“%Y%m%d”,日期为日期, device.devicecategory作为设备, 点击作为列表名称的\u product.productListName, UPPERhits_product.productSKU作为SKU, avgihits_product.isClick,hits_product.productListPosition,空为avg_plp_click_位置, AVGIHITS\U product.isImpression,hits\U product.productListPosition,NULL为avg\U plp\U view\U position 来自'bigquery public data.google_analytics_sample.ga_sessions_20*`AS t 交叉连接UNNESThits作为hits 将UNNESThits.product交叉连接为hits\u product 哪里 分析日期“%y%m%d”,表后缀 之间 日期\次当前日期\间隔1天 和日期\u次当前\u日期,间隔1天 并点击_product.productListName!=未设定 分组 日期 装置 列出你的名字, SKU 插入新记录非常类似,您只需要提前提到文档中描述的字段