2016-11-23 2 views
1

У меня есть Cassandra таблица с 5 'ключевыми' столбцами и значением. Мне интересно, есть ли способ - используя только одну таблицу - для сканирования комбинаций ключевых столбцов. Im отлично с «закреплением», чтобы найти значения следующего, но не нашел правильного синтаксиса для C * для достижения чего-либо подобного.c * - понимание 'select different' использование

Что я пробовал:

  • использованием PRIMARY KEY(a, b, c, d, e)
    • select distinct a from <table name> - это работает и дать отчетливый 'а'

Ok. Круто.

  • использованием PRIMARY KEY(a, b, c, d, e)
    • select distinct b from table where a = <some known value> - это не работает, и отчеты WHERE clause only supports restriction by partition key

Fine. Я буду более конкретным.

  • использованием PRIMARY KEY((a, b, c), d, e)
    • select distinct a from <table name> - не работает, и отчеты Partition key parts: resource must be restricted as other parts are

Ok .. даже более конкретных

  • используя PRIMARY KEY((a, b, c), d, e)
    • select distinct c from <table name> where a = <known value> and b = <another known value> - это сообщает WHERE clause only supports restriction by partition key

Так что ясно, что я не знаю, как использовать отчетливый ключевое слово в C *.

Вопрос:

  • возможно найти отличный комбинации ключей разделов?

  • есть ли другой способ достижения этого? Использовать таблицы поиска для всех подмножеств?

(Использование Cassandra 3.9 на CentOS 6)

ответ

2

Явное ключевое слово работает только тогда, когда он находится на всех (CQL3) разделов ключевых столбцов.

Так что в вашем случае работал следующий запрос, потому что в этом случае ключ раздела является.

select distinct a from <table name>

во втором случае select distinct b не работает, потому что б не является ключевым разделом.

если вы используете PRIMARY KEY((a, b, c), d, e)

вы должны использовать отличный от всех ключей разделов. в этом случае у вас есть составной ключ раздела a, b, c.

Так что в вашем списке вы должны указать все три.

вы можете прочитать здесь патч https://issues.apache.org/jira/secure/attachment/12598894/4536.txt

Посмотри на метод validateDistinctSelection и вы можете увидеть различные условия, которые используются, чтобы отчетливый выбор.

+0

Хорошо крысы. Похоже на «янтарные волны таблиц поиска» в моем будущем. – ethrbunny

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