Схема InfluxDB®

Имя БД

Если не изменить значение по умолчанию, база данных будет называться «kaskad».

Политики хранения

Каждая настроенная архивная группа для backend-коннектора соответствует определенной политике хранения. Имя политики хранения – это “имя группы», настроенное в графическом интерфейсе пользователя.
Срок хранения всех политик в базе данных бесконечен. Это делается для того, чтобы предотвратить автоматическое удаления политик хранения. Вместо этого настроенный пользователем период хранения используется внутри backend-коннектора для регулярной проверки того, истек ли сегмент в заданном периоде хранения. Если это так, то backend-коннектор делает резервную копию сегмента, прежде чем он будет удален.

Измерения

Имя измерения всегда совпадает с именем политики хранения.

Тип значения (Valuetype)

Тип значения используется для преобразования прочитанного значения обратно в исходное значение (original value) «КАСКАД Цифра». Он так же указывает, какой столбец в БД должен быть прочитан.

Тип значенийТип элементаСуффикс и тип столбца
0boolbool
1intint
2unsigned intint
3floatfloat или float_special
4stringstring
5blobНеприменимо
6lang stringstring
7charint
8bit32int
9bit64int
10timeint
11dpidstring
12longint
13unsigned longint
alldyndyn

ПРИМЕЧАНИЯ

  • если столбец dyn не пуст (не null), он имеет приоритет в обработке
  • если столбец float_special не пуст (не null), то он имеет приоритет над float
  • float_special хранится в виде строки

Хранение массивов

Если тип элемента – dyn, то он всегда хранится в столбце с суффиксом «dyn_».
Чтобы поместить все элементы в один столбец, используется пользовательский формат.
Этот формат представляет собой повторяющуюся последовательность:

NumberOfBytes:<Bytes>

ПРИМЕР

5:Hello6:World!

Тип данных langString использует формат, полученный из приведенной выше последовательности.
Проще говоря, langString – это массив строк. Но по умолчанию он хранится внутри столбца с суффиксом «string_», но хранится как массив.

Это делает dyn_LangString массивом массивов, который хранится в следующем формате:

ПРИМЕР

14:5:Hello5:Hallo9:3:You2:Du

14 байт – это первая запись в массиве, которая представляет из себя запись 5:Hello5:Hallo.
Далее следует 9 байт второй записи, которая соответствует 3:You2:Du.
Вся запись целиком представляет из себя одну строку типа LangString, которая сама по себе является строковым массивом

События / Значения

Имя столбцаТипТип данныхОписание
timeВремя, когда значение было изменено
nametagИмя элемента точки данных
тип переменнойtagТип «КАСКАД Цифра»
aliastag 
Тип значенийfieldintсм. таблицу типов значений
original_value_suffixfieldсуффикс определяется в зависимости от типа значения
_status64fieldint 
_managerfieldint 
_userfieldint 
_unitfieldstring 
_commentfieldstring 

Алармы/Оповещения

Языковые строки

Способ хранения языковых строк алармов отличается от способа хранения обычных языковых строк. Каждая запись языковой строки аларма получает свой собственный столбец вместо использования формата хранения массивов. Это необходимо для реализации фильтрации в «КАСКАД Цифра».

Формат для хранения следующий:

columnName_LangIdSuffix

Пример

_abbr_3

это означало бы, что в этом столбце содержится 4-й язык (индекс начинается с 0), определенный в проекте.

Имя столбцаТипТип данныхОписание
timeВремя прихода аларма
nametagИмя элемента точки данных
тип переменнойtagТип «КАСКАД Цифра»
aliastag 
_dpeid_dptagИдентификатор точки данных
_dpeid_eltagИдентификатор элемента точки данных
alarmvalue_typefieldintсм. таблицу типов значений
alarmvalue_suffixfield*суффикс зависит от alarmvalue_type
_abbr_IDfieldstringПредставляет из себя langString
_ack_statefieldint 
_ack_timefieldfloat 
_ack_typefieldint 
_ackablefieldbool 
_alert_colorfieldstring 
_alert_font_stylefieldstring 
_alert_fore_colorfieldstring 
_alert_idfieldstring 
_classfieldstring 
_commentfieldstring 
_destfieldint 
_dest_text_IDfieldstringПредставляет из себя langString
_directionfieldbool 
_inact_ackfieldbool 
_panelfieldstring 
_partn_idxfieldint 
_partnerfieldstring 
_priorfieldint 
_single_ackfieldbool 
_statefieldint 
_system_timefieldstring 
_text_IDfieldstringПредставляет из себя langString
_value_status64fieldint 
_visiblefieldbool 
countOfValidAddValuesfieldintКоличество добавленных значений
_add_value_n_typefieldintсм. таблицу типов значений
_add_value_n_suffixfield*Суффикс зависит от _add_value_n_type

Общие замечания

  • Запрос должен выбирать хотя бы один файл, иначе результат не будет возвращен.
  • Беззнаковые целые изначально не поддерживаются в базе данных, поэтому использваоние выражения WHERE для переменных этого типа может привести к неожиданным результатам запроса.
    Запрос беззнаковых целых из базы данных требует ручного приведения типа результирующего значения к беззнаковому типу.
  • Столбец времени (time) всегда находится в формате UTC, и он всегда извлекается как первый столбец.

Правила использования кавычек

ВыражениеТип кавычекПример
SELECTдвойные кавычкиSELECT "_visible"
FROMнет кавычекFROM Events.Event
WHERE <имя столбца>двойные кавычкиГде "_state"
WHERE <значение строки или тега>одиночные кавычкиWHERE ... = 'text'
WHERE <числовое значение>нет кавычекWHERE ... > 15
Регулярное выражениекосая чертаWHERE ... =~ /^[0-9]?/

Пример запросов

Проверка работы базы данных в целом

SELECT * FROM Event.Event LIMIT 10

Запрос значений с плавающей точкой

SELECT "name", "original_value_float", "original_value_float_special" FROM Event.Event WHERE "valuetype" = 3

Запрос всех значений определенного типа

SELECT * FROM Event.Event WHERE "variabletype" = 'ExampleDP_Float'

Использование регулярного выражения для запроса всех столбцов «_text» для алармов

SELECT "name", /^_text.*/ FROM Alert.Alert

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *