用cqlengine查询

时间:2014-02-28 14:51:07

标签: cassandra cql cql3 object-object-mapping cqlengine

我正在尝试将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”。

2 个答案:

答案 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)更新表格以匹配您的模型。