首页 文章

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

提问于
浏览 1685
0

我有两个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 回答

  • 3

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

    • 新的 DAY1 盘中表格格林威治标准时间午夜创建( xyz.app_events_intraday_20180101

    • 新的 DAY2 盘中表在24小时后创建( xyz.app_events_intraday_20180102 ),但是 DAY1 盘中表格会持续几个小时

    • 最终, DAY1 表是"renamed"到 xyz.app_events_20180101 ,您将留下一个(当前)日内表

    我的测试表明,即使在第3步发生之后,其他数据也会添加到 app_events_* 表中,因此,一旦名称发生变化,可以安全地假设数据是稳定的/静态的 . 我有新的数据出现在2或3天后 .

相关问题