2013-12-17 88 views
2

目前,我们有一个表,定义如下卡桑德拉1.2:在主键CQL3更新型

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

我们需要从int到文本更新ID列类型。我们想知道两种方法,最合适的。

  1. ALTER TABLE tableA ALTER id TYPE varchar; (命令执行成功但是我们在读取数据时遇到了问题,这是因为ALTER表没有更新id列的底层存储?)

  2. COPY到/ from oldtable/newtable。这可行,但我们有RPC超时(我们可以更改)的问题,但这是一个跨群集表的坏主意?

我们检查了在线文档,这些只是我们可以在此找到的两个选项。还有其他选择吗?

感谢 保罗

回答

2

我想说的选项1是不是真的支持。如果你的整数没有映射到实际的字符串,你会遇到问题,你可能会看到关键的验证错误。

对于选项2,您可能只需要为每个读/写复制较小的数据块。