2016-04-17 7 views
7

Während die C/C++ Treiber von Cassandra, ich manchmal diese Art von Nachrichten finden Sie in meiner Konsole Aufspringen:Serverseitige Warnung: query Aggregation ohne Partition Schlüssel

1460937092.140 [WARN] (src/response.cpp:51:char* 
     cass::Response::decode_warnings(char*, size_t)): 
     Server-side warning: Aggregation query used without partition key 

Sie fragen, ob jemand weiß, was das bedeutet. Was sollte ich in meinem Code suchen, der diesen Fehler erzeugen könnte, oder ist es nur etwas auf der Serverseite, auf die ich keine Kontrolle habe?

Antwort

10

Diese Warnung weist Sie darauf hin, dass Sie eine Auswahl mit einem benutzerdefinierten Aggregat ohne Partitionsschlüssel vornehmen. Das kann einer sein, der wie avg, count, min, max eingebaut ist oder einen eigenen besitzen kann.

Ein Beispiel:

select avg(temperature) from weather_data; 

Vs

select avg(temperature) from weather_data where id = 1; 

Das erste Beispiel würde alle Zeilen von Daten im Cluster scannen und eine schwere Leistungseinbußen sein könnte. Wenn genügend Zeilen vorhanden sind, könnte die Abfrage eine Zeitüberschreitung aufweisen.

Die zweite wird nur eine einzelne Partition von Daten scannen, die die Abfrage auf einem Server hält und die empfohlene Verwendung ist.

+1

Ah. Das ist der "count (*)" ... der gut mit der Sparsamkeit funktioniert hat und nur die Anzahl der Zeilen zurückgegeben hat. Oder vielleicht nicht ... Aber ich sehe die Aussage, die jetzt die Warnung verursacht. –

Verwandte Themen