2012-04-27 3 views
1

Моя модель данных выглядит следующим образомЛюбой альтернатива вторичной индексации в супер семьи колонка Cassandra

 #keyspace_name{ 
      #columnfamily1 
       {startDate_mobileNo: // row key 
         { Call_TYpe: // super column 
           { xyz: value 
           endDate : value; 
           } 
         } 
       } 

Теперь я хочу, чтобы сделать результат поиска фильтрования startDate_mobileNo, CALL_TYPE и ENDDATE. Это можно сделать, сделав endDate вторичным индексом. Но вторичное индексирование в суперколонке невозможно. Поэтому я не могу понять, как действовать. Да, я могу сделать вторичную часть фильтрации индексации, фильтруя данные результата, используя простое java-кодирование. Но я думаю, что это не правильная идея, так как в случае больших данных может быть нехватка памяти. Поэтому, пожалуйста, предложите мне некоторые идеи.

Заранее спасибо

ответ

3

Я считаю, что вы можете получить то, что вы хотите с помощью составных ключей, которые имеют новую поддержку CQL первого класса в Cassandra 1.1. См. this blog post about modeling with composites для получения дополнительной информации.

Supercolumns - это, безусловно, неправильный путь - они всегда были несколько проблематичными, и теперь они устарели, и вы можете получить от них все, что захотите, используя композиты.

Если я интерпретации вашей модели права, вы можете сделать что-то вроде:

CREATE TABLE columnfamily1 (
    startDate timestamp, 
    mobileNo text, 
    Call_TYpe int, 
    endDate timestamp, 
    xyz text, 
    PRIMARY KEY (startDate, mobileNo, Call_TYpe) 
); 

Вы можете также сделать дополнительный индекс ENDDATE, если вы хотите. Мне не ясно, будете ли вы.

Если вы хотите дать более конкретный пример тех запросов, которые вам нужны для поддержки, я могу помочь больше.

+0

Да, мистер Пол, вы правильно интерпретировали мою модель данных. И да, я также хочу установить endDate в качестве вторичного индекса. На самом деле я хочу получить некоторые результаты, отфильтровывающие эти четыре поля из моего столбца. Но, используя суперколонное семейство, я не могу сделать это с большей эффективностью. Еще один запрос с моей стороны, могу ли я указать свой идентификатор электронной почты, чтобы я мог чему-то научиться у вас, да, конечно, если вы не возражаете. – abhi

+0

Я бы предпочел ответить на вопросы здесь, где это возможно, или, по крайней мере, на форумах поддержки Datastax (http://www.datastax.com/support-forums/), чтобы я (и другие) мог помочь многим люди сразу. Ограниченное время, вы знаете. –

+0

Господин Павел Мне нужна другая помощь с вашей стороны. Перейдите по этой ссылке http://stackoverflow.com/questions/10482493/astyanax-composite-column – abhi

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