在BigQuery中的多个表上运行相同的选择

时间:2017-04-18 13:52:05

标签: sql google-bigquery

我正在创建一个将BigQuery / Firebase事件导出到我自己的数据库中的cron作业。我要这样做的方法是首先在早上运行一次查询以获取所有新表,然后在一天中定期对它们进行更新。我目前有以下查询可行,但在生产中比这大得多(大约100多个工会)。

with allTables as ( 
  SELECT
    CONCAT(user_dim.app_info.app_id, ':', user_dim.app_info.app_platform) as app
  FROM `dataset1.*`  

  UNION ALL 
  SELECT
    CONCAT(user_dim.app_info.app_id, ':', user_dim.app_info.app_platform) as app
  FROM `dataset2.*`  
) 
SELECT
  app as target,
  0 as datapoint_value,
  UNIX_SECONDS(PARSE_TIMESTAMP('%Y%m%d', '20170417')) AS datapoint_time
FROM allTables
GROUP BY app

显然,由于通配符表和许多联合,这是非常低效的。我正在寻找的是一种更有效的方法,可以同时查询多个表上的相同数据。主要问题是我不能简单地指定app_events_20170103,因为尽管一个数据集可能具有该数据集,但另一个数据集不能。

我正在寻找一种解决方案,而这两种解决方案都很便宜"快点非常感谢任何对此的帮助,谢谢!

0 个答案:

没有答案