アビループ・サーカー
次の場所にあるすべてのドキュメントを読むことを強くお勧めします。
現在のオブジェクト マッパーのドキュメント
従来の CQLEngine ドキュメント
インストール:pip install cassandra-driver
そして、 CQLEngineの作成者であるrustyrazorblade によるこのサンプル プロジェクトを見てください。
サンプル プロジェクト - ミート ボット
CQLEngine は DataStax Cassandra ドライバーにマージされていることに注意してください。
公式の Python Cassandra ドライバー ドキュメント
あなたは次のようなことをしたいと思うでしょう:
CQLEngine <= 0.21.0:
from cqlengine.connection import setup
setup(['127.0.0.1'], 'keyspace_name', retry_connect=True)
それでもキースペースを作成する必要がある場合:
from cqlengine.management import create_keyspace
create_keyspace(
'keyspace_name',
replication_factor=1,
strategy_class='SimpleStrategy'
)
Cassandra データ モデルをセットアップする
同じ .py または models.py でこれを行うことができます。
import datetime
import uuid
from cqlengine import columns, Model
class YourModel(Model):
__key_space__ = 'keyspace_name' # Not Required
__table_name__ = 'columnfamily_name' # Not Required
some_int = columns.Integer(
primary_key=True,
partition_key=True
)
time = columns.TimeUUID(
primary_key=True,
clustering_order='DESC',
default=uuid.uuid1,
)
some_uuid = columns.UUID(primary_key=True, default=uuid.uuid4)
created = columns.DateTime(default=datetime.datetime.utcnow)
some_text = columns.Text(required=True)
def __str__(self):
return self.some_text
def to_dict(self):
data = {
'text': self.some_text,
'created': self.created,
'some_int': self.some_int,
}
return data
Cassandra ColumnFamilies を同期する
from cqlengine.management import sync_table
from .models import YourModel
sync_table(YourModel)
上記のすべてを考慮すると、多くの例で概説されているように、すべての接続と同期をまとめることができます。たとえば、これが私たちのプロジェクトの connection.py であるとします。
from cqlengine.connection import setup
from cqlengine.management import sync_table
from .models import YourTable
def cass_connect():
setup(['127.0.0.1'], 'keyspace_name', retry_connect=True)
sync_table(YourTable)
モデルとデータを実際に使用する
from __future__ import print_function
from .connection import cass_connect
from .models import YourTable
def add_data():
cass_connect()
YourTable.create(
some_int=5,
some_text='Test0'
)
YourTable.create(
some_int=6,
some_text='Test1'
)
YourTable.create(
some_int=5,
some_text='Test2'
)
def query_data():
cass_connect()
query = YourTable.objects.filter(some_int=5)
# This will output each YourTable entry where some_int = 5
for item in query:
print(item)
必要に応じて、さらに説明を求めてください。