PHPCassa - невозможно вставить при использовании метки времени uuid в качестве ключа - PullRequest
1 голос
/ 18 декабря 2011

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

Я получаю следующую ошибку с 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'));

Я создал тестовую таблицу, используя cassandra-cli, с помощью следующей команды ...

CREATE COLUMN FAMILY users WITH comparator = TimeUUIDType;

1 Ответ

1 голос
/ 18 декабря 2011

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

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

...