Cassandra改变列类型:哪些类型兼容?

Has*_*tor 3 cql cassandra cql3

当列类型无法更改时,关于某些示例的互联网上有一些不完整的信息.例如,在DataStax网站上有一个提到:

  • 更改群集列的类型.
  • 更改定义了索引的列.

或者,例如,这里提到您无法转换uuidtimeuuid.而且从我个人的经验,我不能改变texttimestamp(我们存储在ISO8601格式的文本,一个不幸的决定,在项目时间表早日期).

但是,我找不到哪些类型可以转换为哪种类型的完整描述,或者至少哪些类型无法转换为哪种类型.有人知道吗?

Aar*_*ron 5

好问题!我不得不承认,我对这个缺乏完整的文档感到有点惊讶.你的问题激励我做一些调查和博客.

从本质上讲,这里是Cassandra兼容CQL类型的完整列表(使用Cassandra 2.2.0):

  • ascii - > blob,text,varchar
  • bigint - > blob,timestamp,varint
  • int - > blob,varint
  • text - > blob,varchar
  • timestamp - > bigint,blob,varint
  • timeuuid - > blob,UUID
  • varchar - > blob,text

笔记:

  • blob在那里很多,因为任何东西都可以转换为blob.
  • cqlsh允许您将varint转换为新的日期类型,但这是一个错误(CASSANDRA-10027).实际上不要尝试.