Google FusionTable не возвращает правильный результат - скрытый лимит?
Начало изучения FusionTable API. У меня есть довольно маленький пример "Привет, мир" Google FusionTable с ~32 000 записей. Но простые запросы, похоже, дают явно неправильные результаты, и мне интересно, упустил ли я что-то упущенное или есть ли предел, о котором я не знаю?
Попробуйте эту исходную таблицу, используя SQL-клиент Online FusionTable API, используя этот идентификатор таблицы:
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, а не 32,778. Я ожидал бы 18 876 и 13 902 соответственно, что в сумме составит 32 778:
Останавливает ли система в режиме без вывода сообщений агрегатные запросы на 10 000 записей в исходной таблице? Какие-либо предложения?
1 ответ
Я считаю, что FT кеширует результаты по запросам, и эти кеши могут быть неправильными, если запросы сначала выполняются на неполных данных.
Запросы к полям (например, SEX, ETHUN), которые я запускал для тестирования после загрузки данных, но до того, как счетчик сказал "100% завершено", возвращаются мгновенно (< 0,1 с) с результатами, которые выглядят как основанные на половине данные. В то время как аналогичные запросы в других полях (например, ХОБЛ, ASTHMA) возвращаются медленно (10-30 секунд или более) с правильными результатами (или тайм-аут с ошибкой 503), а затем возвращают правильные результаты, а затем мгновенно возвращаются после этого.