我应该何时为导出到BigQuery的Firebase Analytics数据运行每日ETL作业?

问题描述 投票:0回答:2

我们使用Firebase Analytics从我们的应用中收集活动。我们已将事件导出到BigQuery。我们每天运行一些ETL作业,在BigQuery中创建更友好的分析表(例如会话,购买)。

问题是我们何时应该运行这些ETL工作?

我们知道Firebase Analytics会在BigQuery的'events_intraday_'表中创建,该表在午夜过后的几个小时后会更改为'events_'。我们也理解,如果客户端未与互联网连接,可能会在稍后报告某些事件,但这不是问题。

我们的理论是'events_intraday_'表是某种临时表,我们应该在它变为'events_'时运行ETL作业。很遗憾,我们找不到任何关于它的文档。这是好的解决方案吗?

firebase google-bigquery etl firebase-analytics
2个回答
0
投票

来自Announcing Realtime Exporting of your Analytics Data into BigQuery

在一天结束时[1],此数据将被移动到其永久的appevents_ home中,旧的日内表将自动为您清理。

附:

[1]这是通过查看开发人员的时区来确定的。

所以看起来每天的桌子是在午夜为你的时区创建的。


0
投票

感谢Frank van Puffelen我在Firebase博客How Long Does it Take for My Firebase Analytics Data to Show Up?上发现了一篇文章,该文章说导出到BigQuery的分析数据可以延迟到1小时以上。因此,基于此信息,应该运行ETL作业,比如说2 AM UTC + 0和查询应该只有UNION ALL事件和events_intraday表。

因此,如果今天是2019-04-02并且我想查询上个月的数据,则查询应如下所示:

SELECT * FROM
(
  SELECT * 
  FROM `<PROJECT_ID>.analytics_<ANALYTICS_ID>.events_*`
  WHERE _TABLE_SUFFIX BETWEEN '20190301' AND '20190401'
)
UNION ALL 
(
  SELECT * 
  FROM `<PROJECT_ID>.analytics_<ANALYTICS_ID>.events_intraday_*` 
  WHERE _TABLE_SUFFIX = '20190401'
)
© www.soinside.com 2019 - 2024. All rights reserved.