はじめに
Cassandra 1.2 列ファミリーに BLOB 列があり、テーブルは次のように定義されています。
CREATE TABLE objects (
id text,
obj blob,
PRIMARY KEY (id)
);
問題:
問題は、cql ライブラリを使用して Python から blob 列を挿入/更新する必要がある場合、次のように列の内容を base 16 でエンコードする必要があることです。
import cPickle
import cql
...
def save_object(connection, obj):
object['id'] = obj['id']
object['obj'] = cPickle.dumps(obj).encode("hex")
cql_statement = "INSERT INTO objects (id, obj) values (:id, :obj)"
cursor = connection.cursor()
cursor.execute(cql_statement, object)
質問:
オブジェクトの base 16 エンコーディング (文字列) を使用せずにこのクエリを実行する方法はありますか? この理由は、プレーン バイトの代わりに、ベース 16 でエンコードされた文字列をネットワーク経由で送信するオーバーヘッドを削減するためです。
少し早いですがお礼を!