在CQL中使用UDT字段分区键

时间:2017-06-13 11:33:49

标签: cassandra cql

我对Cassandra中的分区键有一点疑问。 当我创建一个包含名为flxB的字段的表时,其类型是这样的UDT:

CREATE TYPE fluxes (
    flux float,
    flux_prec smallint,
    flux_error float,
    flux_error_prec smallint,
    flux_bibcode text,
    system text
);

我可以将字段flxB.flux放入分区键吗?

1 个答案:

答案 0 :(得分:0)

不,您不能将flxB.flux放在主键的任何部分

即使在低于3.0的cassandra版本中,UDT类型字段也必须定义为冻结

  

使用frozen关键字时,无法更新用户定义类型值的部分内容。必须覆盖整个值。 Cassandra将冻结的,用户定义的类型的值视为blob。

在Cassandra中,插入/更新时必须存在主键的所有部分,如果cassandra允许你将flx.flux放在分区键中,cassandra将如何确保主键的所有部分都是出现在插入/更新查询中?