Реляционная база данных для данных временных рядов

В настоящее время я пытаюсь создать базу данных для хранения данных производственных тестов. Каждый блок проходит одинаковую последовательность тестов (12 тестов), данные о напряжении, токе и температуре собираются из многих мест с различной частотой дискретизации во время каждого запуска теста. Цель состоит в том, чтобы использовать данные для анализа тенденций по типу теста и параметру, чтобы определить, находится ли объект «в семье» или нет.

Моя первая мысль - связать таблицу «Единицы» с таблицей «Тесты», связанной с таблицей «Параметры», которая будет связана с необработанными данными для этого конкретного прогона. Будет ли реляционная база данных лучшим вариантом? о чем-то подобном или мне лучше использовать что-то вроде MongoDB для этого приложения?


person user3282128    schedule 07.02.2014    source источник
comment
Mongo на самом деле не база данных. Если документы верхнего уровня независимы друг от друга, но содержат множество высокоструктурированных данных, которые коррелируют внутри документа, но не за его пределами, то ответом может быть Mongo. Для всего остального, где вы хотите моделировать неиерархические отношения, придерживайтесь реальной реляционной базы данных. Для лучшего ответа приведите несколько примеров того, что вы хотите сохранить.   -  person Jim Garrison    schedule 07.02.2014
comment
@JimGarrison База данных - это организованный набор данных. (en.wikipedia.org/wiki/Database) Согласно этому определению, Монго, безусловно, база данных. В ответ на вопрос применим классический ответ: это зависит от обстоятельств. Сложно сказать, потому что мы не знаем, что вы будете делать со своими данными. Для подобных научных данных я мог бы подумать о том, чтобы поместить все в одну таблицу с некоторыми хорошими индексами, если бы я не думал, что дополнительные таблицы меня очень много купят. Подумайте, какие ограничения целостности вам нужно применить к данным и какие запросы вы будете выполнять.   -  person jpmc26    schedule 07.02.2014
comment
Возможный дубликат хранения данных временных рядов, реляционных или других?   -  person philipxy    schedule 07.07.2019


Ответы (1)


Традиционная СУБД по-прежнему будет вашим выбором по умолчанию. Система NoSQL, такая как MongoDB, обычно используется только в том случае, если реляционная база данных не может удовлетворить ваши требования.

Два типичных случая, когда реляционная база данных может не работать:

  • Если данные не структурированы, структура неизвестна или не может быть гарантирована. Хранилище документов или хранилище значений ключа по существу позволяет вам передавать в него произвольные данные, и оно будет их хранить.

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

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

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

В этом случае вы, вероятно, захотите воспользоваться преимуществами встроенных механизмов поддержания целостности (типизированные столбцы, проверочные ограничения и т. Д.), Большого объема документации и т. Д., Которые предлагает традиционная реляционная система.

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

person Lindsay Winkler    schedule 07.02.2014
comment
+1 для традиционной СУБД по-прежнему будет вашим выбором по умолчанию. - person jpmc26; 07.02.2014