Каков наилучший способ хранить временные ряды в MySQL? - PullRequest
3 голосов
/ 27 сентября 2010

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

Ответы [ 4 ]

2 голосов
/ 27 сентября 2010

Вы должны хранить ваши значения как независимо от их типа (int, boolean, char), а ваши значения - как дату или int, содержащие метку времени UNIX, в зависимости от того, что лучше подходит вашему приложению.

1 голос
/ 27 сентября 2010

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

0 голосов
/ 22 июля 2015

В зависимости от вашего приложения, использование пространственных расширений данных MySQL может быть вариантом. Затем вы можете использовать пространственную индексацию для быстрого запроса данных. Для представления временного ряда класс LineString может быть наиболее подходящим выбором. Он представляет собой последовательность кортежей, которые вы можете использовать для хранения времени и значения. Здесь говорит, что «На карте мира объекты LineString могут представлять реки». Создать строку строки легко:

-- if you see a blob, use Convert( AsText(...) using 'utf8')
SELECT AsText(GeomFromText('LineString(1 1, 2 2, 3.5 3.9)'));

Некоторые ссылки для начала работы:

https://dev.mysql.com/doc/refman/5.1/en/spatial-extensions.html https://dev.mysql.com/doc/refman/5.1/en/populating-spatial-columns.html

0 голосов
/ 28 июня 2012

Как сказали и Том, и Эон, вы должны хранить данные в их собственном формате в MySQL, если вы хотите что-то делать с этими данными (-> обрабатывать данные с помощью SQL).

Если, с другой стороны, вы не хотите работать с этими данными, а просто сохранить / извлечь их, тогда вы используете MySQL просто как контейнер больших двоичных объектов, где каждый большой двоичный объект представляет собой беспорядок / группу многократного времени / точки данных, и это не может быть лучшим инструментом для работы: для этого предназначены файлы.

Вы можете исследовать гибридный подход, при котором вы, возможно, храните данные неструктурированными, но вы храните временные метки в виде дискретных значений. Другими словами, хранилище ключей / значений с вашими временными метками в качестве ключей. Это должно открыть возможность работать с NoSQL решениями, и, возможно, вы обнаружите, что они лучше подходят (например, подумайте о запуске map / сокращение заданий непосредственно на БД в Riak кластер)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...