【问题标题】:Cassandra column name trailing with blank charactersCassandra 列名尾随空白字符
【发布时间】: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

标签: cassandra hector


【解决方案1】:

此问题已通过在创建列族时使用“WITH COMPACT STORAGE”得到修复。 讨论是here

我使用 Allan Elder 指出的 Cassandra Java 驱动程序而不是 Hector,我的列名尾随空格问题已经解决。
如何使用 Cassandra Java 驱动程序的文档是 here,而 jar 将由 this 项目找到。
谢谢

【讨论】:

    猜你喜欢
    • 2018-04-15
    • 1970-01-01
    • 2023-02-14
    • 2021-03-31
    • 2021-08-25
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 2012-04-16
    相关资源
    最近更新 更多