Каково лучшее решение с открытым исходным кодом для того, чтобы хранить данные временного ряда? [закрытый]

В зависимости от ситуации можно свериться isinstance, какой объект Вы имеете и затем используете соответствующие атрибуты. С введением абстрактные базовые классы в Python 2.6/3.0 этот подход также стал намного более мощным (в основном, ABC допускают более сложный способ утиного ввода).

Одна ситуация была, это полезно, был бы то, если два различных объекта имеют атрибут с тем же именем, но с другим значением. Используя только hasattr мог бы тогда привести к странным ошибкам.

Одним хорошим примером является различие между итераторами и iterables (см. этот вопрос). Эти __iter__ методы в итераторе и повторяемом имеют то же имя, но семантически очень отличаются! Так hasattr бесполезно, но isinstance вместе с ABC предоставляет чистое решение.

Однако я соглашаюсь, что в большинстве ситуаций hasattr подход (описанный в других ответах) является наиболее подходящим решением.

17
задан lorg 26 August 2009 в 13:47
поделиться

4 ответа

RRDTool by Tobi Oetiker, definitely! It's open-source, it's been designed for exactly such use cases.

EDIT:

To provide a few highlights: RRDTool stores time-series data in a round-robin data base. It keeps raw data for a given period of time, then condenses it in a configurable way so you have fine-grained data say for a month, averaged data over a week for the last 6 months, and averaged data over a month for the last 2 years. As a side effect you data base remains the same size all of the time (so no sweating you disk may run full). This was the storage side. On the retrieval side RRDTool offers data queries that are immediately turned into graphs (e.g. png) that you can readily include in documents and web pages. It's a rock solid, proven solution that is a much generalized form over its predecessor, MRTG (some might have heard of this). And once you got into it, you will find yourself re-using it over and over again.

For a quick overview and who uses RRDTool, see also here. If you want to see which kinds of graphics you can produce, make sure you have a look at the gallery.

8
ответ дан 30 November 2019 в 13:40
поделиться

HDF5 , доступ к которому можно получить через h5py или PyTables , разработан для работы с очень большими наборами данных. Оба интерфейса работают хорошо. Например, и h5py, и PyTables имеют автоматическое сжатие и поддерживают Numpy.

11
ответ дан 30 November 2019 в 13:40
поделиться

plain text files? It's not clear what your 10k data points per 15 minutes translates to in terms of bytes, but in any way text files are easier to store/archive/transfer/manipulate and you can inspect the directly, just by looking at. fairly easy to work with Python, too.

1
ответ дан 30 November 2019 в 13:40
поделиться

Это довольно стандартная штука для хранилищ данных.

Множество «фактов», организованных по нескольким измерениям, одно из которых - время. Большое количество агрегатов.

Во многих случаях простые плоские файлы, которые вы обрабатываете с помощью простых алгоритмов агрегирования, основанных на defaultdict , будут творить чудеса - быстро и просто.

Посмотрите на Эффективное хранение 7.300 .000.000 строк

Выбор базы данных для большого объема данных?

1
ответ дан 30 November 2019 в 13:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: