gpt4 book ai didi

cassandra 1.1.x 通过组合键获取

转载 作者:行者123 更新时间:2023-12-02 23:13:28 25 4
gpt4 key购买 nike

是否可以使用 Hector 或 Astyanax 通过组合键获取行(在多列中,而不是序列化到一列的行)?

在 cqlsh 中,我创建了简单的列族:

CREATE COLUMNFAMILY kkvv (x int, y int, val1 varchar, val2 varchar, PRIMARY KEY (x,y));

根据Cassandra Developer Center行由 x 作为键存储,其余存储在列中。

我无法弄清楚如何获取给定 x 和 y 的列切片。

在该 cql 中执行 cql

cqlQuery.setQuery("select * from kkvv")

给我行:

Row(2,ColumnSlice([HColumn(x=2)]))

Row(10,ColumnSlice([HColumn(x=10)]))

控制台 cqlsh 给出:

x | y | val1 | val2

----+-----+-------+-----------

2 | 1 | v1_1 | v2_1

10 | 27 | v1_4b | v2_4b

10 | 91 | v1_4a | v2_4a

有人设法在 Java 的 cassandra 客户端中做到这一点吗?我可以使用 thrift 来实现这一点,还是它只是 cql 的功能?

最佳答案

这里有两种稍有不同的语法:CQL 2 和 CQL 3。默认情况下,Cassandra 连接需要 CQL 2。但是,CQL 2 不理解您在此处创建的复合键列族.

因此,您显然正确地将 CQL 3 与 cqlsh 一起使用,因为它以合理的方式显示您的列,但您没有将其与 Hector 一起使用。我不确定 Hector 或 Astyanax 是否支持这一点。最新版本的 cassandra-jdbc 驱动程序可以,因此,如果 Hector 和/或 Astyanax 使用该驱动程序,那么它们也应该可以工作。

Thrift 中没有(也可能不会)任何支持将复合比较器列族视为具有多组件主键的表,就像 CQL 3 那样。如果您需要,请使用 CQL 3。

关于cassandra 1.1.x 通过组合键获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11100088/

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