2012-07-16 55 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秒或更长),然后返回正确的结果,然后立即返回。