簡體   English   中英

CASSANDRA CQL3:更改主鍵

[英]CASSANDRA CQL3 : Change primary key

目前,我有一個表,其后有1萬行主鍵。

PRIMARY KEY ((deviceid, time), channelname)

我需要得到:

PRIMARY KEY (deviceid, time, channelname)

我看到某處必須重建整個桌子。 那么,您是否有一些方法/建議來導出行並將其導入到新表中?

謝謝 ;)

我看到某處必須重建整個桌子。

那是對的。

那么,您是否有一些方法/建議來導出行並將其導入到新表中?

是的,由於完全相同的原因,我只需要在另一周進行此操作。 在cqlsh中,您可以使用COPY實用程序。

要導出我的shipcrewregistry ,我將使用COPY TO

aploetz@cqlsh: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

aploetz@cqlsh: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.

有關COPY的更多信息,請查看DataStax文檔

只是為了擴大。 CQL語句CREATE TABLE中設置的主鍵包括分區鍵。 在Cassandra中,分區鍵定義了數據將存儲在哪個節點上,因此不能更改或更改,因為現在數據將位於錯誤的節點上。 在您的語句中,您將分區鍵從(設備標識,時間)更改為設備標識,並且將生成另一個散列來定義數據位置。

當然,在Cassandra中,如果需要以其他方式查詢,則可以在兩個表中都有數據。 非規范化的樂趣!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM