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

Server-side warning: Aggregation query used without partition key

本文关键字:分区 情况下 警告 查询 服务器端      更新时间:2023-10-16

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

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

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

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