Я пытаюсь найти хороший способ хранения данных временных рядов. Мой вариант использования выглядит следующим образом:
Приблизительно 100 000 наборов данных в год. Каждый набор данных содержит около 600 строк и 40 или более столбцов. (то есть: разные столбцы для набора данных). Наборы данных загружаются в полном блоке (то есть: все 600 строк в момент)
У меня есть доступ к следующему:
- Рубин на рельсах
- БД SQL Server
Данные будут использоваться двумя способами:
1) Часто (то есть: ~ 500 раз в день) извлекает ~ 15 наборов данных, связанных с одним конкретным элементом, а затем отображает некоторые диаграммы и графики данных. Это будет в приложении ruby-on-rails.
2) Изредка (ежемесячно?) Собирать все наборы данных определенного типа в нечто вроде блокнота Юпитера для анализа.
Я вижу 3 разных способа хранения этих данных:
1) Хранить данные в виде плоского файла с помощью ActiveStorage
2) Сохранить данные в виде json или текста в столбце varchar (max)
3) Сохраните данные в виде отдельных строк в очень большой полиморфной таблице с индексом для извлечения данных, принадлежащих конкретному набору данных.
Для моего конкретного случая использования, какой из 3 приведенных выше методов приведет к наименьшей загрузке сервера? Серверы приложений и баз данных находятся на другом оборудовании.