BigQuery可以使用通配符表名称和table_suffix,但是我正在寻找类似的解决方案,例如通配符数据集和dataset_suffix

时间:2018-12-21 21:36:47

标签: google-bigquery

因此,如果您每天处理数据并将结果放入相同的数据集中,例如结果,并且每天将具有相同的表名(第一部分),并且日期与table_suffix相同,例如result1_20190101,result1_20190102等,则它们您查询结果表时使用通配符表名和table_suffix。

所以您的数据集/表看起来像

results/result1_20190101
results/result1_20190102

results/result2_20190101
results/result2_20190102

所以我可以查询所有结果1

select * from `xxxx.results.result1*`

但是我对结果表的排列方式有所不同。由于我每天要处理数十张桌子。以便轻松检查和管理每天的结果。我使用日期作为数据集。

所以我的数据集/表看起来像

20190101/result1
20190101/result2
...

20190102/result1
20190102/result2
...

我的日常数据处理通常不会查询交叉日期(数据集)。每日结果将推送到下一步数据管道等。

但是有时候,我需要做一些快速检查,并且需要查询所有日期(对于我来说,是查询数据集)

因此,当我尝试查询result1时,我必须对数据集名称进行硬编码。

select * from `xxxxxx.20190101/result1`
union all
select * from `xxxxxx.20190102/result1`
union all
...

1)第一个问题是,无论如何我可以像在表上那样在数据集上使用通配符和后缀吗?

2)第二个问题:如何使用日期函数(例如DATE_SUB(CURRENT_DATE(),INTERVAL 90 DAY))获取日期值并在以下查询中使用数据值

select * from `xxxxxx.20190101/result1`
union all
select * from `xxxxxx.20190102/result1`
union all
...

替换硬编码值20190101、20190102等

1 个答案:

答案 0 :(得分:1)

BigQuery数据集上没有通配符和/或后缀(至少到今天为止)

同时,您可以检查INFORMATION_SCHEMAfeature request的当前Alpha版本。您可以通过提交可用的表格来申请。

简而言之:您将能够查询项目中的数据集列表,然后使用它来构建查询。请注意-您仍然需要使用某种客户端来正确编写所有脚本