Cassandra/CQL:如何改变colium1类型?

Cassandra/CQL:如何改变colium1类型?,cassandra,cql3,datastax,Cassandra,Cql3,Datastax,我有许多由trift API创建的现有Cassandra 2.0.0 CFs,希望将来使用Datastax DevCenter 1.1.1和CQL3,因此我尝试将列类型从blob-s更改为更有用的类型。在特定的CF中,所有键和值都是文本(行键是进程名,单元名是某种文本格式的时间戳,值是当时捕获的字符串)。我已成功地将“key”类型和“value”类型更改为“text”,但“column1”类型使我遇到了问题 从DevCenter运行alter table命令时: 更改表格mycfname。“My

我有许多由trift API创建的现有Cassandra 2.0.0 CFs,希望将来使用Datastax DevCenter 1.1.1和CQL3,因此我尝试将列类型从blob-s更改为更有用的类型。在特定的CF中,所有键和值都是文本(行键是进程名,单元名是某种文本格式的时间戳,值是当时捕获的字符串)。我已成功地将“key”类型和“value”类型更改为“text”,但“column1”类型使我遇到了问题

从DevCenter运行alter table命令时: 更改表格mycfname。“MyTableName”更改column1类型文本; 我得到的是: 无法在“测试”上执行CQL脚本:java.lan.AssertationError

类似的问题也曾在其他论坛上被问及,但从未得到回答。 有什么想法吗?
如果新类型与数据不兼容,则在插入数据后更改列的类型可能会混淆CQL驱动程序/工具。存储在该列的值中的字节保持不变,如果现有数据无法根据新类型进行反序列化,则CQL驱动程序或接口可能会报告错误

不允许对列类型进行以下更改:

更改群集列的类型。
正在更改定义索引的列。

能否包括运行
desc table mycfname。“MyTableName”
的完整输出以及在alter table命令后收到的完整异常?感谢您指出这一点(来自CQL alter table文档)。一般来说,这是有意义的,尽管我在更改“key”类型时也会遇到同样的问题(这很好,我可以将key视为文本)。这意味着从trift到CQL的转换将更加困难(可能需要将数据复制到新表),在某些情况下不值得这样做。如果您正在运行DSE,您可以使用spark one liner magic将数据移动到新的列族(使用新类型).我们使用Cassandra社区版,我刚刚安装了DS Enterprise来使用它。谢谢你的火花提示。