2014-10-13 4 views
2

작업을 사용하여 쿼리를 실행하는 코드가 있습니다. 쿼리가 완료되는 데 5 분 이상 걸리면이 결과를 거부해야합니다. 쿼리 결과를 거부 할 수있는 방법이 있습니까? 이 기능 요청으로 추적 불구하고결과를 BigQuery에서 거부합니다.

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); 
} 

답변

1

쿼리 결과를 표에 추가하는 것처럼 들립니다. 한 가지 옵션은 결과를 다른 임시 위치에 쓴 다음 임시 테이블을 결과 테이블에 추가하여 복사하는 것입니다. 즉, 대상 테이블이 dataset.results 인 경우 쿼리 결과를 dataset_temp.temp_results에 쓸 수 있습니다. temp_results를 작성한 쿼리가 충분히 빠르게 완료되면 복사 작업과 write_append 쓰기 처리를 통해 dataset.results 테이블에 추가 할 수 있습니다.

임시 테이블에 대한 몇 가지 옵션이 있습니다. 매번 새 테이블을 만들 수 있지만 만료 시간을 지정하면 자동으로 정리됩니다. 또는 매번 write_truncate write disposition을 사용하여 매번 덮어 쓸 수 있으므로 항상 정확히 한 번만 시간 조각의 데이터를 갖습니다.

+0

예, 쿼리 결과를 테이블에 추가하려고합니다. 첫 번째 옵션은 좋게 들리지만 복사 작업을 통해 안정적인 응답 시간을 얻을 수 있다고 주장 할 수 있습니까? – RCalaf

관련 문제