2013-12-17 3 views
2

В настоящее время мы имеем таблицу определены нижеCassandra 1.2: Тип Обновления в первичном ключе CQL3

create table tableA(id int, 
        seqno int,      
        data text, 
        PRIMARY KEY((id), seqno)) 
        WITH CLUSTERING ORDER BY (seqno DESC); 

Нам нужно обновить тип столбца идентификаторов от ИНТ к тексту. Мы задаемся вопросом о двух подходах, было бы наиболее целесообразным.

  1. ALTER TABLE tableA ALTER id ТИП varchar; (команда выполнена успешно, но затем у нас есть проблемы с чтением данных. Это потому, что таблица ALTER не обновляет базовое хранилище столбца id?)

  2. COPY to/from oldtable/newtable. Это работает, но у нас есть проблемы с тайм-аутом RPC (который мы можем изменить), но это плохая идея для таблицы в кластере?

Мы проверили онлайн-документы, и это всего лишь 2 варианта, которые мы можем найти вокруг этого. есть ли другие варианты?

Благодаря Пол

ответ

2

Я бы сказал, вариант 1 на самом деле не поддерживается. Если ваши целые числа не сопоставляются с фактическими строками, у вас возникнут проблемы, вероятно, вы увидите ошибки проверки ключа.

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

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