【问题标题】:Selecting Column Slice from Cassandra using CQL使用 CQL 从 Cassandra 中选择列切片
【发布时间】:2013-09-13 13:57:50
【问题描述】:

我对 Cassandra 很了解,尤其是 cqlsh 我可以得到一些列。我稍后会解释。这是我的桌子:

CREATE TABLE movies (
    key text PRIMARY KEY,
    boot text,
    effect text,
    foo text,
    movie text,
    starring text
);

还有一些内容:

key       | boot                | effect | foo  | movie         | starring
-----------+-----------------------+--------+------+---------------+----------
  starwars | Revenge of the Nerds3 |   null |  bar |     Star Wars |     null
 star trek |                  null |   null | null | into darkness |     null

现在,我明白我可以通过以下方式获得这些列的一部分:比如效果、foo 和电影:

select effect..movie from movies 

我应该得到所有这些列。但是,这是我在运行查询时得到的:

Bad Request: line 1:7 no viable alternative at input 'effect'

这是我应该做的还是有其他程序或者我的想法/信息不正确?

我的部分假设是基于Are CQL2 column slices and CQL3 wheres on composite keys equivalent?中显示的内容

【问题讨论】:

    标签: cassandra cql3


    【解决方案1】:

    我认为您将 Thrift 列与 CQL3 列混淆了。

    1. 使用SELECT 中的列名列表非常简单:

      选择所有列:

      SELECT * from movies
      

      只选择特定的列:

      SELECT effect, foo, movie from movies
      
    2. 您可以找到完整的 CQL3 规范 here

    3. 你也可以关注这个CQL tutorial

    【讨论】:

    • 也就是说,CQL3中没有“列切片”
    • 因此,如果我要理解这一点并根据我正在阅读的内容:CQL 是读取列族的新(和首选)方法。 Thrift 所描述的列族本质上只是 CQL 中的一个表,它有两列:一个键和一个值。这是正确的吗?
    • @Paul 不正确。请浏览此处答案中的链接,以更好地了解 Thrift 与 CQL stackoverflow.com/questions/17865703/…
    • 好吧,我终于有了!就像@AlexPopescu 之前所说的那样,我(用“捉鬼敢死队”的说法)“穿越溪流”这些链接帮了很多忙。
    猜你喜欢
    • 2011-12-26
    • 2012-06-17
    • 2017-06-27
    • 2016-04-14
    • 2014-03-23
    • 1970-01-01
    • 2018-02-21
    • 2014-01-03
    • 2015-01-10
    相关资源
    最近更新 更多