【发布时间】:2016-11-10 01:52:03
【问题描述】:
我正在检查 Google Big Query 中的表是否每 5 分钟更新一次。我们在表中有一个 DateTime 字段,它从指定时间开始每 5 分钟获取一条记录。我必须获取表的开始时间(最后一条记录),并检查我们是否有从当前 DateTime 开始的最后 10 分钟的记录。在结果表中,对于每台机器,我应该根据表是否每 5 分钟更新一次来选择“是”或“否”。
当前查询:
SELECT * FROM [Poll_20160505]
WHERE MachineName = 'P130'
ORDER BY DateTime DESC
当前输出:
MachineName DateTime
P130 2016-07-07 15:54:13.407
P130 2016-07-07 15:49:13.438
P130 2016-07-07 15:44:13.437
P130 2016-07-07 15:39:13.426
P130 2016-07-07 15:34:13.419
.
.
P130 2016-07-07 00:09:13.037
P130 2016-07-07 00:04:13.005
预期输出:
MachineName DateTime
P130 Yes
编辑:
如果当前时间戳和表中最新时间戳之间的差异大于 8 分钟,我应该选择“是”(bcz 表每 5 分钟更新一次,提供 3 分钟的缓冲区)。
从上表中,我必须找到当前时间戳和第一条记录的时间戳(2016-07-07 15:54:13.407)之间的差异,如果大于 8 分钟,那么我应该有一个“不”,否则我应该“是”。
【问题讨论】:
-
造成你困难的部分是什么?
-
@DanBracuk:我添加了一个编辑。我无法找到存储为字符串的两个时间戳之间的区别。
-
是与否的标准尚不清楚 - 你说 -
I should have a "yes" or "no" based on whether table gets updated every 5 mins- 是最后 N 分钟还是从第一次记录开始?所以即使是 5 分钟的间隔也应该产生no? -
@MikhailBerlyant:如果所有记录都在 7 分钟(2 分钟的缓冲)差异内,我会回答“是”。如果我们每 7 分钟都没有新记录,那我应该说“不”
-
还不完全清楚。我仍然可以用许多不同的方式阅读它。你能举一个两个/三个连续记录的例子,它们会产生
yes,而另一个两个/三个会产生no的例子,并说明原因
标签: sql google-bigquery