2015-08-05 1 views
1

В настоящее время у меня есть таблица со следующим основным ключом с 10K строками.CASSANDRA CQL3: изменить первичный ключ

PRIMARY KEY ((deviceid, time), channelname) 

и мне нужно получить:

PRIMARY KEY (deviceid, time, channelname) 

я где-то видел, что я перестраивать всю свою таблицу. Итак, есть ли у вас несколько методов/советов для экспорта моих строк и их импорта в моей новой таблице?

Спасибо;)

ответ

3

я где-то видел, что я перестраивать всю свою таблицу.

Это правильно.

У вас есть несколько способов/советов по экспорту моих строк и их импортированию в новую таблицу?

Да, я просто должен был сделать это на другой неделе по той же причине. Изнутри cqlsh вы можете использовать утилиту COPY.

Чтобы экспортировать свою shipcrewregistry таблицу, я буду использовать COPY TO:

[email protected]:presentation> COPY shipcrewregistry (shipname , lastname , firstname , 
    citizenid , aliases) TO '/home/aploetz/shipcrewreg_20150805.txt' 
    WITH HEADER=true AND DELIMITER='|'; 

9 rows exported in 0.026 seconds. 

И импортировать его когда-то у меня есть сгоревший вынос и воссоздал таблицу, я буду использовать COPY FROM:

[email protected]:presentation> COPY shipcrewregistry (shipname , lastname , firstname , 
    citizenid , aliases) FROM '/home/aploetz/shipcrewreg_20150805.txt' 
    WITH HEADER=true AND DELIMITER='|'; 

9 rows imported in 0.636 seconds. 

Для получения дополнительной информации о КОПИИ, проверьте DataStax docs.

+0

Большое спасибо, я сделаю эту операцию завтра :) –

1

Просто для расширения. Первичный ключ, заданный в операторе CQL CREATE TABLE включает ключ раздела. В Cassandra ключ раздела определяет, на каком узле будут храниться данные, поэтому его нельзя изменить или изменить, так как данные теперь будут на неправильном узле. В вашем заявлении вы изменили ключ раздела (deviceid, time) на deviceid, и для определения местоположения данных будет создан другой хеш.

Конечно, в Кассандре вы можете иметь данные в обеих таблицах, если вам нужно запросить по-разному. Радости денормализации!