Циклическая база данных

Циклическая база данных

Циклическая база данных (англ. Round-robin Database, RRD) — база данных, объём хранимых данных которой не меняется со временем,[1] поскольку количество записей постоянно, в процессе сохранения данных они используются циклически.[2][3][4] Как правило, используется для хранения информации, которая перезаписывается через равные интервалы времени.

Наибольшее применение нашла в программе MRTG, которая позднее была вытеснена пакетом программ RRDtool.[5]

СУБД и интерфейсы для циклической БД включены в репозитории крупнейших дистрибутивов Linux[6][7][8][9] и в хранилище Perl библиотек CPAN.[10] Также СУБД RRDtool доступна как модуль для CMS Drupal.[11]

Содержание

Структура БД

Внутренняя структура циклической БД:
RRA (англ. round-robin archive) — циклический архив DS (англ. data source) — таблица для соответствующего источника данных

Одна циклическая база данных можеть хранить один или несколько наборов данных, которые объединяются в архивы (RRA — round robin archive). Кольцевые таблицы архивов по структуре аналогичны массивам, у которых адрес последнего элемента совпадает с адресом первого элемента. Положение последнего обновленного элемента хранится в виде указателя. Архивы, как правило, связаны между собой как матрешки, каждый последующий архив хранит консолидированную информацию из предыдущего. Для этого используются функции консолидации, встроенные в базу данных. Это позволяет применять эти функции автоматически при обновлении информации в БД. Один архив хранит данные с небольшим интервалом между записями, другой, через заданное количество интервалов, сохраняет консолидированные данные из предыдущего, последующий делает это ещё реже и т. д.[12]

Консолидация данных

Если записывать данные через небольшие интервалы времени, а потом формировать среднее (максимальное, минимальное и т. д.) значения за год или любой другой достаточно большой интервал времени, то вычисления и сам процесс выборки из БД может потребовать большое количество ресурсов. Для того, чтобы избежать этого, в циклических базах данных используется консолидация данных при записи, а не во время считывания. Периодов консолидации может быть сколько угодно (неделя, месяц, квартал, год и т. д.). Для осуществления вычислений используются специальные функции консолидации (англ. consolidation function, CF), такие как:

  • average — среднее значение
  • minimum — минимальное значение
  • maximum — максимальное значение
  • total — общее значение

Типы данных

Основные типы данных:[13]

  • COUNTER
  • GAUGE
  • DERIVE
  • ABSOLUTE
  • COMPUTE

COUNTER — это счетчик, значение которого может только увеличиваться, при сохранении данных такого типа из текущего значения вычитается предыдущее.

GAUGE — произвольные значения. Данный тип используется для данных, которые могут как уменьшаться, так и возрастать (допустим температура объекта).

Тип DERIVE — это тот же счетчик, но с возможностью хранить не только постоянно возрастающие, но и убывающие значения, то есть разница между смежными значениями может быть отрицательной. При этом важно помнить, что для этого типа не производится проверка на переполнение.

ABSOLUTE — это тоже модификация счетчика, отличие состоит в том, что разница между значениями не вычисляется, а сохраняются сами значения счетчика и счетчик обнуляется при чтении. Этот тип удобно использовать для подсчета количества событий, произошедших с момента последнего считывания.

Тип COMPUTE используется для записи вычисляемых значений на основании данных из других источников данных (англ. Data Source, DS) текущей БД RRD. В теории баз данных такие поля называют вычисляемыми или виртуальными. Этот источник данных не указывается при операции обновления (update), но его основные контрольные значения (англ. Primary Data Points, PDPs) вычисляются из основных контрольных значений (PDPs) других источников данных, путем применения к ним формул записанных в формате обратной польской записи (англ. Reverse Polish Notation, RPN). Функции консолидации тоже применимы к этому типу данных.

Интерполяция данных

В связи с тем, что циклические базы данных часто используются для представления данных, распределенных во времени через равные интервалы времени, в механизме такой базы предусмотрена следующая особенность: если при записи в базу по каким-то причинам (например задержка вычисляя значения) данные не были записаны вовремя (например запись произошла на 3 секунды позже), то данные все равно будут записаны так, как если бы они были предоставлены вовремя. Сам «механизм» циклической базы данных изменит данные для коррекции (пропорционально времени запаздывания или отставания). Другими словами, в саму базу данных встроена система корректирования аберраций (англ. Aberrant Behavior Detection). Эта система состоит из трех компонентов:[14]

  • Механизм математического (статистического) прогнозирования значения следующей порции данных (которые будут записаны).
  • Механизм вычисления отклонения реальных данных от прогнозированной (расчетной) величины.
  • Механизм принятия решений в зависимости от степени отклонения значения (или серии значений) от прогнозированной (расчетной) величины.

Как работает интерполяция аберрированных данных легко понять, рассмотрев конкретные значения:

данные в БД RRD реальные данные
time+000:   0 delta="U"
time+300: 300 delta=300
time+600: 600 delta=300
time+900: 900 delta=300
time+000:    0 delta="U"
time+300:  300 delta=300
time+603:  603 delta=303
time+900:  900 delta=297

Но в БД хранятся не только интерполированные данные, но и данные, которые непосредственно вводились. Это необходимо для более точной интерполяции последующих данных.

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

Примечания

См. также

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Циклическая база данных" в других словарях:

  • База данных — Запрос «БД» перенаправляется сюда; см. также другие значения. База данных  представленная в объективной форме совокупность самостоятельных материалов (статей, расчётов, нормативных актов, судебных решений и иных подобных материалов),… …   Википедия

  • СП 151.13330.2012: Инженерные изыскания для размещения, проектирования и строительства АЭС. Часть I. Инженерные изыскания для разработки предпроектной документации (выбор пункта и выбор площадки размещения АЭС) — Терминология СП 151.13330.2012: Инженерные изыскания для размещения, проектирования и строительства АЭС. Часть I. Инженерные изыскания для разработки предпроектной документации (выбор пункта и выбор площадки размещения АЭС): 3.48 MSK 64: 12… …   Словарь-справочник терминов нормативно-технической документации

  • Безработица — (Unemployment) Безработица – это такое социально экономическое явление, при котором часть взрослого трудоспособного населения, не имеет работы и активно ее ищет Безработица в России, Китае, Японии, США и странах Еврозоны, в том числе в кризисные… …   Энциклопедия инвестора

  • Занятость — (Employment) Занятость населения, виды занятости Постоянная занятость, вторичная и теневая Содержание Содержание 1. Вторичная . 2. Постоянная и нерегулярная занятость. 3. Теневая занятость, частичная и условная. Занятость населения Понятие… …   Энциклопедия инвестора

  • Финансовый регулятор — (Financial regulator) Финансовый регулятор это орган, осуществляющий надзор, регулирование и контроль над оборотом финансовых инструментов Регуляторы финансового рынка – понятие, цели деятельности и роль финансовых регуляторов, самые известные… …   Энциклопедия инвестора


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»