【问题标题】:BigQuery: How to query firebase daily events table dynamically?BigQuery:如何动态查询 Firebase 每日事件表?
【发布时间】:2019-10-06 01:05:53
【问题描述】:

我想安排一个查询,该查询从 Firebase 每日事件表(前一天)获取数据并更新另一个表。 (我让它手动指定源全表名)

我认为事件表只是一个分区表,但它看起来不像。
这是它在 UI 上的样子:


如您所见,events_ 下实际上有 16 张桌子,它们实际上是每日桌子。
如何动态指定要查询的表名?

这是我尝试过的,但显然不起作用:(数字已更改)

SELECT * 
FROM `appname-11111.analytics_11111111.events_`
WHERE _PARTITIONTIME = FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))

【问题讨论】:

  • 它是否适用于_TABLE_SUFFIX 而不是_PARTITIONTIME?请注意,您需要在events_ 之后有一个*,例如events_* 匹配多个表。
  • 差不多,这里是两个相关部分:FROM 'appname-e1111.analytics_111111.events_*' WHERE _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
  • 那么...那么该查询是否有效?目前尚不清楚您遇到了什么问题。
  • 它有效,随时发布它作为答案:)
  • 太棒了!我也发布了一个带有通配符表文档链接的答案。

标签: sql google-bigquery firebase-analytics


【解决方案1】:

我想你想要这个:

SELECT * 
FROM `appname-11111.analytics_11111111.events_*`
WHERE _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))

请参阅wildcard tables 文档以获取更多信息。简短的总结是事件“表”实际上是具有公共前缀的表的集合(与分区表不同,分区表是具有多个日期的单个表),并且 * 语法允许您在以下位置引用多个表一次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-25
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多