2013-11-25 4 views
1

У меня есть вставки данных в Кассандре с помощью Astyanax, но когда я выполнить следующий запрос, используя CQL3 затем результат в шестнадцатеричномCassandra Query Language не читать данные, вставленные Astyanax

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 не обеспечивает стандартный способ реализации? что за игра?

Я новичок в Кассандре.

ответ

2

У меня была/была эта точная проблема. Для меня проблема заключалась в том, что мои таблицы были созданы в виде семейств столбцов через 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 являются несовместимыми типами, поэтому вам, возможно, придется заново создать таблицу и перезагрузить.

Смежные вопросы