【发布时间】:2014-02-01 02:10:18
【问题描述】:
我刚刚开始使用 Cassandra,通过执行以下查询,使用 Cassandra 下载页面上Getting started 上给出的命令创建了一个简单的 ColumnFamily 和一些数据。
CREATE TABLE users (
user_id int PRIMARY KEY,
fname text,
lname text
);
INSERT INTO users (user_id, fname, lname)
VALUES (1745, 'john', 'smith');
INSERT INTO users (user_id, fname, lname)
VALUES (1744, 'john', 'doe');
INSERT INTO users (user_id, fname, lname)
VALUES (1746, 'john', 'smith');
我用于获取数据的 Hector 代码:
RangeSlicesQuery<String, String, String> rangeSlicesQuery
= HFactory.createRangeSlicesQuery(keyspace, STR, STR, STR);
rangeSlicesQuery.setColumnFamily(columnFamily)
.setColumnNames(" fname ", " lname ")
.setKeys("6", "5")
.setRowCount(row_count);
QueryResult<OrderedRows<String, String, String>> result = rangeSlicesQuery.execute();
但是当我在列名中使用来自 Cassandra 的 Hector API 获取数据时,它包含空格,例如列名 fname 将是:'fname'。
对于来自 Java Hector API 的查询,我需要使用带有空格的相同列名来获取或保存数据。
任何人都有任何想法,我做错了什么,或者我该怎么做才能删除那些尾随空格。
谢谢
【问题讨论】:
-
你能发布你用于 Hector 的序列化/反序列化逻辑吗?
-
更新了我的 Hector 查询
-
仅供参考:您可能想看看 Cassandra Java 驱动程序,因为它允许您通过本机协议而不是 Thrift 工作。 github.com/datastax/java-driver