Мой простой запрос на обновление выдает следующую ошибку.
InvalidRequest: Error from server: code=220 [Invalid query]
message="Cannot execute this query as it might involve data filtering and
thus may have unpredictable performance. If you want to execute this
query despite the performance unpredictability, use ALLOW FILTERING"
Насколько я знаю, ALLOW FILTERING добавляет индексирование и обычно используется для запроса SELECT.Я пытался понять причину этой ошибки.Но не смог ничего найти.Кроме того, я только начал изучать CQL, несколько концепций для меня новы.
Вот схема моей таблицы:
CREATE TABLE blogplatform.users (
user_id int PRIMARY KEY,
active_status int,
password text,
user_name text
) WITH bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'ALL'}
AND comment = ''
AND compaction = {'class': 'SizeTieredCompactionStrategy'}
AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99.0PERCENTILE';
Запрос, который я пытаюсь выполнить:
UPDATE users SET active_status = 0 WHERE user_name='Heath';
Вывод:
InvalidRequest: Error from server: code=220 [Invalid query]
message="Cannot execute this query as it might involve data filtering and
thus may have unpredictable performance. If you want to execute this
query despite the performance unpredictability, use ALLOW FILTERING"
Я даже пытался добавить ALLOW FILTERING в запросе:
UPDATE users SET active_status = 0 WHERE user_name='Heath' ALLOW FILTERING;
Вывод:
SyntaxException: line 1:59 : syntax error...
Может кто-нибудь пожалуйстаобъясните мне, почему я получаю эту ошибку при простом обновлении.Кроме того, кто-нибудь может мне помочь решить эту ошибку.
Спасибо.