Хранить большое количество точек данных? - PullRequest
3 голосов
/ 01 ноября 2008

Каков наилучший способ хранения большого количества точек данных?

Например, значения температуры, которые измеряются каждую минуту во многих местах?

Базы данных SQL с одной строкой на точки данных кажутся не очень эффективными.

Ответы [ 3 ]

3 голосов
/ 01 ноября 2008

Я хотел бы знать, почему вы считаете это "неэффективным". Возможно, вам нужно объяснить свою модель данных и схему, чтобы дать лучший контекст сценария.

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

Ранее мы выполняли работу на электростанции, собирая данные из различных систем и измерительного оборудования по широкому спектру газовых и электрических параметров, которые необходимо отслеживать и объединять. Они могут прийти каждые 3-5 минут до 30-60 минут в зависимости от типа параметров. Это естественно приводит к миллионам записей в месяц.

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

2 голосов
/ 02 ноября 2008

Ключевой вопрос может быть следующим: как вам нужно получить к ним доступ позже?

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

OTOH, если ваш клиент будет загружать и обрабатывать данные за целый день в одном месте, хранение данных в одном файле для каждого местоположения и дня уменьшает зависимости и может быть проще.

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

1 голос
/ 01 ноября 2008

Таблица, подобная этой, может работать:

LocationID, температура, отметка времени

Я не понимаю, почему это не будет эффективным. В конце концов, для этого нужны базы данных.

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