2015-08-06 3 views
0

У меня есть простой набор данных (DateTime, int, float), который растет до 15 тыс. Элементов в день, а в высоких точках дня у меня может быть до 5 дополнительных записей в секунду. Первоначально я использовал pickle, который, очевидно, плохая идея (сброс 15k предметов 5 раз в секунду слишком медленный). Теперь я начал смотреть на разные параметры хранения данных/протоколирования, и огромное количество вариантов немного перегрузило меня.Память данных датчика Python

Я вижу, что msgpack и ujson довольно быстры, но я считаю, что это оставит меня с той же проблемой; Я добавляю данные к набору очень часто, и программа регистрации данных не нуждается в знании предыдущих данных.

Мой вопрос: Я надеялся получить некоторые указатели на то, что может быть подходящий вариант, я читал о таких вещах, как Redis, MongoDB и NoSQL, которые кажутся довольно быстро из-за свойства в памяти. Или я overthinking эту проблему и могу ли я просто использовать традиционную базу данных, такую ​​как MySQL или SQLite с самого начала?

Вердикт: overthinking простая проблема, теперь все взволновано.

+0

Не применяйте каждую секунду (и). Удерживайте данные в dict и сохраняйте каждую минуту. ex = {"_id": "minsec", "0": {ваши данные без ключа}, "1": {ваши данные без ключа} ......} .......... – dsgdfg

ответ

1

Если нет требований к пересмотру опубликованных данных, то Cassandra может быть хорошим выбором, но это может быть немного тяжеловесом для малины Pi. Взгляните на SQLite, который должен легко справляться с вашими требованиями к хранению и иметь модуль драйвера (sqliite3) в составе стандартной библиотеки.

Звучит так, как будто вы накапливаете больший и больший соленый созревание с течением времени, которое с базой данных не нужно делать, и хранить значения даты и времени довольно просто.

Не пугайтесь необходимости изучать базу данных - это звучит сложно, но по существу это всего лишь способ хранения таблиц данных.

Смежные вопросы