如何在cassandra中将多列添加为主键?
我有一个包含数百万条记录的现有表,最初我们有两列作为分区键和集群键,现在我想在表中添加两列作为分区键如何在cassandra中将多列添加为主键?,cassandra,Cassandra,我有一个包含数百万条记录的现有表,最初我们有两列作为分区键和集群键,现在我想在表中添加两列作为分区键 如何更改?如果更改分区键,则需要创建新表并导入现有数据。部分原因是分区键不等于关系数据库中的主键。分区键由Cassandra散列,该散列用于查找磁盘上的分区。如果更改分区键,则会更改哈希值,并且无法再查找分区 CREATE TABLE KEYSPACE_NAME.AMAR_EXAMPLE ( COLUMN_1 TYPE, COLUMN_2 TYPE, COLUMN_3 T
如何更改?如果更改分区键,则需要创建新表并导入现有数据。部分原因是分区键不等于关系数据库中的主键。分区键由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);
您可以使用COPY
将数据导出到CSV,然后通过COPY
或使用SSTABLELOADER
将数据导入新表。有大量关于如何使用这些工具的文档和演练。例如,讨论对更新的SSTABLELOADER
所做的更改。如果创建新表并导入现有数据,则将创建新分区和新哈希。Cassandra不允许您在创建表之后简单地向分区键添加额外的列
了解您的数据和Cassandra数据建模技术将有助于减少您在更改分区键时可能会遇到的工作量。查看Datastax提供的自定进度课程。我真的能帮上忙 如果更改分区键,则需要创建一个新表并导入现有数据。部分原因是分区键不等于关系数据库中的主键。分区键由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);
您可以使用COPY
将数据导出到CSV,然后通过COPY
或使用SSTABLELOADER
将数据导入新表。有大量关于如何使用这些工具的文档和演练。例如,讨论对更新的SSTABLELOADER
所做的更改。如果创建新表并导入现有数据,则将创建新分区和新哈希。Cassandra不允许您在创建表之后简单地向分区键添加额外的列
了解您的数据和Cassandra数据建模技术将有助于减少您在更改分区键时可能会遇到的工作量。查看Datastax提供的自定进度课程。我真的能帮上忙