2014-11-03 271 views
1

我已經上傳了10,000個觀察值(也用20 + 1和100 + 1)的變量,所有變量都是二進制(0,1),除了weight(float)並執行一些簡單的查詢,如:查詢bigquery需要更多時間

SELECT sum(col1),sum(wt*col1),sum(col2),sum(wt*col2),sum(col3),sum(wt*col3),sum(col4),sum(wt*col4),sum(col5),sum(wt*col5),sum(col6),sum(wt*col6) 
,sum(col7),sum(wt*col7),sum(col8),sum(wt*col8),sum(col9),sum(wt*col9),sum(col10),sum(wt*col10) 
FROM [bigquery_dummy_dataset.bin_006b]; 

這個查詢花費5.6 secs approx在執行它100 columns is taking 21 secs approx。我感覺它比其他現有的數據庫技術慢(在sql server中通過使用索引我們已經實現了更高的性能)。但是,我想處理更多的數據(最多2000個變量)。

我做錯了什麼?有什麼辦法可以加快流逝的時間?

回答

2

1)大查詢是一個高度可擴展的數據庫,是一個「超快速」數據庫之前。它的目的是處理大量的數據,使用名爲Dremel的技術在幾臺不同的機器間分配處理數據。因爲它旨在使用多臺機器和並行處理,所以您應該期望具有超級可擴展性和良好的性能。

2)當您想要分析數十億行時,BigQuery是一項資產。

例如:在5-10秒內分析所有維基百科修訂版並不差,是嗎?但即使是一個小得多的表格也需要大約相同的時間,即使有10k行。

3)在此尺寸下,您最好使用更傳統的數據存儲解決方案,如Cloud SQL或App Engine數據存儲區。如果你想保持SQL能力,Cloud SQL是最好的猜測。

Sybase IQ是通常安裝在一個單一的數據庫,它不使用的Dremel。也就是說,在許多情況下,它會比Big Query更快......按照設計。

4)當然,性能不同於專用環境。你每個月都能獲得20K $的專用環境。