Bigquery加入问题

时间:2014-01-30 09:01:01

标签: google-bigquery

我们非常成功地使用bigquery,并且今天存储了大量的游戏事件(每天约1亿)。

然后每天处理这些事件,以便生成每日KPI。

现在我的问题......

我们正处于增加对AB测试的支持阶段。即我们将用户分成不同的组,以便能够比较不同版本的游戏的表现。

我们最初的方法是找到已加入某个组然后进行加入的所有用户。

但是现在我们在子选择中使用联合时会出错。

这个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

1 个答案:

答案 0 :(得分:0)

这是我们认为已修复的BigQuery中的错误。如果您仍然发现问题,请在https://code.google.com/p/google-bigquery/issues/list处提交新错误。