6

はじめに

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 でエンコードされた文字列をネットワーク経由で送信するオーバーヘッドを削減するためです。

少し早いですがお礼を!

4

1 に答える 1