【问题标题】:Representing a super column in Cassandra CQL在 Cassandra CQL 中表示一个超级列
【发布时间】:2018-02-11 12:05:19
【问题描述】:

目前,我的一张表具有以下架构:

id
name
...
country
  - id
  - name
  - city
    - id
    - name

我查看了 Cassandra 文档,但找不到任何明确的示例或演示,说明如何在列族中表示我的超级列。我的代码如下:

CREATE COLUMNFAMILY table (
    id varint,
    name varchar,
    <<regular columns omitted>>
    country ..?,
    PRIMARY KEY = (id)
);

【问题讨论】:

  • 你能解释一下你想建模什么吗?
  • 是的,超级列自 Thrift/C* 1.1 天以来就没有真正的存在了。您找到的任何引用它们的文档都应该被视为非常过时了。

标签: cassandra nosql cql super-columns


【解决方案1】:

您可以创建用户定义的类型以将多个数据字段附加到一列。

例如,在你的情况下

country
  - id
  - name
  - city
    - id
    - name

可以在 UDT 中表示为

CREATE TYPE mykeyspace.countryudt (
  id uuid,
  name text,
  city map<uuid, text>
);

现在表定义看起来像,

CREATE COLUMNFAMILY table (
    id varint,
    name varchar,
    <<regular columns omitted>>
    country frozen <countryudt>,
    PRIMARY KEY = (id)
);

UDT here 的其他参考。

【讨论】:

    猜你喜欢
    • 2013-01-24
    • 2012-06-01
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多