我有两个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 制:
DAY1
日内表(xyz.app_events_intraday_20180101
)DAY2
日内表格(xyz.app_events_intraday_20180102
),但是DAY1
日内表格停留了几个小时DAY1
表被“重命名”为xyz.app_events_20180101
,并且剩下一个(当前)日内表我的测试表明,即使在执行了第3步之后,也会将其他数据添加到
app_events_*
表中,因此不能安全地假设名称更改后就认为数据是稳定/静态的。我有新数据出现在2或3天后。