Я использую Cassandra в первый раз, но имею опыт создания ORMS в таких библиотеках, как SQLAlchemy. После this page as an example Я настроил свои таблицы, используя cassandra.cqlengine.models.Model
класс в качестве базового класса и использовать sync_table
, чтобы установить его, например:Как использовать классы модели Cassandra класса Cluster?
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
объект определить их сеанс, as described here.
Похоже, использование 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)
Поскольку у меня есть только один дб/пространство ключей/и т.д. Я беспокоюсь, может быть, это нормально, если он установлен во всем мире через приложение, если мой модели будут использовать это как соединение. Является ли это предлагаемым методом или есть лучший способ сделать это?
Спасибо!