Я искал советы о том, как хранить данные в базе данных для целей поиска исторических данных. Если я смогу получить состояние объекта в определенный момент времени, то как лучше всего его сохранить, чтобы я мог исторически использовать эти данные, предсказывая, какое состояние, вероятно, будет основываться на том, как это было в прошлом?Как хранить данные исторического сервера?
Для более конкретного примера я могу получить состояние вверх/вниз сервера и текущую нагрузку этого сервера. Я могу получить это по периодическому графику. Я хотел бы сохранить эти данные, чтобы я мог легко запросить состояние вверх/вниз или загрузку в течение определенного периода времени или получить всю историю этого сервера. У меня нет большого опыта, если таковые имеются, в дизайне базы данных.
Так звучит, что у меня было бы 2 таблицы фактов (вверх или вниз и загрузка) для каждого сервера, правильно? – s73v3r
Теперь, когда дело доходит до хранения данных, следует ли добавить запись, когда что-то изменится, или для каждой точки данных, которую я получаю? Например, скажем, я получаю данные своего сервера каждые 15 минут. В 1 час сервер переходит с высокой нагрузки на среднюю нагрузку и остается таким образом за час до перехода в другое состояние. Итак, у меня есть 4 точки данных, которые все говорят, что средняя загрузка. Должен ли я хранить это как 4 записи, все со временем измерения и средней нагрузкой, или я должен иметь одну запись со средней нагрузкой, время начала 13:00 и время окончания 14:00? – s73v3r
Шаг 1. Получите книгу Кимбалла. Храните данные через определенные промежутки времени, поэтому вам не нужно интерполировать. Соберите много данных. Используйте плоские файлы и загружайте RDBMS в последнюю очередь - и только когда у вас есть подмножество, которое вы хотите запросить с SQL. Большая часть обработки может быть выполнена путем организации файлов CSV, чтобы они были легкими для загрузки. –