gpt4 book ai didi

Cassandra:大文件的 blob 创建问题

转载 作者:行者123 更新时间:2023-12-04 20:34:21 27 4
gpt4 key购买 nike

我们正在尝试将文件加载到 Cassandra 中的 blob 列中。当我们加载 1-2 MB 的文件时,它运行良好。加载大文件时,比如大约 50 MB,出现以下错误:

在一致性 LOCAL_QUORUM 写入查询期间 Cassandra 失败(需要 1 个响应,但只有 0 个副本响应,1 个失败)

它是一个单节点开发数据库。任何提示或支持将不胜感激。

最佳答案

50mb 对于一个单元格来说是相当大的。虽然有点过时但它仍然准确:http://cassandra.apache.org/doc/4.0/faq/#can-large-blob

Cassandra 中没有流出单元格的机制,因此单元格内容需要在内存中作为单个响应序列化。您可能在某处遇到了限制或错误,从而引发异常并导致查询失败(检查 cassandras system.log,可能是那里的异常,可以更好地描述正在发生的事情)。

如果您有 CQL 集合或记录的批次,则还有其他下限。
http://docs.datastax.com/en/cql/3.3/cql/cql_reference/refLimits.html

您可以尝试将 blob 分成几部分。我实际上建议使用 64kb,并且在客户端,遍历它们并生成一个流(以防止将它完全加载到您的内存中)。

CREATE TABLE exampleblob (
blobid text,
chunkid int,
data blob,
PRIMARY KEY (blobid, chunkid));

那么就 SELECT * FROM exampleblob WHERE blobid = 'myblob';并迭代结果。插入变得更加复杂,因为您必须有逻辑来拆分文件,但这也可以以流式方式完成,并且在您的应用程序方面具有内存效率。

另一种选择是将 blob 上传到 S3 或某个分布式文件存储,使用文件的哈希作为存储桶/文件名。在 Cassandra 中,只需将文件名存储为对它的引用。

关于Cassandra:大文件的 blob 创建问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38722917/

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