2014-08-28 5 views
0

У меня есть ряд существующих Cassandra 2.0.0 CF, созданных API-интерфейсом trift, и вы хотите использовать Datastax DevCenter 1.1.1 и CQL3 в будущем, поэтому я попытался изменить типы столбцов с blob-s на что-то более полезное. В конкретном CF все ключи и значения являются только текстовыми (строка ключа - это имя процесса, имена ячеек - это своего рода отметки времени в текстовом формате, в это время значения представляют собой строки). Я успешно изменил тип «ключ» и «значение» на «текст», но тип «column1» вызывает у меня проблему.Cassandra/CQL: как ALTER тип colium1?

При запуске команды alter table из DevCenter: изменить таблицу mycfname. «MyTableName» изменить текст типа column1; Я получаю всплывающее окно с: Невозможно выполнить CQL сценарий на «тест»: java.lan.AssertationError

Похожий вопрос был задан на другом форуме, но так и не ответил. Любые мысли? С уважением Зоран

+0

Можете ли вы включить полный вывод запуска 'desc table mycfname. MyTableName", а также полное исключение, которое вы получаете после команды alter table? – BrianC

ответ

1

Изменение типа столбца после вставки данных может привести к запуску драйверов/инструментов CQL, если новый тип несовместим с данными. Байты, хранящиеся в значениях для этого столбца, остаются неизменными, и если существующие данные не могут быть десериализованы в соответствии с новым типом, ваш драйвер или интерфейс CQL могут сообщать об ошибках.

Эти изменения типа столбца не допускаются:

Изменение типа столбца кластеризации. Изменение столбцов, на которых определен индекс.

+0

Благодарим вас за указание на это (из документации CQL ALTER TABLE). Это имеет смысл вообще, хотя я ожидал бы такую ​​же проблему при изменении типа «ключа» (который отлично работал, и я вижу ключи как текст). Это означает, что преобразование из trift в CQL будет намного более трудоемким (возможно, потребуется скопировать данные в новую таблицу), и в некоторых случаях это не стоит делать. – ZoS

+0

Если вы используете DSE, вы можете искусить одну магию лайнера, чтобы переместить ваши данные в новое семейство столбцов (с новыми типами). – phact

+0

Мы используем выпуск Cassandra Community, и я только что установил DS Enterprise, чтобы играть с ним. Спасибо за искровой наконечник. – ZoS

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