【问题标题】:Cassandra Query Language not read the data inserted by AstyanaxCassandra 查询语言不读取 Astyanax 插入的数据
【发布时间】:2013-12-10 06:36:48
【问题描述】:

我已经使用 Astyanax 在 Cassandra 中插入数据,但是当我使用 CQL3 执行以下查询时,结果是十六进制

select * from employees1;

结果:

 key        | column1                | value
------------+------------------------+------------------
0x000000de |         0x646570746964 |       0x0000014d

后来我知道 Astyanax 也支持 CQL,然后我使用它并在 Cassandra 中插入记录,然后我运行上面的查询,它成功显示记录如下。

 empid | deptid | first_name | last_name
 -------+--------+------------+-----------
 222 |    333 |       Eric |   Cartman  

为什么 CQL3 不读取 Astyanax 插入的数据? apache cassandra 不提供标准的实现方式吗?背后的游戏是什么?

我是 Cassandra 的新手。

【问题讨论】:

    标签: java cassandra cql cql3 astyanax


    【解决方案1】:

    我有/有这个确切的问题。对我来说,问题是我的表是通过 cassandra-cli 和 bytesType 比较器创建为列族的。

    在 cqlsh 中,试试这个:

    describe table employees1;
    

    如果你看到这样的东西:

    CREATE TABLE "employees1" (
      key blob,
      column1 blob,
      value blob,
      PRIMARY KEY (key, column1)
    ) WITH COMPACT STORAGE AND
      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
      compaction={'class': 'SizeTieredCompactionStrategy'} AND
      compression={'sstable_compression': 'SnappyCompressor'};
    

    这意味着您的表是旧列族。为了以可读格式查询数据 (cqlsh),字段必须是 blob 以外的内容,例如 varchar 或 int。不幸的是,我认为 blob 和 varchar 是不兼容的类型,因此您可能必须重新创建表并重新加载。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-04
      • 2013-05-06
      • 2021-10-01
      • 2016-09-03
      • 2020-03-02
      相关资源
      最近更新 更多