2017-01-27 10 views
0

私はCassandraをはじめて使用していますが、SQLAlchemyのようなライブラリでORMSを設定した経験があります。私は基本クラスとしてcassandra.cqlengine.models.Modelクラスを使用して、私のテーブルを設定し、それを設定するsync_tableを使用して、例えばましたthis page as an example次のとおりです。Cassandra Modelクラスを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.cluster.Clusterオブジェクトを使用していますセッションを定義します。as described here

Clusterを使用するとセッションの管理が改善されますが、生のテキストクエリを使用するように制限されているようです。私が定義したORMでClusterオブジェクトを使用する良い方法はありますか?

私はこのような何かを行うことができると思う:

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) 

私は1デシベル/鍵空間の/ etcを持っているので、私は心配だ、私の場合それはアプリ全体でグローバルに設定されます場合は、多分、それは大丈夫ですモデルはこれを接続とし​​て使用します。これは推奨される方法ですか、これを行うにはより良い方法がありますか?

ありがとうございます!

答えて

1

クラスタとキースペースが1つのみの場合、グローバルセッション構成は最も簡単な方法です。 http://www.datastax.com/dev/blog/python-driver-3-7-0-released https://datastax.github.io/python-driver/cqlengine/connections.html

これは、異なるkeyspacesとセッションにわたって単一のモデルを使用することができます:

より複雑なユースケースでは、ドライバー3.7.0で導入され登録されている接続機能を使用します。

関連する問題