Проблема в том, что в вашей модели данных вы используете время в качестве ключа строки. Хотя это возможно, вы не получите значимого порядка, если не будете использовать ByteOrderedPartitioner.
По этой причине большинство людей вставляют упорядоченные по времени данные, используя время в качестве имени столбца , а не ключа строки. В этой модели ваш оператор вставки будет выглядеть так:
q.insert(someKey, {datetime.datetime.utcnow(): 'somevalue'})
где someKey
- это ключ, который относится ко всему вводимому вами временному ряду (например, к имени пользователя). (Обратите внимание, что вам не нужно преобразовывать время в UUID, pycassa сделает это за вас.) Чтобы сохранить нечто большее, чем одно значение, используйте суперколонку или составной ключ.
Если вы действительно хотите сохранить время в ключах строк, вам нужно указать key_validation_class
, а не comparator_type
. comparator_type
устанавливает тип имен столбцов, тогда как key_validation_class
устанавливает тип ключей строк.
sys.create_column_family("keyspace", "records", key_validation_class=TIME_UUID_TYPE)
Помните, что строки не будут отсортированы, если вы не используете ByteOrderedPartitioner.