我看到有关Table Decorators的新闻可用于通过指定时间间隔或限制来限制查询的数据量。我没有看到任何关于如何在Big Query UI中使用表装饰器的示例。下面是我想要运行的示例查询,只查看过去4小时内传入的数据。有关如何修改此查询以使用表装饰器的任何提示?
SELECT
foo,
count(*)
FROM [bigtable.201309010000]
GROUP BY 1
在尝试下面的示例后进行编辑
上面的第一个查询扫描了9月份的180GB数据(截至9月19日)。我希望下面的查询只扫描在指定时间段内进来的数据。在这种情况下4小时,所以我希望计费约为1.6GB而不是180GB。有没有办法设置ETL /查询,所以我们不会收取扫描整个表的费用?
SELECT
foo,
count(*)
FROM [bigtable.201309010000@-14400000]
GROUP BY 1
答案 0 :(得分:4)
要使用表装饰器,您可以指定@timestamp或@timestamp-end_time。时间戳可以是负数,在这种情况下它是相对的; end_time可以为空,在这种情况下,它是当前时间。您可以同时使用这两种特殊情况,以获得相对于现在的时间范围。例如[表@ -time_in_ms-]。因此,对于您的情况,因为4小时是14400000毫秒,您可以使用:
SELECT foo, count(*) FROM [dataset.table@-14400000-] GROUP BY 1
这有点令人困惑,我们打算很快发布更好的文档和示例。