BigQuery 中的事件表是不是根据 event_timestamp 或服务器日志时间填充?

Posted

技术标签:

【中文标题】BigQuery 中的事件表是不是根据 event_timestamp 或服务器日志时间填充?【英文标题】:Are events tables in BigQuery filled according to event_timestamp or server log time?BigQuery 中的事件表是否根据 event_timestamp 或服务器日志时间填充? 【发布时间】:2020-05-12 17:44:51 【问题描述】:

我正在尝试找出 BigQuery 中 events_intraday 数据集中的表与 events_ 数据集中的表之间的区别。据我了解,events_param 字段中的 created_at 是服务器日志时间,因此 events_intraday 表中的表将记录该特定日期的所有事件,无论它们何时被触发。

但是当我在任何 events_ 表中查看 event_timestamp 时,所有事件都来自同一日期本身。所以我的问题是,当一个 events_intraday 表传输到 events_dataset 时,BigQuery 是否会根据 event_timestamp 自动将行传输到正确的表?

【问题讨论】:

【参考方案1】:

根据documentation,在每天结束时(根据开发者的时区),intraday 的表将被移动到永久的appevents_ 表(或 events_table)和旧的盘中表会自动清理。因此,在同一天(当天)发生的所有事件都具有相同的event_date,因此将被移动到同一个表中。

此外,Firebase 收到数据后会立即将数据导出到 BigQuery 中的 intraday 表。 documentation 指出,events_intraday_ 表之间仅有的两个区别是生命周期价值数据和活动信息(traffic_source 记录)。您可以检查 BigQuery 导出的架构 here,其中描述了(除其他外)两列:

Field name       Data type     Description
event_date        STRING        The date on which the event was logged (YYYYMMDD format in the registered timezone of your app).
event_timestamp   INTEGER       The time (in microseconds, UTC) at which the event was logged on the client.

请注意,event_dateevent_timestamp 这两个字段都是在记录事件的时间/日期记录的。此外,您还可以使用这个公共 Firebase 数据集 firebase-public-project.analytics_153293282.intraday_20181003 在 BigQuery 的 UI 中检查此架构。最后,我想指出,在导出到 BigQuery 的架构中没有任何字段 created_at

【讨论】:

以上是关于BigQuery 中的事件表是不是根据 event_timestamp 或服务器日志时间填充?的主要内容,如果未能解决你的问题,请参考以下文章

Airflow 中是不是有操作员可以根据 BigQuery 中的查询创建表?

Firebase 导出到 BigQuery 事件时间戳时区

Bigquery & Firebase Analytics - 如何根据不同的参数选择一个事件

与事件的两个条件匹配的查询 ID - BigQuery

根据另一列中的值更新 BigQuery 中的嵌套数组

BigQuery 中的 CONDITIONAL_TRUE_EVENT 的替代方案,带有 LAG() 函数?