[英]How to know when a BigQuery job insert is complete
我正在使用 BigQuery.Jobs.insert 將 csv blob 上傳到 BigQuery 表(如果重要的話,從 Google 表格電子表格),但我需要知道上傳何時完成,以便我可以運行查詢來處理它。 這是我的代碼......
csv_blob = Utilities.newBlob(csv,"application/octet-stream");
//Copy the csv to BigQuery
job = BigQuery.Jobs.insert(job, projectId, csv_blob );
var jobId=job.jobReference.jobId;
//Give it a half second to complete
var sleepTimeMs = 500;
Utilities.sleep(sleepTimeMs);
//see if it needs longer
var jobstatus = job.status;
while(jobstatus.state!="COMPLETE") {
Utilities.sleep(sleepTimeMs);
sleepTimeMs *= 2;
jobstatus = job.status;
}
上傳工作正常,但 job.status.state 永遠不會從“RUNNING”改變,無論我等多久。 即使在我手動驗證服務器上上傳的表之后,job.status.state 仍然是“RUNNING”。 知道工作何時完成的正確方法是什么? 謝謝
您需要使用BigQuery.Jobs.Get
( REST 參考)獲取作業的當前狀態,看來您只是在重新檢查從初始作業插入中收到的響應。
調用它的一個快速而骯臟的例子:
function myFunction() {
projectID = "my-project-id"
jobID = "some-job-id"
location = "us-central1"
job = BigQuery.Jobs.get(projectID, jobID, {location: location});
console.log("result state: " + job.status.state + " end time:" + job.statistics.endTime);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.