在BigQuery中拒绝结果

时间:2014-10-13 17:09:30

标签: c# google-bigquery

我有一个使用作业执行查询的代码。如果查询完成时间超过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);
}

2 个答案:

答案 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写入处置每次覆盖它们,因此它们总是只有一个时间片的数据。