2011-12-18 4 views
1

Я пытаюсь хранить данные в кассандре, при этом она упорядочивается по времени. Возникли проблемы с использованием TimeUUIDType в качестве ключа.PHPCassa - Невозможно вставить при использовании отметки времени uuid в качестве ключа

Я получаю следующее сообщение об ошибке с phpcassa ...

Fatal error: Uncaught exception 'cassandra_InvalidRequestException' 
with message 'TimeUUID should be 16 or 0 bytes (6)' 

Это происходит при вызове метода вставки ...

$pool = new ConnectionPool("Keyspace1", array("localhost:9160")); 
$column_family = new ColumnFamily($pool, 'users'); 
$column_family->insert(CassandraUtil::uuid1(), array('name' => 'value')); 

Я создал тестовую таблицу с помощью Кассандры Cli со следующим команда ...

CREATE COLUMN FAMILY users WITH comparator = TimeUUIDType; 

ответ

1

comparator относится к именам столбцов, а не грести ключи. Если вы хотите, чтобы клавиши строк были TimeUUID, вы должны установить key_validation_class.

Вы получаете это исключение, потому что Cassandra ожидает TimeUUID для имени столбца, но вы передаете нормальную строку.