我正在创建一个将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
,因为尽管一个数据集可能具有该数据集,但另一个数据集不能。
我正在寻找一种解决方案,而这两种解决方案都很便宜"快点非常感谢任何对此的帮助,谢谢!