2017-04-26 84 views
2

我正在尝试记录事件并指定发生这些时刻的时刻。Firebase Analytics:将数据导出为BigQuery作为日期

例如:

Firebase.Analytics.FirebaseAnalytics.LogEvent ("EventGamePlayed", "sent_at", DateTime.Now.ToString ("yyyy-MM-dd hh:mm:ss")); 

我想知道,如果有可能的是,一旦它的出口至BigQuery,我可以用这个参数为日期/时间戳记,所以我可以,例如,让所有的上个月发生的X或Y事件。

谢谢!

回答

3

实际上,你可能不需要这个。参考Firebase schema for BigQuery exports,您可以在event_dim内使用datetimestamp_micros。例如,要查找在4月1日的事件,你可以这样做:

#standardSQL 
SELECT event 
FROM YourTable 
CROSS JOIN UNNEST(event_dim) AS event 
WHERE PARSE_DATE('%Y%m%d', event.date) = '2017-04-01'; 

要找到中午12点和下午4点UTC之间发生在4月1日的事件,你可以这样做:

#standardSQL 
SELECT event 
FROM YourTable 
CROSS JOIN UNNEST(event_dim) AS event 
WHERE TIMESTAMP_MICROS(event.timestamp_micros) BETWEEN 
    '2017-04-01 12:00:00' AND '2017-04-01 16:00:00'; 
+0

这将工作,但将数据转换为实际的DATE或TIMESTAMP类型的好处是,这些查询的运行速度会更快 - 对日期/时间戳的简单比较过滤可以更深入地推进 –

+0

Firebase不支持事件中的“DATE”或“TIMESTAMP”类型;它们只能是'STRING','INT64'或'FLOAT64'类型,所以这不是一个选项。 –

+0

但是,当数据加载到BQ中时 - 可以使用PARSE_DATE/TIMESTAMP_MICROS函数将其转换为正确类型。 –

相关问题