根据用户定义类型中的特定列选择数据

时间:2018-02-14 18:22:19

标签: cassandra nosql cql cqlsh

所以我有以下列家族及其各自的类型:

CREATE TYPE subudt (
    id varint,
    -- snipped --
);

CREATE TYPE udt (
    name text,
    -- snipped --
    subudt frozen <subudt>
);

CREATE COLUMNFAMILY tablename (
    id varint,
    -- snipped --
    udt frozen <udt>,
    PRIMARY KEY (id)
); 

如何在name类型的udt字段上执行选择查询?我环顾四周,似乎你不能在udt字段上使用CREATE INDEX,而只能在整个用户定义的类型本身上使用。{/ p>

1 个答案:

答案 0 :(得分:2)

理想情况下,您可以根据将要服务的查询对Cassandra中的数据进行建模。查询UDT中的特定字段,首先要将它们组合在一起。

拥有二级索引将取决于它尝试解决的查询类型。性能取决于here解释的不同查询结构。

简而言之,您无法在特定字段上创建索引,理想情况下应该查看不同数据的建模。它绝对可以复制数据以提供不同的查询模式。假设维护一个全新的表来提供基于&#34;名称&#34;的查询。很常见。