web-dev-qa-db-ja.com

サーバー側の警告:パーティションキーなしで使用された集計クエリ

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

誰かがそれが何を意味するのか知っているかどうか疑問に思います。このエラーを生成する可能性のあるコードで何を探す必要がありますか、それともサーバー側で制御できないものですか?

14
Alexis Wilke

この警告は、パーティションキーなしでユーザー定義の集計を使用して選択を行っていることを示しています。これは、avg、count、min、maxのように組み込まれているものでも、独自のものである可能性もあります。

例:

select avg(temperature) from weather_data;

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

最初の例は、クラスター内のすべてのデータ行をスキャンするため、パフォーマンスに重大な影響を与える可能性があります。十分な行がある場合、クエリがタイムアウトする可能性があります。

2つ目は、1つのサーバーへのクエリを保持するデータの単一パーティションのみをスキャンするため、推奨される使用法です。

22
Patrick McFadin