Сопоставление столбцов Cassandra Super

Думаю, все, кто играл с Cassandra, уже прочитали эту статью. .

Я пытаюсь создать свою схему на CassandraCli, но у меня много проблем, может ли кто-нибудь указать мне правильный путь? Я пытаюсь создать структуру, аналогичную семейству столбцов «Комментарии» из статьи.

В терминале CassandraCli я набираю:

create column family posts with column_type = ‘Super’ and comparator = ‘AsciiType’ and subcomparator = TimeUUIDType;

Он работает нормально, нет документа, говорящего мне, что если я добавлю атрибут column_metadata, он будет для суперстолбцов, потому что мое семейство столбцов имеет тип super, я не могу найти, верно ли это, поэтому:

create column family posts with column_type = ‘Super’ and comparator = ‘AsciiType’ and subcomparator = ‘TimeUUIDType’ and column_metadata = [{column_name:'body'}];

Я пытаюсь создать то же, что и семейство столбцов комментариев в статье, но когда я пытаюсь заполнить

set posts['post1'][timeuuid()][body] = ‘Hello I am Goku!’;

я получил:

Недопустимая строка UUID: тело

Я предполагаю, что, поскольку я выбрал субкомпаратор типа timeuuid, а тело представляет собой строку, это должен быть timeuuid, поэтому КАК мои столбцы внутри суперстолбца, который является типом timeuuid, могут содержать столбцы с именами строковых типов в качестве комментариев к статье создаются?

Спасибо


person Laubstein    schedule 13.01.2011    source источник
comment
+1 для кого-то с представителем 1, задающим вопрос о Кассандре. Приятно видеть кого-то, кто интересуется чем-то другим, кроме SQL...   -  person SyntaxT3rr0r    schedule 14.01.2011


Ответы (4)


Я думаю, вы переключили то, к чему применяются comparator_type и subcomparator_type. В семействах суперстолбцов comparator_type применяется к именам суперстолбцов, а subcombparator_type применяется к именам вложенных столбцов.

Переключите типы компараторов, и ваш первый пример должен работать.

person Tyler Hobbs    schedule 14.01.2011

set posts[1][timeuuid()][utf8('body')] = 'Hello I am Goku!';

Правильный ответ должен быть таким.

:p

person gustavoboby    schedule 26.10.2011

Вы пробовали цитировать 'body'?

set posts['post1'][timeuuid()]['body'] = ‘Hello I am Goku!’;
person yfeldblum    schedule 13.01.2011

Я пытался:

set posts[1][timeuuid()]['body'] = 'Hello I am Goku!';

это сработало...

person aletapool    schedule 09.08.2011