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

All*_*len 5 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' )
Run Code Online (Sandbox Code Playgroud)

当日内表格翻转到新的一天时,当我的脚本在 23:57 运行然后在 00:02 再次运行时,我会错过任何记录吗?

All*_*len 16

I thought I would post the results of my testing this for a few months. Here are the basic mechanics as I see them:

  1. New DAY1 intraday table is created at midnight GMT (xyz.app_events_intraday_20180101)
  2. DAY224 小时后创建新的日内表 ( xyz.app_events_intraday_20180102),但DAY1日内表会保留几个小时
  3. 最终,DAY1表被“重命名”为xyz.app_events_20180101,您只剩下一个(当前)日内表

我的测试表明,即使在进行了第 3 步之后,额外的数据也会添加到app_events_*表中,因此一旦名称更改,假设数据是稳定/静态的并不安全。我有新数据出现最多 2 或 3 天后。