При использовании драйвера Cassandra для C / C ++ я иногда вижу подобные сообщения, появляющиеся в моей консоли:
1460937092.140 [WARN] (src/response.cpp:51:char*
cass::Response::decode_warnings(char*, size_t)):
Server-side warning: Aggregation query used without partition key
Интересно, знает ли кто-нибудь, что это значит. Что я должен искать в своем коде, который может генерировать эту ошибку, или это просто что-то на стороне сервера, которое я не могу контролировать?
Это предупреждение говорит вам, что вы делаете выбор, используя пользовательский агрегат без ключа раздела. Это может быть тот, который встроен как avg, count, min, max или может иметь один из ваших собственных.
Пример:
select avg(temperature) from weather_data;
Vs
select avg(temperature) from weather_data where id = 1;
Первый пример будет сканировать все строки данных в кластере и может серьезно снизить производительность. Если строк достаточно, время запроса может истечь.
Второй будет сканировать только один раздел данных, который хранит запрос на одном сервере и является рекомендуемым использованием.
Других решений пока нет …