【问题标题】:Partition key with UDT field in CQLCQL 中带有 UDT 字段的分区键
【发布时间】:2017-06-14 04:05:33
【问题描述】:

我对 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 放在我的分区键中吗?

【问题讨论】:

    标签: cassandra cql


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-13
      • 2013-08-16
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      • 2016-09-19
      • 1970-01-01
      • 2014-03-27
      相关资源
      最近更新 更多