因此,如果您每天处理数据并将结果放入相同的数据集中,例如结果,并且每天将具有相同的表名(第一部分),并且日期与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等
答案 0 :(得分:1)
BigQuery数据集上没有通配符和/或后缀(至少到今天为止)
同时,您可以检查INFORMATION_SCHEMA
中feature request的当前Alpha版本。您可以通过提交可用的表格来申请。
简而言之:您将能够查询项目中的数据集列表,然后使用它来构建查询。请注意-您仍然需要使用某种客户端来正确编写所有脚本