Если вы внесете изменения в раздел раздела, вам нужно будет создать новую таблицу и импортировать существующие данные. Это связано, в частности, с тем, что ключ раздела не равен первичному ключу в реляционной базе данных. Ключ раздела хэшируется Cassandra, и этот хэш используется для поиска разделов на диске. Если вы измените ключ раздела, вы измените значение хэша и больше не сможете искать раздел!
CREATE TABLE KEYSPACE_NAME.AMAR_EXAMPLE (
COLUMN_1 TYPE,
COLUMN_2 TYPE,
COLUMN_3 TYPE,
...
COLUMN_N TYPE
// Here we declare the partition key columns and clustering columns
PRIMARY KEY ((COLUMN_1, COLUMN_2, COLUMN_3, COLUMN_4), CLUSTERING_COLUMN)
)
//If you need to change the default clustering order declare that here
WITH CLUSTERING ORDER BY (COLUMN_4 DESC);
Вы можете экспортировать данные в CSV, используя COPY
, а затем импортировать данные в новую таблицу с помощью COPY
или использовать SSTABLELOADER
. Существует множество документации и пошаговых инструкций о том, как использовать эти инструменты. Например, this Datastax blog post рассказывает об изменениях, внесенных в обновленный SSTABLELOADER
. Если вы создадите новую таблицу и импортируете существующие данные, вы создадите новые разделы и новые хэши. Cassandra не позволит вам просто добавить дополнительные столбцы в раздел раздела после создания таблицы.
Понимание ваших данных и методов моделирования данных Cassandra поможет уменьшить объем работы, которую вы можете обнаружить при изменении ключей разделов. Проверьте курсы самообслуживания, предоставленные Datastax. DS220: Data Modeling действительно может помочь.