算完成BigQuery的工作行我想獲得工作的行數是用運行:如何使用Node.js的客戶端庫
bigquery.startQuery(options)
這樣做的簡單的方式,將流結果(如使用):
job.getQueryResultsStream()
然後依次計數。這顯然不是非常有效的,特別是對於大的結果。另一種方式我覺得是用作業的元數據:
job.on('complete', function(metadata) {...}
在那裏我可以一種「反向工程」的響應,以獲得查詢計劃,看看在最後一步寫入的行數。我能找到在:
statistics.query.queryPlan[statistics.query.queryPlan.length - 1].recordsWritten
雖然不同的查詢的樣本相信我,這可能會奏效,那感覺就像是「黑客」,這是很難說這將是多麼強勁。似乎我可能需要處理不同的情況(失敗的查詢等)
編輯:下面提出的另一個選項是「SELECT COUNT」ing由原始查詢創建的臨時表(作業元數據中可用)。雖然這絕對是一種簡單的方式來獲得我期待的結果,但它的缺點是需要另一次來回查詢BigQuery服務,這需要幾秒鐘的時間。它是一個0「字節計費」的查詢(計數一個完整的表只使用表元數據),但當作業「知道」它已經寫入輸出的行數時,它似乎是多餘的。
從工作對象中獲得此計數是否存在一個簡單且「正確」的方法,而無需往返BQ服務?也許我錯過了/曲解了一個領域,或者是作業對象中的一個函數返回這個?
爲什麼downvote檢索? – DannyA