CREATE TABLE test (
type text,
scope text,
name text,
version text,
alias text,
deleted boolean,
PRIMARY KEY ((type, scope, name), version)
) WITH read_repair_chance = 0.0
AND dclocal_read_repair_chance = 0.1
AND gc_grace_seconds = 864000
AND bloom_filter_fp_chance = 0.01
AND caching = { 'keys' : 'ALL', 'rows_per_partition' : 'NONE' }
AND comment = ''
AND compaction = { 'class' : 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'min_threshold' : 4, 'max_threshold' : 32 }
AND compression = { 'sstable_compression' : 'org.apache.cassandra.io.compress.LZ4Compressor' }
AND default_time_to_live = 0
AND speculative_retry = '99.0PERCENTILE'
AND min_index_interval = 128
AND max_index_interval = 2048;
CREATE INDEX test_alias ON test (alias);
CREATE INDEX test_type_index ON test (type);
Этот выбор не работает:выбрать с колонкой низкой мощности с позволяют фильтрация выдает ошибку: Никакие вторичные индексы на ограниченных столбцах не поддерживают предоставленные операторы
select *
from test
where type = 'type'
and scope='scope'
and name='name'
and deleted = false
allow filtering;
и дает мне:
No secondary indexes on the restricted columns support the provided operators: com.datastax.driver.core.exceptions.InvalidQueryException: No secondary indexes on the restricted columns support the provided operators.
этого выделим работы:
select *
from test
where type = 'type'
and scope='scope'
and deleted = false
allow filtering;
Этот выбор также работает:
select *
from test
where type = 'type'
and scope='scope'
and name='name'
allow filtering;
Этот выбор также работает:
select *
from test
where type = 'type'
and scope='scope'
and name='name'
and version='version'
allow filtering;
Любая идея? Я не хочу создавать индекс в столбце с низкой мощностью, и я не понимаю, почему в некоторых случаях этот запрос работает (когда я фильтрую через 2 поля из первичного ключа и дополнительно поля: удаляется).
версия Кассандры: 2.1.14
Если я понял правильно, нет никакой возможности использовать условие на запрос со всеми ключами внутри составного ключа секционирования и другое поле вместе. Но я не нашел никаких объяснений этому ...
Какова ваша версия cassandra? –
Pro-tip: Запросы, требующие ALLOW FILTERING и/или вторичные индексы, не масштабируются. Постройте свои таблицы в соответствии с вашими запросами, и эта проблема исчезнет. – Aaron
Версия Cassandra: 2.1.14 –