在Cassandra表中将pdf文件存储为Blob?

时间:2018-01-16 15:47:31

标签: cassandra blob cassandra-3.0

我有一项任务是为我的时间序列cassandra db创建一个元数据表。此元数据表希望存储超过500个pdf文件。每个pdf文件包含5-10 MB数据。

我曾想过将它们存储为Blob。卡桑德拉能够做到吗?

2 个答案:

答案 0 :(得分:1)

Cassandra并不适合这种blob,至少datastax建议将它们保持在小于1MB以获得最佳性能。

但是 - 试试自己并做一些测试。当分区变大并且存在更新时会出现问题,因此协调员在加入分区时需要做很多工作。

一个简单的方法是,将blob作为uuid键值对分开存储在自己的表中,并仅将uuid存储在您的数据中。更新blob时 - 使用新的uuid插入新的blob并更新您的记录。有了这个技巧,你就永远不会有不同的(也许是大的)blob版本,并且不会受到性能的影响。我想我读到沃尔玛成功地使用了部分大约10MB以及更小的图像。

试试吧 - 如果你已经拥有Cassandra了。

如果没有,你可能会看看Ceph或类似的东西 - 但这需要它自己的部署。

答案 1 :(得分:0)

您可以序列化文件并将其存储为blob。在读取文件时,成本是反序列化。有许多高效的序列化/反序列化库可以有效地完成这项工作。另一种方法是做@jasim waheed所建议的。但是,这将导致网络io。因此,您可以决定在哪里支付费用。