我有一个使用作业执行查询的代码。如果查询完成时间超过5分钟,我需要拒绝这些结果。有没有办法拒绝查询结果?
这是我的代码:
while (true)
{
Job pollJob = s.Jobs.Get(projectId, jobId.JobId).Execute();
elapsedTime = DateTime.Now.Ticks - startTime;
if (pollJob.Status.State.Equals("DONE")) return "OK";
else if (DateTime.Now > minutes5) {
//I don't want that the results are append in the table
}
Thread.Sleep(10000);
}
答案 0 :(得分:1)
BigQuery尚不支持显式作业取消,但它被作为功能请求进行跟踪。见https://code.google.com/p/google-bigquery/issues/detail?id=97
答案 1 :(得分:1)
听起来您将查询结果附加到表格中。一种选择是将结果写入不同的临时位置,然后复制临时表并附加到结果表。也就是说,如果目标表是dataset.results,则可以将查询结果写入dataset_temp.temp_results。如果创建temp_results的查询足够快,则可以通过复制操作和write_append写入处理将其附加到dataset.results表。
你有一些临时表的选项。您可以每次创建新表,但指定到期时间,以便自动清理它们。或者您可以使用write_truncate写入处置每次覆盖它们,因此它们总是只有一个时间片的数据。