【发布时间】:2014-05-29 07:45:14
【问题描述】:
我们非常成功地使用了 bigquery,现在正在存储大量的游戏事件(每天大约 1 亿个)。
然后每天处理这些事件以生成每日 KPI。
现在我的问题...
我们正在增加对 AB 测试的支持。 IE。我们将用户分成不同的组,以便能够比较我们不同版本游戏的表现。
我们最初的方法是找到已加入某个组的所有用户,然后加入。
但是现在我们在子选择中使用联合时会出错。
此 SQL 有效...
SELECT STRFTIME_UTC_USEC(TIMESTAMP_TO_USEC(ts), "%Y-%m-%d") time, 4 as appId, locale, platform, "all" as version, COUNT(DISTINCT userId) as count
FROM (SELECT ts,userId,locale,eventId
FROM (
SELECT
ts,userId,locale,eventId
FROM
[analytics_davinci_gunnar.events_app4_v4_201312]
) a
INNER JOIN EACH (
SELECT userId
FROM
[analytics_davinci_gunnar.events_app4_v4_201312]
WHERE
eventId = 1600 and abName = 'foo' and abVersion = 0 AND abCase = 3
) b
ON a.userId = b.userId
)
WHERE DATE(ts) >= "2013-08-02" AND DATE(ts) <= "2014-01-28"
GROUP BY time, locale
ORDER BY time DESC, count DESC
此使用联合的 SQL 失败。 查询失败 错误:** 意外。请重试**。
SELECT STRFTIME_UTC_USEC(TIMESTAMP_TO_USEC(ts), "%Y-%m-%d") time, 4 as appId, locale, platform, "all" as version, COUNT(DISTINCT userId) as count
FROM (SELECT ts,userId,locale,eventId
FROM (
SELECT
ts,userId,locale,eventId
FROM
[analytics_davinci_gunnar.events_app4_v4_201311],
[analytics_davinci_gunnar.events_app4_v4_201312]
) a
INNER JOIN EACH (
SELECT userId
FROM
[analytics_davinci_gunnar.events_app4_v4_201312]
WHERE
eventId = 1600 and abName = 'foo' and abVersion = 0 AND abCase = 3
) b
ON a.userId = b.userId
)
WHERE DATE(ts) >= "2013-08-02" AND DATE(ts) <= "2014-01-28"
GROUP BY time, locale
ORDER BY time DESC, count DESC
【问题讨论】:
-
调查一下 - 对于这些错误,请包含 jobid 以便更快地调试!
标签: google-bigquery