Cassandra数据模型存储1.000.000张照片

时间:2012-04-03 14:34:22

标签: cassandra photos datamodel

对于经验丰富的Cassandra用户来说,这是一个问题。我想在卡桑德拉存储照片。数据结构非常简单:

UUID : photo_id;
String: filename;
String authorname;

如何在Cassandra中存储这些数据?使用photoId作为CF键或将所有照片存储为photoid为列名的列?我需要快速迭代,不需要快速访问f.e.作者姓名。

此致

汤姆

1 个答案:

答案 0 :(得分:1)

如果您计划始终按照photo_id查找照片,则应将其视为键值存储,将photo_id作为键,将图像作为列值。如果您通常需要与图像同时使用元数据,则元数据(文件名,authorname)可以存储在同一行的其他列中。

如果您的图片非常大,请考虑将它们分块为1mb到10mb,每片一列,这样您就不必一次取出它们。

如果您还需要偶尔通过authorname进行查找,请使用第二个CF作为索引,其中行键是authorname,列是photo_id。然后,您可以通过photo_id从第一个CF中获取实际图像。

目前尚不清楚“快速迭代”是什么意思,但如果你计划扫描整个1米图像数据集,你可以很容易地用我描述的第一个CF by using get_range_slices来做到这一点。

相关问题