Реляционная база данных для данных временных рядов
В настоящее время я пытаюсь создать базу данных для размещения данных производственных испытаний. Каждое устройство проходит одинаковую последовательность испытаний (12 испытаний), данные о напряжении, токе и температуре собираются во многих местах с различной частотой выборки во время каждого испытательного цикла. Цель состоит в том, чтобы использовать данные для анализа тенденций по типу теста и параметру, чтобы определить, находится ли единица в "семействе" или нет.
Сначала я подумал о том, чтобы иметь таблицу "Единицы измерения", связанную с таблицей "Тесты", связанной с таблицей "Параметры", которая будет связана с необработанными данными для этого конкретного прогона. Будет ли лучше использовать реляционную базу данных? о чем-то вроде этого или мне лучше использовать что-то вроде MongoDB для этого приложения?
1 ответ
Традиционная СУБД все равно будет вашим выбором по умолчанию. Система NoSQL, такая как MongoDB, - это то, что вы обычно используете, только если реляционная база данных не может удовлетворить ваши требования.
Два типичных случая, когда реляционная база данных может не работать:
Где данные неструктурированы, или структура не известна или не может быть гарантирована. Хранилище документов или хранилище значений ключей, по сути, позволяет вам выбрасывать в него произвольные данные, и оно будет их хранить.
Где чрезвычайно высокий уровень параллелизма и / или высокая смесь требований чтения и записи. В этом случае традиционная реляционная система может не справиться, так как она требует синхронизации данных и поддержания целостности.
Также возможно, что объем данных просто слишком велик, но это подразумевает много данных.
В вашем случае это звучит так, как будто данные очень структурированы и поступают с разумной скоростью (вы не будете получать точки данных быстрее, чем физические единицы могут быть протестированы). Кроме того, не похоже, что общая нагрузка на систему в целом будет параллельной (то есть многие, многие пользователи одновременно будут выполнять запросы).
В этом случае вы, вероятно, захотите воспользоваться встроенными механизмами поддержания целостности (типизированные столбцы, проверочные ограничения и т. Д.), Большим количеством документации и т. Д., Которые предлагает традиционная реляционная система.
Как вы упоминаете в своем вопросе, определенно будет возможно разработать работоспособную схему для ваших данных.