Python 如何将Cassandra模型类与集群类一起使用?
我第一次使用Cassandra,但有在SQLAlchemy等库中设置ORM的经验。接下来,我使用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.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中引入的注册连接功能:
这允许跨不同的键空间和会话使用单个模型