我想安排一个查询,该查询从Firebase每日事件表(前一天)获取数据并更新另一个表。 (我可以通过手动指定源全表名来工作)
我认为事件表只是一个分区表,但看起来却不一样。
这是用户界面上的样子:
如您所见,events_
下实际上有16个表,它们实际上是每日表。
如何动态指定要查询的表的名称?
这是我尝试过的方法,但显然不起作用:(数字已更改)
SELECT *
FROM `appname-11111.analytics_11111111.events_`
WHERE _PARTITIONTIME = FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
答案 0 :(得分:3)
我想您要这样:
SELECT *
FROM `appname-11111.analytics_11111111.events_*`
WHERE _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
有关更多阅读信息,请参见wildcard tables文档。简短的摘要是,事件“表”实际上是具有公共前缀的表的集合(与分区表不同,分区表是具有多个日期的单个表),并且*语法使您可以在多个位置引用多个表一次。