Модель данных Cassandra для хранения 1 000 000 фотографий

Это вопрос к опытным пользователям Cassandra. Я хотел бы хранить фотографии в Cassandra. Структура данных очень проста:

UUID : photo_id;
String: filename;
String authorname;

Как сохранить эти данные в Cassandra? Использовать photoId в качестве ключа CF или хранить все фотографии в виде столбцов, где photoid — это имя столбца? Мне нужна быстрая итерация и не нужен быстрый доступ, например. имена авторов.

С уважением

Том


person tomekkup    schedule 03.04.2012    source источник


Ответы (1)


Если вы планируете всегда искать фотографии по photo_id, вы должны рассматривать его как хранилище ключевых значений с photo_id в качестве ключа и изображения в качестве значения столбца. Метаданные (имя файла, имя автора) можно хранить в дополнительных столбцах в той же строке, если они обычно нужны вам одновременно с изображением.

Если ваши изображения очень большие, подумайте о том, чтобы разбить их на фрагменты размером от 1 МБ до 10 МБ, по одному столбцу на фрагмент, чтобы вам не приходилось извлекать их все сразу.

Если вам также необходимо время от времени выполнять поиск по имени автора, используйте второй CF в качестве индекса, где ключом строки является имя автора, а столбцами являются идентификаторы photo_id. Затем вы можете получить фактические изображения из первого CF по photo_id.

Непонятно, что вы подразумеваете под «быстрой итерацией», но если вы планируете сканировать весь набор данных изображения размером 1 м, вы можете легко сделать это с помощью первого описанного мною CF с помощью get_range_slices.

person Tyler Hobbs    schedule 05.04.2012
comment
Большое спасибо Тайлер!! Ценить :) - person tomekkup; 07.04.2012
comment
@tomekkup всегда пожалуйста! Не забывайте, что в StackOverflow вы можете принимать ответы, чтобы другие могли видеть, что на вопрос дан ответ. - person Tyler Hobbs; 09.04.2012