Bigquery 表装饰器 绝对时间使用
Posted
技术标签:
【中文标题】Bigquery 表装饰器 绝对时间使用【英文标题】:Big Query Table decorators Absolute time Usage 【发布时间】:2018-01-19 12:27:31 【问题描述】:我正在尝试查询一个每日分区数据集访问量。
套装变得非常大,我需要降低 BQ 成本 我正在尝试使用具有绝对值的快照装饰器来获取数据,因为我有日志的确切时间 在此示例中,我需要提取发生在的事件的日志 2018-01-15 08:34:55 我使用此查询将这个时间转换为 +30/-30 分钟:
SELECT INTEGER(DATE_ADD(USEC_TO_TIMESTAMP(NOW()), time-30, 'MINUTE')/1000)
SELECT INTEGER(DATE_ADD(USEC_TO_TIMESTAMP(NOW()), time+30, 'MINUTE')/1000)
然后我创建了这个查询:
SELECT * FROM [visits_log_20180115@1516007131839-1516003548120]
我返回一个错误:
非法表ID:visits_log_20180115@-1516007131839-1516003548120
但如果我将其更改为:
SELECT * FROM [visits_log_20180115@-1516007131839-1516003548120]
我在全表扫描后得到一个结果,谷歌教程来自: https://cloud.google.com/bigquery/table-decorators
没有为这种情况提供示例 + 值,我想知道这是语法错误还是我错过了绝对时间范围?
【问题讨论】:
你是否使用分区表? 不,我每天都在使用 fluentD - td-agent 创建一个新表,此查询位于未分区的日表上 我喜欢 FluentD。他们的配置支持 time_partitioning_type。也许您应该重新考虑迁移到分区表。 【参考方案1】:你应该切换开始和结束,因为目前你的查询是SELECT * FROM [table@end-start]
,但它应该是SELECT * FROM [table@start-end]
所以,试试
SELECT * FROM [visits_log_20180115@1516003548120-1516007131839]
【讨论】:
以上是关于Bigquery 表装饰器 绝对时间使用的主要内容,如果未能解决你的问题,请参考以下文章
Bigquery LegacySQL 使用特殊装饰器及时的无效快照@0