2015-02-27 5 views
2

Я хочу сделать уникальное ограничение в cassandra. Как я хочу, чтобы все значения в моей колонке быть уникальными в моей семье колонке например: имя-Рахули телефон-123 адрес аКак сделать значения уникальными в cassandra

Теперь я хочу, чтобы я это строка значения не составит Рахули, 123 и abc снова вставлен на серификацию в datastax, я обнаружил, что могу добиться этого, выполнив запрос на ключ раздела как IF NOT EXIST, но не получая решение для получения всех трех значений uniques. означает, что имя-jacob phone-123 Адрес-qwe

это также не следует включать в мою базу данных, так как мой телефон co lumn имеет такое же значение, как я показал с именем-rahul.

ответ

3

Короткий ответ заключается в том, что в Кассандре не поддерживаются ограничения любого типа. Они просто слишком дороги, так как они должны включать в себя несколько узлов, тем самым побеждая цель иметь в конечном итоге согласованность на первом месте. Если вам нужно сделать единственный столбец уникальным, тогда может быть решение, но не для более уникальных столбцов. По той же причине - нет изоляции, нет согласованности (C и I из ACID). Если вам действительно нужно использовать Cassandra с этим типом принудительного применения, то вам нужно будет создать какой-то уровень приложения синхронизации, который перехватит все запросы к базе данных и убедитесь, что значения уникальны, и все ограничения принудительно соблюдены. Но это не будет иметь никакого отношения к Кассандре.

+0

, тогда вы можете сказать мне альтернативное решение для создания уникальных столбцов. – user3467525

+0

Как я уже упоминал, ваш прикладной уровень должен убедиться, что он обеспечивает уникальность, прежде чем он вставляет данные в Cassandra. Как вы его реализуете - еще один вопрос. Но это не то, что Кассандра может обеспечить. –

+0

это означает, что мне нужно будет выполнить некоторые операции чтения, но я спрашивал, есть ли какое-либо решение, чтобы получить уникальность, не делая операции чтения. – user3467525

Смежные вопросы