我可以在BigQuery中可靠地查询Firebase日内表并获得100%的事件数据吗?

时间:2017-08-18 22:57:24

标签: firebase google-bigquery

我有两个Firebase项目(一个iOS和一个Android)加入Bigquery。我需要将两个项目中的一些特定数据合并,展平并聚合到一个组合表中,以便我可以在不查询所有日常表中的所有数据行的情况下报告它。

为了填充这个聚合表,我目前有两个python脚本每5分钟查询一次iOS和Android日内表。该脚本从聚合表中获取最大时间戳,然后查询日内表以获取具有更大时间戳的任何记录(我分别跟踪iOS和Android的最大时间戳,因为它们经常不同)。

我使用此(缩写)通配符语法查询日内表:

SELECT yadda, yadda, timestamp_micros, 'ios' as platform
FROM `myproject.iOSapp.app_events_intraday*`
WHERE timestamp_micros > (Select max(timestamp_micros) 
                          from myAggregateTable WHERE platform = 'ios' )

当盘中表翻转到新的一天时,是否有任何危险,当我的脚本在23:57运行然后再在00:02运行时,我会错过任何记录?

1 个答案:

答案 0 :(得分:4)

我以为我会将测试结果发布几个月。以下是我看到的基本机制:

  1. 新的DAY1日内表格格林威治标准时间午夜(xyz.app_events_intraday_20180101
  2. 新的DAY2日内表在24小时后创建(xyz.app_events_intraday_20180102),但DAY1日内表格会在几个小时内保持不变
  3. 最终,DAY1表被“重命名”为xyz.app_events_20180101,而您只剩下一个(当前)日内表
  4. 我的测试显示,即使在第3步发生后,其他数据 也已添加到app_events_*表中,因此 NOT 可安全地假设一旦名称发生变化,数据就是稳定/静态的。我有新的数据出现在2或3天后。