Python 如何将Cassandra模型类与集群类一起使用?

Python 如何将Cassandra模型类与集群类一起使用?,python,cassandra,datastax,Python,Cassandra,Datastax,我第一次使用Cassandra,但有在SQLAlchemy等库中设置ORM的经验。接下来,我使用cassandra.cqlengine.models.Model类作为基类设置了我的表,并使用sync_表进行设置,例如: from cassandra.cqlengine import columns from cassandra.cqlengine.models import Model from cassandra.cqlengine.management import sync_table

我第一次使用Cassandra,但有在SQLAlchemy等库中设置ORM的经验。接下来,我使用
cassandra.cqlengine.models.Model
类作为基类设置了我的表,并使用
sync_表进行设置,例如:

from cassandra.cqlengine import columns
from cassandra.cqlengine.models import Model
from cassandra.cqlengine.management import sync_table

class Message(Model):
    id = columns.Text(primary_key=True)
    message = columns.Text()

sync_table(Message)
但是我看到的大多数Python/Cassandra示例代码都使用
Cassandra.cluster.cluster
对象来定义它们的会话

使用
集群
似乎可以更好地管理会话,但会限制您使用原始文本查询。有没有一种很好的方法可以将
集群
对象与我定义的ORM一起使用

我想我可以做这样的事情:

import cfg

from cassandra.cqlengine import connection
from cassandra.cluster import Cluster

cluster = Cluster(cfg.cassandra_dbs)
session = cluster.connect(cfg.cassandra_keyspace)
connection.set_session(session)
因为我只担心一个db/keyspace/etc,如果我的模型使用它作为连接,那么在应用程序中全局设置它可能没问题。这是建议的方法,还是有更好的方法


谢谢

如果您只有一个集群和键空间,那么全局会话配置是最简单的方法

对于更复杂的用例,请使用driver 3.7.0中引入的注册连接功能:

这允许跨不同的键空间和会话使用单个模型