0
我有一个应用程序必须查询数百个BigQuery表格(在Dataflow作业中),其中一些可能不存在(每天发生的事件以日期命名,某些表格可能没有日期被创建)。只有当表存在时,有没有办法在BigQuery查询中有条件地创建SELECT?
有没有办法写一个BQ SQL查询,使得它对select_table 产生一个SELECT如果,并且只有命名表存在,否则不返回行?
有人张贴了一个查询,如果一个表存在
#standardSQL
SELECT COUNT(1) AS table_count
FROM `my-project:blah.__TABLES_SUMMARY__`
WHERE table_id = 'some-table-name-2017-04-02'
但我们正试图在数据流做的工作,它很难让外界第一次数据流控制结构的这些查询返回。
有没有一种方法可以在单个SQL语句中将上述查询与SELECT对该表'some-table-name-2017-04-02'进行组合,如果该表不存在,我们只是没有回来的行,而不是一个错误?
问题是如果BigQuery SQL解析器引用的表名不存在,即使没有对该表执行查询,BigQuery SQL解析器也不会编译查询。
而不必数百个表会为你工作,如果你有每天只有一个表,你必须按日期,事件和一切你分离数据架构的需要?通过这种方式,您可以保证每天都有表格,并且如果某个查询未返回给定日期和事件的数据,则不会出现问题。 –