服务器端警告:使用没有分区键的聚合查询

时间:2016-04-17 23:57:12

标签: c++ cassandra warnings cassandra-3.0

在使用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

想知道是否有人知道这意味着什么。我应该在我的代码中寻找可能产生此错误的内容,或者它只是服务器端的一些我无法控制的东西?

1 个答案:

答案 0 :(得分:20)

该警告告诉您使用没有分区键的用户定义聚合进行选择。这可能是像avg,count,min,max一样内置的,也可能是你自己的一个。

一个例子:

select avg(temperature) from weather_data;

Vs的

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

第一个示例将扫描群集中的所有数据行,并且可能会严重影响性能。如果有足够的行,查询可能会超时。

第二个只扫描单个数据分区,它将查询保留在一个服务器上,是推荐用法。