gpt4 book ai didi

python - Cassandra 1.2 使用 Python 和 cql 库插入/更新 blob 列类型

转载 作者:太空狗 更新时间:2023-10-30 00:17:46 33 4
gpt4 key购买 nike

简介

我在 Cassandra 1.2 列族上有一个 blob 列,该表定义如下:

CREATE TABLE objects (
id text,
obj blob,
PRIMARY KEY (id)
);

问题:

问题是当我需要使用 cql 库从 Python 插入/更新 blob 列时,我需要像这样对列的内容进行 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 编码(字符串)的情况下执行此查询?这样做的原因是为了减少通过线路发送 base 16 编码字符串而不是普通字节的开销。

提前致谢!

最佳答案

Base64 还是十六进制?

如果您的问题不是编码成 base64,是的,您可以,但是您必须以 HEX 格式将数据提供到 CQL。

如果您的问题不是转换为十六进制,不,这是不可能的。

CQL documentation 中定义的 blob

A blob constant is an hexadecimal number defined by 0xX+ where hex is an hexadecimal character, e.g. [0-9a-fA-F]. For example, 0xcafe.

所以这显然意味着您需要以 HEX 格式发送数据。

关于python - Cassandra 1.2 使用 Python 和 cql 库插入/更新 blob 列类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16780251/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com