2013-05-29 1 views
1

Я новичок в Cassandra и просто играю с ней. Я создал столбец family с составной ключ и составной столбец. Ниже приведен сценарий тот же:необходимо искать данные, используя часть составного ряда строк в cassandra

create column family TestCompositeKey with key_validation_class='CompositeType(UTF8Type, TimeUUIDType)' and comparator='CompositeType(UTF8Type, UTF8Type, UTF8Type, UTF8Type)' and default_validation_class='UTF8Type'; 

После вставки данных в семье колонке с использованием Hector Ниже приведен вид я получаю на CLI:

RowKey: AB:e9a87550-c84b-11e2-8236-180373b60c1a 
=> (column=0007:TAR:PUB:BD_2013_01_11_0125094813, value=TESTSEARCH, timestamp=1369823914277000) 

Теперь я хочу, чтобы искать данные только по " AB ', заданный в строке ключа, поскольку вторая часть ключа будет динамической. Он отлично работает, когда я даю полный ключ строки. Скажите, пожалуйста, как это можно сделать. Я также предоставляю критерии поиска в столбце вместе с указанием ключа.

Благодаря Хариш Кумар

+0

Благодарим за исправление и улучшение содержания запроса. –

ответ

1

Вы не можете сделать это (эффективно, по крайней мере): для поиска по ключу строки вам нужно весь ключ. В общем случае следует избегать использования TimeUUID в качестве ключей строк, если только у вас нет другой таблицы, действующей в качестве индекса для получения TimeUUID для запроса.

Если вы хотите найти только первый компонент ключа, вы должны перенести второй компонент на составной столбец и просто иметь один компонент в качестве ключа строки. Определение было бы

create column family TestCompositeKey with key_validation_class='UTF8Type' and comparator='CompositeType(TimeUUIDType, UTF8Type, UTF8Type, UTF8Type, UTF8Type)' and default_validation_class='UTF8Type'; 

Если вы использовали определение CQL3:

CREATE TABLE TestCompositeKey (
    a varchar, 
    b timeuuid varchar, 
    c varchar, 
    d varchar, 
    e varchar, 
    f varchar, 
    PRIMARY KEY (a, b, c, d, e, f) 
); 

вы получили бы по существу такую ​​же схему, как я описал. Ключ строки (ключ раздела на языке CQL) является a, а имена столбцов являются составной частью b: c: d: e: f.

+0

Спасибо, Ричард !!! Это помогает. –

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