2017-02-24 27 views
2

我正在測試BigQuery中的查詢,並且我注意到對100M結果的查詢幾乎和10M行或1M行查詢一樣快。雖然這對於可伸縮性來說非常酷,但我的問題是爲什麼不是更小的查詢要快得多?例如,當我對100M行進行查詢時,3s查詢非常好,但對於10K行上的同一查詢,3s很慢。爲什麼BigQuery不能在小數據集上執行

BigQuery實現的哪一部分需要這個「固定時間」,這樣,掃描超小數據大小的查詢幾乎與大數據集一樣長?

+1

如果不瞭解BigQuery的編程方式,我不會感到驚訝,如果大部分3sec都是基於啓動時間的話。你對10行的表格得到相同的結果嗎? Hadoop(實現Yarn之前)用於花費大約3秒爲每個查詢設置一個JVM。 –

+2

按照Ed的猜測,這是花在元數據/啓動上的時間,但實際執行時間非常短。我們正在進行的工作將解決這個問題,但其中一些變化很複雜,需要一段時間。 –

+0

@ElliottBrossard謝謝,您是否有興趣/能夠在答案中分享任何廣泛的細節?其中一個缺點是在基準測試中,Redshift在更小的數據量上出現得更快(但是在大型實際大數據量時被壓制),這對亞馬遜發佈比較來說是一個巨大的營銷優勢! – David542

回答

5

這是花費在元數據/啓動上的時間,但實際執行時間非常短。我們正在進行的工作將解決這個問題,但其中一些變化很複雜,需要一段時間。

您可以想象,在初期,BigQuery可以擁有用於管理作業,元數據等的中央系統,其執行方式對於使用該服務的所有實體都非常有效。但是,一旦你得到了實體,就有必要重新構建一些東西,使它們的延遲儘可能小。有關新功能的通知 - 這也是我們宣佈與啓動延遲相關的API改進的地方 - 請留意我們的release notes,您也可以訂閱它作爲RSS源。

+0

數據大小有多小?例如,如果我們有1,000行的數據集,運行查詢仍需要3.5秒嗎? – David542

+0

不可能說它是否恰好3.5s,但是,2-4s。 –

+0

@Elliott Brossard - 您是否有推薦用於在較小的數據集(10M及以下)上進行聚合查詢的相關Google產品?我已經使用Cloud Spanner進行了測試,但對於這種大小的聚合查詢,性能很差。 – David542

相關問題