我有cassandra
如下模型。
from uuid import uuid4
from uuid import uuid1
from cassandra.cqlengine import columns, connection
from cassandra.cqlengine.models import Model
from cassandra.cqlengine.management import sync_table
class BaseModel(Model):
__abstract__ = True
id = columns.UUID(primary_key=True, default=uuid4)
created_timestamp = columns.TimeUUID(primary_key=True,
clustering_order='DESC',
default=uuid1)
deleted = columns.Boolean(required=True, default=False)
class OtherModel(BaseModel):
__table_name__ = 'other_table'
name = columns.Text(required=True, default='')
if __name__ == '__main__':
connection.setup(hosts=['localhost'],
default_keyspace='test')
sync_table(OtherModel)
OtherModel.create(id='d43ca2c3-b670-4efc-afd7-b46ada88c3fc', name='test')
当我创建记录时,它会设置created_timestamp
我的系统或我执行此代码的位置。
我的系统和cassandra
服务器有不同的时间戳。
如果我在系统时间所在的位置执行此操作,2017-01-13 10:20:30
那么它将时间戳设置为相同。如果我再次从另一个系统执行相同的timestamp
操作2017-01-13 10:20:20
,那么它设置相同。
当我运行查询时
select * from test.other_table where id=d43ca2c3-b670-4efc-afd7-b46ada88c3fc limit 1;
它应该返回latest
最后插入的(最后一个)记录,但由于系统时间戳与我插入记录的位置不同,它会给出最先插入的第一条记录。