我正在尝试将cqlengine CQL 3 object mapper与我在CherryPy上运行的Web应用程序挂钩。虽然documentation对查询非常清楚,但我仍然不知道如何在我的cassandra数据库中对现有表(和现有键空间)进行查询。例如,我已经有这个表包含标题,评级,年份字段的电影。我想制作CQL查询
SELECT * FROM Movies
在与
建立连接后如何继续查询from cqlengine import connection
connection.setup(['127.0.0.1:9160'])
KEYSPACE
被称为“TEST1”。
答案 0 :(得分:1)
实现这一目标最直接的方法是创建镜像现有cql表模式的模型类,然后对它们运行查询
答案 1 :(得分:1)
cqlengine主要是Cassandra的Object Mapper。它不会询问现有数据库以便为现有表创建对象。相反,它通常用于相反的方向(即从python类创建表)。如果要使用cqlengine查询现有表,则需要创建与现有表完全对应的python模型。
例如,如果您当前的Movies表有3列,id,title和release_date,则需要创建具有这三列的cqlengine模型。此外,您需要确保类上的 table_name 属性与数据库中的表名完全相同。
from cqlengine import columns, Model
class Movie(Model):
__table_name__ = "movies"
id = columns.UUID(primary_key=True)
title = columns.Text()
release_date = columns.Date()
关键是要确保模型完全镜像现有表。如果差异很小,您可以使用sync_table(MyModel)
更新表格以匹配您的模型。