gpt4 book ai didi

cassandra - 条件查询在 cql 3.0.0 中不起作用

转载 作者:行者123 更新时间:2023-12-02 22:58:47 27 4
gpt4 key购买 nike

我正在尝试在 cassandra CQL 中执行条件查询,但它给了我这样的错误

cqlsh:events> select * from standardevents where name=ActivityPg_view;

我正在执行上面的查询,它给了我下面的错误

错误请求:第 1:55 行输入“​​;”时没有可行的替代方案也许您打算使用 CQL 2?启动 cqlsh 时尝试使用 -2 选项。

cqlsh:events> 从标准事件中选择 *,其中 name='ActivityPg_view';

我正在执行上面的查询,它给了我下面的错误

错误请求:by-columns 子句中不存在索引列等于运算符

当我尝试使用 CQL 2 执行时

cqlsh:events> select * from standardevents where name=ActivityPg_view;

它给了我以下错误,

错误请求:带有“equals”opera 的 by-columns 子句中不存在索引列托尔

cqlsh:events> 从标准事件中选择 *,其中 name='ActivityPg_view';

它给了我以下错误,

错误请求:带有“equals”opera 的 by-columns 子句中不存在索引列托尔也许您打算使用 CQL 3?启动 cqlsh 时尝试使用 -3 选项。

那么有人可以提出这个问题以及如何解决这个问题并执行条件查询吗?

cqlsh> DESCRIBE COLUMNFAMILY events.standardevents;

CREATE TABLE standardevents (
uuid timeuuid PRIMARY KEY,
data text,
name text,
time text,
tracker text,
type text,
userid text
) WITH bloom_filter_fp_chance=0.010000
AND caching='KEYS_ONLY'
AND comment=''
AND dclocal_read_repair_chance=0.000000
AND gc_grace_seconds=864000
AND read_repair_chance=0.100000
AND replicate_on_write='true'
AND populate_io_cache_on_flush='false'
AND compaction={'class': 'SizeTieredCompactionStrategy'}
AND compression={'sstable_compression': 'SnappyCompressor'};

最佳答案

您的表 (CF) 没有名为 courseid 的字段(因此出现错误“Where 子句中未定义名称 courseid”)。您无法查询不存在的内容。

你期待那个领域吗? (如果有帮助的话,您对该表的 PK 称为“uuid”)您是否正在查询正确的表?没有太多建议。

编辑:更新后

您的 CQL3 尝试缺少名称周围的引号,但除此之外...在 Cassandra 中,您无法通过非键列随机查询。 Cassandra 是一个分区行存储,它并不是真正设计用于以您尝试的方式执行查询。

您可以添加二级索引来解决此问题,但您应该意识到它与传统 SQL 不同。拥有第二索引将需要命中集群中的所有节点来执行查询。如果您的数据具有高基数,这也不理想。

在 Cassandra 中,一般前提是存储成本低廉,并且您应该基于查询而不是数据来建立模型。使一切非规范化。例如,如果您需要按名称提取事件,那么您应该创建一个按名称作为键的表,并包含您需要的所有事件数据。这样读取它们(本质上)是 O(1) 操作。

关于cassandra - 条件查询在 cql 3.0.0 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20946259/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com