Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该何时为导出到BigQuery的Firebase分析数据运行每日ETL作业?_Firebase_Google Bigquery_Etl_Firebase Analytics - Fatal编程技术网

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

我应该何时为导出到BigQuery的Firebase分析数据运行每日ETL作业?,firebase,google-bigquery,etl,firebase-analytics,Firebase,Google Bigquery,Etl,Firebase Analytics,我们使用Firebase分析从我们的应用程序收集事件。我们已启用事件导出到BigQuery。我们每天运行一些ETL作业,在BigQuery中创建更友好的分析表,例如会话、购买 问题是我们应该什么时候运行这些ETL作业 我们知道Firebase Analytics在BigQuery的“events\u intraday\u”表中创建,该表在午夜后几个小时后更改为“events”。我们还了解,如果客户端未连接到internet,可能会在稍后报告某些事件,但这不是问题所在 我们的理论是“events\

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

问题是我们应该什么时候运行这些ETL作业

我们知道Firebase Analytics在BigQuery的“events\u intraday\u”表中创建,该表在午夜后几个小时后更改为“events”。我们还了解,如果客户端未连接到internet,可能会在稍后报告某些事件,但这不是问题所在

我们的理论是“events\u intraday\u”表是一种临时表,当它变为“events”时,我们应该运行ETL作业。不幸的是,我们找不到关于它的任何文档。这是好的解决方案吗?

来自:

在一天[1]结束时,该数据将被移动到其永久的appevents_uuuu主页中,旧的日内表格将自动为您清理

与:

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

所以,看起来每日表是在午夜为您的时区创建的。

多亏了我在Firebase博客上找到的文章 ,表示导出到BigQuery的分析数据可以延迟1个多小时。因此,基于这些信息,ETL作业应该运行,比如说UTC凌晨2点+0,查询应该将所有事件与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'
)

不幸的是,事实并非如此。我们通常观察到,每日表格是在UTC+0上午6点左右创建的,但也可能在上午10点左右创建。我很高兴你提醒我有关Firebase博客的事。我发现有篇文章回答了我的问题。我忘了提到我们的时区是UTC+1/+2。