在 BigQuery 中动态查询多个表

Posted

技术标签:

【中文标题】在 BigQuery 中动态查询多个表【英文标题】:Dynamically Querying Multiple Tables In BigQuery 【发布时间】:2014-01-03 21:34:45 【问题描述】:

我有一个 BigQuery 数据库,将每日数据上传到它自己的表中。所以我有名为“20131201”、“20131202”等的表。我可以编写一个固定查询来“合并”这些表:

SELECT * FROM db.20131201, db.20131202, ...

我想要一个不需要我在每次添加新表时都更新自定义 SQL 的查询。比如:

从数据库中选择 *。*

目前不起作用。我想避免制作一张大桌子。有没有我可以做的解决方法,或者这必须是一个功能请求?

最终目标是与所有表建立 Tableau 数据连接。

【问题讨论】:

这是一个有趣的功能请求! 同意,这将是一个有趣的功能! BigQuery 中的视图概念允许这样做并提供很大的灵活性。 根据我的经验,在大查询中选择 * 很糟糕,而且确实会减慢进程。 【参考方案1】:

这不是您所要求的,但我已经设法特别使用了https://developers.google.com/bigquery/query-reference#tablewildcardfunctions

TABLE_DATE_RANGE(前缀、时间戳1、时间戳2)

为了在画面中使用类似的结果。您仍然需要提供 2 个日期参数,但它比动态生成 FROM 子句要好得多。

希望这会有所帮助。

【讨论】:

【参考方案2】:

截至目前,在 google bigquery 中,此动态 Sql [如 mssqlserver 中的“EXECUTE SQL”] 不可用...我相信 sulry google 会查看这个 :)

【讨论】:

以上是关于在 BigQuery 中动态查询多个表的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法根据 Bigquery 查询中的标签选择表?

BigQuery 是不是支持“立即执行”命令来运行动态查询?

BigQuery 动态表分区

BigQuery是否支持“执行立即”命令来运行动态查询?

Google BigQuery - 从选择语句执行动态生成的查询

BigQuery - 基于字段/过滤器构建动态选择语句/查询