Cassandra UDT 列作为聚类列

Cassandra UDT column as clustering column

我正在使用自定义 UDT 类型来存储地点信息。它在 table 中存储为冻结 blob/serialized 类型。用于根据 country 和 state 进行排序。 将 UDT 类型保留为聚类列有多大意义。将具有相同国家和州的地方的所有序列化值组合在一起。

create type place(
    country Text,
    state Text
);

create table myTable(
    person Text,
    sale_place FROZEN<place>,
    sale_time TIMESTAMP,
    PRIMARY KEY( person,sale_place,sale_time)
) WITH CLUSTERING ORDER BY (sale_place ASC,sale_time ASC );

据我所知,使用 UDT 作为主键的一部分没有任何限制。在最初的日子里,不鼓励在主键中使用 UDT (http://www.datastax.com/dev/blog/cql-in-2-1)。我认为主要原因是当时的 UDT 主要用于简化集合中的复杂类型。

如今,我认为该模式可读性很强,我认为应该可以很好地使用它。