standardsql
對於那些誰想要GA數據導入到關係數據庫:請注意,嵌套模式實際上是把多個關係表放到一個嵌套結構中 - 它們是等價的,所以在這裏不是最好的解決方案:你想分開表再次! 這樣可以節省大量的存儲空間,而且查詢速度可能會更快。
你能想到的GA數據是3個關係表:
爲了讓你可以使用類似
會話表
-- session table
SELECT
* EXCEPT(hits,
customDimensions),
CONCAT('{',(
SELECT
STRING_AGG(CONCAT(CAST(index AS string),':"',value,'"'))
FROM
t.customdimensions),'}') as customDimensions
FROM
`project.dataset.ga_sessions_20171031` AS t
customDimensions被聚合到一個json字符串。
同樣與點擊表:
-- hits table
SELECT
fullvisitorid,
visitid,
visitstarttime,
h.* EXCEPT(product,
customdimensions, customMetrics, customVariables, promotion, experiment),
CONCAT('{',(
SELECT
STRING_AGG(CONCAT(CAST(index AS string),':"',value,'"'))
FROM
h.customdimensions),'}') AS hitsCustomDimensions,
CONCAT('{',(
SELECT STRING_AGG(CONCAT(CAST(index AS string),':',cast(value as string)))
FROM h.custommetrics),'}') AS hitsCustomMetrics
FROM
`project.dataset.ga_sessions_20171031` AS t,
t.hits AS h
你可以爲我使用一個子選擇customDimensions確實添加了推廣和實驗。
加入使用fullvisitorid + visitstarttime/visitid的串聯命中會話(GA課程包括午夜分:使用visitStartTime代替visitid如果你想忽略午夜拆分使用visitid - 它保持不變,儘管拆分)
對於產品你點擊數量添加到您的「會話ID」,以獲得一個唯一的標識符:
-- product table
SELECT
fullvisitorid,
visitid,
visitstarttime,
h.hitNumber,
p.* EXCEPT(customdimensions, customMetrics),
CONCAT('{',(
SELECT STRING_AGG(CONCAT(CAST(index AS string),':"',value,'"'))
FROM p.customdimensions),'}') AS productsCustomDimensions,
CONCAT('{',(
SELECT STRING_AGG(CONCAT(CAST(index AS string),':',cast(value as string)))
FROM p.custommetrics),'}') AS productsCustomMetrics
FROM
`project.dataset.ga_sessions_20171031` AS t,
t.hits AS h, h.product as p
現在你需要在任何關係3關係/「扁平化」的表,你可以加入D b。
我剛剛在一些查詢中遇到過這個問題,這些查詢也一直在正常工作。我無法找到任何有關更改的筆記,但肯定有某些內容... – NathanS 2014-09-01 03:49:55
這對Google來說非常不利,因爲它可以打破向後兼容性 – Tjorriemorrie 2014-09-01 06:30:34