cqlsh:创建超级和子列?

时间:2015-11-04 14:57:42

标签: cassandra datastax cql3 cqlsh

在cqlsh中我想创建1个超级列address。然后在地址下方,我想要创建2个子列permanenttemporary address

我怎样才能使用cql shell?

2 个答案:

答案 0 :(得分:1)

超级专栏已过时。尽量确保您阅读的任何文档,书籍或博客都是最近的。

答案 1 :(得分:1)

phact是对的,你会想要与任何谈论超级列的事物保持距离。使用cql(来自cqlsh内部)解决此问题的方法是将地址创建为用户定义的类型:

CREATE TYPE address (
    street text,
    city text,
    postal text,
    country text
);

然后,您可以构建一个表来实现地址类型的MAP。

CREATE TABLE users (
    login text PRIMARY KEY,
    first_name text,
    last_name text,
    addresses map<text, frozen <address>>
);

要从cqlsh插入值,您可以使用以下内容:

INSERT INTO users (login,first_name,last_name,addresses)
VALUES ('jones','Theora','Jones',{'work':{street:'101 Big Network Drive',city:'New York', postal:'10023',country:'USA'},
                                  'home':{street:'821 Wembley St.',city:'London',postal:'W11 2BQ',country:'GBR'}});