2012-07-16 65 views
0

開始學習FusionTable API。我有一個相當小的'Hello World'示例Google FusionTable,大約有32,000條記錄。但是,簡單的查詢似乎返回了明顯錯誤的結果,我不知道我是否缺少某些東西,或者存在我不知道的限制?Google FusionTable不返回正確的結果 - 隱藏限制?

試試這個Source table使用Online FusionTable API SQL client使用該表ID:

1xxJtCuJ8V7D6nTEOdeNPGS7Q--VdugQqLtjjYgQ 

SELECT COUNT(SEX) FROM 4546155回報32,778

SELECT SEX, COUNT() FROM 4546155 GROUP BY SEX回報:

[table] => object 
    [cols] => object 
    [0] => SEX 
    [1] => count() 
    [rows] => object 
    [0] => object 
     [0] => 1 
     [1] => 5431 
    [1] => object 
     [0] => 2 
     [1] => 4025 

注意,5431 + 4025 = 9456,而不是32778。我預計分別達到18,876和13,902,總計達到32,778:

系統是否靜默停止源表中10,000條記錄的聚合查詢?有什麼建議麼?

+0

我不知道FT是否緩存結果。我想我在上傳數據後首先運行了這個查詢,但是導入大約完成了40%。現在我運行的那些查詢似乎都停留在基於部分數據的結果上。 - 我將同一個表重新加載到一個新的FT中並獲得正確的結果。 - 我在這張表的另一個字段上進行了查詢,我在導入過程中沒有查詢過這個字段,並且得到了正確的結果 FT是否爲查詢性能緩存查詢結果?我明白他們爲什麼想要。有沒有辦法清除緩存? – prototype 2012-07-16 14:38:09

回答

0

我相信FT會在查詢中緩存結果,如果查詢首先在不完整的數據上運行,這些緩存可能會出錯。

我在上傳數據之後運行測試的字段(例如SEX,ETHUN) - 但在計數器表示「100%完成」之前 - 立即返回(< 0.1秒),結果看起來像「基於一半的數據。雖然其他字段(例如COPD,ASTHMA)上的類似查詢會以正確的結果(或503錯誤的超時)緩慢返回(10-30秒或更長),然後返回正確的結果,然後立即返回。