Оптимальная стратегия хранения Riak

Я планирую использовать Riak для хранения некоторых данных датчиков, но датчики подключены к разным пользователям. Я планирую создать такую ​​структуру: Bucket = идентификатор пользователя, ключ = время, новый ключ каждую минуту (или, может быть, две минуты)

Когда я говорю новый ключ каждую минуту, показания не всегда непрерывны и не в реальном времени, но они загружаются позже. Они записываются в определенные периоды дня. Частота замера довольно высокая, 250 образцов в секунду. Если я сделаю новый ключ для каждого измерения, я получу взрыв ключей очень быстро, и я не думаю, что это пойдет на пользу для производительности. Кроме того, мне не нужно знать точное число в каждый данный момент, я буду использовать их более последовательно в течение периода (значения от минуты N до минуты М).

Поэтому я думаю о "группировании" результатов для каждой минуты и сохранении их в виде некоторого JSON.

Эта стратегия выглядит осуществимой?

Кроме того, я думаю об использовании LevelDB в качестве механизма хранения, просто чтобы быть в безопасности при использовании оперативной памяти.

1 ответ

Решение

Меньшее количество ключей кажется мне лучше, чем ключ для каждого события. Как бы вы использовали эти данные позже?

Если данные предназначены для дальнейшего анализа, leveldb и вторичные индексы позволяют вам выбирать данные за определенный период (если ваши ключи каким-то образом упорядочены, например, datetime) в задании mapreduce (с дополнительными усилиями это можно сделать в фоновом режиме). Также leveldb не хранит все ключи в памяти, это хорошо для постоянно растущего набора данных, если вы планируете хранить все данные навсегда.

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

Еще одна проблема - общий размер объекта, так как в документах riak лучше, чтобы размер одного объекта не превышал 10 МБ.

Другие вопросы по тегам