Сущности домена
Этот раздел описывает сущности в домене.
| Ознакомьтесь с правилами нотации в схеме домена. Это позволит присваивать корректные названия создаваемым элементам схемы. Эти названия будут отображаться в интерфейсе системы. |
Структура блока entities
Путь в схеме: entities[]
Блок entities представляет собой массив записей сущностей, входящих в состав домена. В запись сущности необходимо включить поле attributes, содержащее описание массива атрибутов сущности.
Каждый элемент массива имеет следующую структуру:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
нет |
Data ID |
Уникальный идентификатор сущности. |
|
нет |
строка |
Название сущности. |
|
нет (по умолчанию — |
строка |
Название сущности, отображаемое в интерфейсе. Ознакомьтесь с описанием поля
|
|
нет (по умолчанию: пустая строка) |
строка |
Описание сущности. Не выводится в представлениях. |
|
нет (по умолчанию: |
перечисление |
Вид сущности. В текущей реализации системой всегда обрабатываются сущности с видом |
|
нет (по умолчанию: пустой массив) |
массив |
Описание атрибутов сущности. Ознакомьтесь с описанием поля
|
|
нет |
массив |
Описание правил сортировки, определяющих наборы атрибутов, по которым будет осуществлена сортировка списка объектов. Ознакомьтесь с описанием поля |
|
нет |
массив |
Описание правил идентификации объектов, поступающих в систему. Ознакомьтесь с описанием поля |
|
нет |
массив |
Описание правил реконсиляции объектов, поступающих в систему. Ознакомьтесь с описанием поля |
|
нет |
массив |
Проекция, позволяющая посредством API в одном запросе получить атрибуты для отображения данных другой сущности. Ознакомьтесь с описанием поля |
|
нет |
массив |
Описание набора атрибутов, по которым будет осуществлен поиск в списке объектов. Ознакомьтесь с описанием поля |
|
нет |
Data ID Ref |
Ссылка на сущность, которая является родителем для текущей сущности. Ознакомьтесь с описанием поля |
|
нет |
Data ID Ref |
Ссылка на иконку сущности для ее представления на диаграмме связей. |
|
нет |
объект |
Настройки отображения иконки на диаграмме связей. Ознакомьтесь с описанием поля |
|
нет (по умолчанию — |
логическое |
Признак группы активов, предназначенной для сканирования. |
|
нет (по умолчанию — |
логическое |
Признак актива, предназначенного для сканирования. |
Пример записи сущности Пользователь
entities:
# Уникальный идентификатор сущности.
- id: Person
# Название сущности.
name: Пользователь
# Описание сущности.
description: Пользователь, сотрудник
# Перечисление атрибутов для сущности.
attributes:
...
Правила сортировки (sorting)
Путь в схеме: entities[].sorting[]
В списочном представлении доступна сортировка экземпляров сущностей по столбцам таблицы, определенным в правилах сортировки. В таблице можно отображать не все атрибуты, которые участвуют в сложном правиле сортировки — система все равно будет отображать экземпляры, отсортированные по таким атрибутам. Для удобочитаемости таблицы рекомендуется отображать первый атрибут, участвующий в правиле сортировки.
Если хотя бы одно правило сортировки не определено в схеме домена, система сортирует экземпляры в таблице по времени поступившей о них информации за секундный интервал и далее сортирует их по идентификатору экземпляра.
Поле sorting представляет собой массив записей, описывающих правила сортировки атрибутов сущности. Каждый элемент массива имеет следующую структуру:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
да |
Data ID |
Уникальный идентификатор правила сортировки из описания сущности. |
|
нет (по умолчанию — пустая строка) |
строка |
Название правила сортировки. |
|
да |
массив |
Сортируемые атрибуты, перечисленные в последовательности сортировки. Ознакомьтесь с описанием поля |
|
нет |
логическое |
Переключатель индексирования перечисленных атрибутов. |
|
Включение индексации необязательно, поскольку сортировка и фильтрация работают и без индексации. Используйте индексацию, если:
Если средняя продолжительность выполнения запросов не превышает секунду, индексацию включать не нужно. Это позволит оптимизировать производительность без избыточного создания индексов. |
Структура by
Путь в схеме: entities[].sorting[].by[]
Поле by представляет собой массив записей правил сортировки. Каждый элемент массива имеет следующую структуру:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарии |
|---|---|---|---|---|---|
|
да |
Ссылка на атрибут, по которому производится сортировка. |
Data ID Ref |
Если в правиле указана ссылка на атрибут с типом данных |
|
|
да |
|
Порядок сортировки |
перечисление |
Доступные значения:
|
Идентификация и реконсиляция
В схеме домена можно опционально задавать правила идентификации и реконсиляции. Если правило отсутствует, каждый полученный объект считается уникальным и записывается в базу данных отдельно.
Система обрабатывает входящие данные пакетами. Правила работают с уже нормализованными данными. После того как вы измените параметры правил и в систему поступят новые данные, измененные правила будут применяться как к данным, поступившим в систему после сохранения изменений, так и к данным, уже хранившимся в базе данных.
Правила идентификации (identification)
Правила идентификации содержат ссылки на атрибут или набор атрибутов сущности. По этим атрибутам данные об объекте, получаемые из источников, проверяются на уникальность.
Алгоритм работы правила:
-
Система ищет дубликаты объектов во входящих данных и отфильтровывает их.
-
После отработки фильтрации дубликатов система сравнивает объекты с объектами, хранящимися в БД.
-
Если система находит в БД дубликаты объекта, они будут удалены. Остается по одному экземпляру объекта на стороне входящих данных и на стороне БД.
-
Система записывает данные о полученных объектах в БД.
По итогам идентификации система выявляет дубликаты объектов, который либо отфильтровываются, либо агрегируются — в зависимости от правил реконсиляции.
Логика формирования правил идентификации:
-
В правиле можно связывать атрибуты логическими операторами AND и OR, а также задавать вложенные условия. Допускается не более трех уровней вложенности.
-
На одном уровне вложенности можно одновременно использовать разные логические операторы.
-
Если в блоке задано несколько правил, между ними работает логика OR.
-
Правила располагаются в порядке убывания приоритета.
При обработке входящих данных можно дополнительно использовать фильтрацию данных с помощью правила на языке преобразования данных VRL (Vector Remap Language). VRL-правило фильтрации описывается в рамках правила идентификации в поле filter.
VRL-правило позволяет выполнить следующие действия:
-
Первичная дедупликация входящих данных. Данные сначала фильтруются согласно VRL-правилу, а затем дедуплицируются по атрибутам, заданным в правиле. Все найденные дубликаты перезаписываются объектом, который был идентифицирован первым во входящих данных.
-
Фильтрация данных, полученных из БД. Данные собираются на основе атрибутов, заданных в правиле, а затем фильтруются с помощью VRL-правила.
Структура поля identification
Путь в схеме: entities[].identification[]
Поле identification представляет собой массив правил идентификации. Каждый элемент массива имеет следующую структуру:
| Поле | Описание | Тип данных | Комментарий |
|---|---|---|---|
|
Уникальный идентификатор правила (обязательное поле). |
строка |
|
|
Описание правила. |
массив |
Ознакомьтесь с описанием поля |
|
Фильтрация входящих данных с помощью VRL-правила. |
массив |
Поле содержит команду на языке VRL, возвращающую ответ в булевом формате. |
Структура правила идентификации (rule)
Путь в схеме: entities[].identification[].rule[]
Поле содержит массив ссылок на атрибуты, по которым происходит идентификация в рамках правила. Можно использовать до трех уровней вложений. Каждый элемент массива имеет следующую структуру:
| Поле | Обязательное поле | Описание | Тип данных | Комментарий |
|---|---|---|---|---|
|
да |
Ссылка на атрибут, по которому происходит идентификация. |
строка |
|
|
нет |
Логический оператор И. |
строка |
Поле содержит массив ссылок на атрибуты, которые учитываются в правиле по логике И. Может использоваться на разных уровнях в правиле. |
|
нет |
Логический оператор ИЛИ. |
строка |
Поле содержит массив ссылок на атрибуты, которые учитываются в правиле по логике ИЛИ. Может использоваться на разных уровнях в правиле. |
Правила реконсиляции (reconciliation)
Правила реконсиляции определяют набор атрибутов объектов, подчиняющихся логике агрегации, и набор источников, данные от которых будут учитываться при перезаписи значений атрибутов.
Если правило отсутствует, по умолчанию система будет перезаписывать значения атрибутов по мере поступления от источников в порядке очередности.
| Для сущности нельзя определить правило реконсиляции, если не задано правило идентификации. |
Логика задания источников в правилах реконсиляции
Для каждого атрибута в правиле задается список источников, которые считаются наиболее приоритетными при сборе данных по атрибуту. Идентификаторы источников в списке располагаются в порядке убывания приоритета.
Значение параметра "*" позволяет учитывать в правиле все источники, не указанные в правиле. Они будут иметь одинаково низкий приоритет по сравнению с указанными источниками.
| Всегда указывайте значение параметра "*" в правиле в кавычках. |
Если значение параметра "*" не задано в правиле, данные для реконсиляции берутся только из указанного списка источников.
Для всех атрибутов, не указанных в правиле, нужно создать единое правило приоритетов с помощью параметра default . Если нужно определить единую логику приоритизации источников для всех атрибутов сущности, задайте параметр default без указания конкретных атрибутов.
Логика перезаписи значений атрибутов
Перезапись значений происходит после срабатывания правила идентификации. При этом система учитывает заданные правила реконсиляции. Если правила реконсиляции не задавались, используется логика, заданная в поле default.
-
Данные из разных источников перезаписываются с учетом определенной в правиле приоритизации.
-
При обработке данных, поступивших в рамках одного запроса, учитываются самые последние полученные значения.
-
Если текущее значение не равно
nullи приоритет входящих данных не ниже приоритета текущих данных, данные перезаписываются. -
Значение не перезаписывается на
nullни при каких условиях.
Структура поля reconciliation
Путь в схеме: entities[].reconciliation[]
Поле reconciliation представляет собой массив правил реконсиляции и содержит:
Структура attribute
Путь в схеме: entities[].reconciliation[].attribute
Поле attribute содержит ссылку на атрибут и массив записей источников, считающихся приоритетными для этого атрибута.
Запись включает следующие поля:
| Поле | Обязательное поле | Описание | Тип данных | Комментарий |
|---|---|---|---|---|
|
да |
Название приоритетного источника для атрибута |
массив |
Поле содержит массив значений поля Поле может принимать значения:
|
Структура default
Путь в схеме: entities[].reconciliation[].default
Поле default содержит массив записей источников, считающихся приоритетными для всех атрибутов сущности, не указанных отдельно.
Запись включает следующие поля:
| Поле | Обязательное поле | Описание | Тип данных | Комментарий |
|---|---|---|---|---|
|
да |
Название источника |
строка |
Поле может принимать значения:
|
Проекции (projection)
Путь в схеме: entities[].projection[]
Проекция используется, если при определении атрибута текущей сущности необходимо сослаться в этом атрибуте на исходную сущность и отображать ее данные в представлении. Для автоматического подбора дополнительных данных объекта исходной сущности при запросе значения атрибута со ссылкой, в исходной сущности указывается проекция с перечислением всех необходимых атрибутов.
Проекция содержит массив записей избранных атрибутов исходной сущности и задается в поле projection. Каждый элемент массива имеет следующую структуру:
| Поле | Обязательное поле | Описание | Тип данных |
|---|---|---|---|
|
да |
Ссылка на атрибут |
Data ID Ref |
Правила поиска (searching)
Если в поле searching задано правило поиска, система будет производить поиск не только по лейблу, но и по указанным в правиле атрибутам связанной сущности.
Чтобы система производила поиск по связи, необходимо в самой связи в поле searchable установить значение true.
|
entities:
- id:
name: Device
# Поле, в котором задается правило поиска.
searching:
# Список атрибутов сущности, по которым производится поиск.
attributes:
- objectGuid
- commonName
Отображение иконки сущности на диаграмме связей (graphView)
Путь в схеме: entities[].graphView
Для сущности можно задать иконку, которая будет отображаться на диаграмме связей:
-
в поле
iconsзадается ссылка на файл иконки; -
в поле
graphViewзадаются настройки отображения иконки.
Поле graphView содержит следующее поле:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
да |
перечисление |
Цвет иконки. Доступные значения перечислены далее. |
Доступные цвета иконки:
-
red— красный; -
pink— розовый; -
lightpink— светло‑розовый; -
orange— оранжевый; -
peach— персиковый; -
yellow— желтый; -
green— зеленый; -
lightgreen— светло‑зеленый; -
turquoise— бирюзовый; -
lightblue— голубой; -
blue— синий; -
violet— фиолетовый; -
purple— пурпурный; -
grey— серый.
Была ли полезна эта страница?