我有两个Firebase项目(一个iOS和一个Android)供入Bigquery。我需要将两个项目中的某些特定数据组合,拼合和聚合到一个组合表中,这样我就可以在不查询所有每日表中的所有bazillion行的情况下对其进行报告。

为了填充此汇总表,我目前有两个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处运行,我会丢失任何记录吗?

最佳答案

我以为我会在几个月内发布测试结果。这是我所看到的基 native 制:

  • 在格林尼治标准时间(GMT)午夜创建新的DAY1日内表(xyz.app_events_intraday_20180101)
  • 24小时后创建了新的DAY2日内表格(xyz.app_events_intraday_20180102),但是DAY1日内表格停留了几个小时
  • 最终,DAY1表被“重命名”为xyz.app_events_20180101,并且剩下一个(当前)日内表

  • 我的测试表明,即使在执行了第3步之后,也会将其他数据添加到app_events_*表中,因此不能安全地假设名称更改后就认为数据是稳定/静态的。我有新数据出现在2或3天后。

    10-01 00:41