Эффективная обработка временных рядов в Firebird - PullRequest
0 голосов
/ 30 ноября 2018

У нас есть пара приложений, у которых есть классическая проблема с данными временных рядов: нам нужно хранить поминутные данные временных рядов (временная метка и один или несколько столбцов данных устройства), очищать эти данные на основе возраста иполучить 2-дневные или 30-дневные блоки данных для отображения трендов.Срок хранения составляет 36 месяцев, поэтому FDB могут стать довольно большими.Хотя я знаю о различных доступных базах данных временных рядов, на данный момент я заблокирован в Firebird - переход на другую БД не вариант.

Поскольку вставки выполняются-минут, не отставать от притока данных не проблема.Очистка также не является большой проблемой (поток запускается каждый день в определенное время для устаревания старых данных.) Но извлечение этих 2- или 30-дневных блоков убивает по мере роста БД.Я пробовал несколько разных вещей (хранение метки времени в виде отдельных целочисленных полей даты и времени, а не одного поля метки времени и т. Д.), Чтобы ускорить поиск, но ничего не помогает.

Мне нужна помощь с настройкой и лучшими практиками для этого в Firebird: существуют ли конкретные вещи (дизайн схемы, макет запроса и т. Д.), Которые могут значительно повысить скорость в сценарии временной последовательности?

...