2

我看到了有关Table Decorators的消息,它可以通过指定时间间隔或限制来限制查询的数据量。我没有看到任何关于如何在 Big Query UI 中使用表装饰器的示例。下面是我想运行的示例查询,它只查看过去 4 小时内传入的数据。关于如何修改此查询以利用表装饰器的任何提示?

SELECT foo, count(*) FROM [bigtable.201309010000] GROUP BY 1

尝试下面的示例后编辑

上面的第一个查询扫描了 9 月份(截至 9 月 19 日)的 180GB 数据。我希望下面的查询仅扫描在指定时间段内传入的数据。在这种情况下需要 4 小时,所以我预计账单约为 1.6GB 而不是 180GB。有没有办法设置 ETL/查询,这样我们就不会因为扫描整个表而被收费?

SELECT foo, count(*) FROM [bigtable.201309010000@-14400000] GROUP BY 1

4

1 回答 1

4

要使用表装饰器,您可以指定@timestamp 或@timestamp-end_time。时间戳可以是负数,在这种情况下它是相对的;end_time 可以为空,在这种情况下它是当前时间。您可以同时使用这两种特殊情况,以获得相对于现在的时间范围。例如 [table@-time_in_ms-]。因此,对于您的情况,由于 4 小时是 14400000 毫秒,您可以使用:

SELECT foo, count(*) FROM [dataset.table@-14400000-] GROUP BY 1

这有点令人困惑,我们打算很快发布更好的文档和示例。

于 2013-09-19T22:50:51.073 回答