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_date
和 event_timestamp
这两个字段都是在记录事件的时间/日期记录的。此外,您还可以使用这个公共 Firebase 数据集 firebase-public-project.analytics_153293282.intraday_20181003
在 BigQuery 的 UI 中检查此架构。最后,我想指出,在导出到 BigQuery 的架构中没有任何字段 created_at
。
【讨论】:
以上是关于BigQuery 中的事件表是不是根据 event_timestamp 或服务器日志时间填充?的主要内容,如果未能解决你的问题,请参考以下文章
Airflow 中是不是有操作员可以根据 BigQuery 中的查询创建表?