Описание структуры хранения данных в ClickHouse
Все описанные таблицы созданы на основе движка ReplacingMergeTree.
Таблица «monitoring_activity»
В таблице хранится информация об активности пользователей. Путь для обращения к таблице: `main`.`monitoring_activity`.
Имя колонки | Тип | Описание |
---|---|---|
time | DateTime64 | Время события, инициированного пользователем, представлено как календарная дата и время, с заданной до миллисекунд и наносекунд точностью |
employee_account_id | UInt64 | Идентификатор сущности EmployeeAccount во встроенной файловой базе данных модуля мониторинга |
time_offset | Int8 | Часовой пояс (сдвиг в часах от времени в UTC) |
program | String | Название запущенной программы |
version | String | Версия запущенной программы |
executable_path | String | Полный путь до исполняемого файла |
type | Int16 | Тип события |
main_window | String | Заголовок окна |
tab | String | Вкладка главного окна, может быть пустым |
url | String | URL веб-страницы, может быть пустым |
file_path | String | Полный путь к открытому файлу, может быть пустым |
ui_hierarchy_name | Array (String) | Название элемента, предоставляемое приложением (может быть URL либо название окна). Обязательное поле, но может быть пустым |
ui_hierarchy_ctrl | Array (Int32) | Control type элемента |
parameters_name | Array (String) | Название элемента, из которого получено значение |
parameters_value | Array (String) | CRC32 хеш от значения поля в UTF-8 формате (КП00-000006) |
id | UInt64 | Идентификатор доменной сущности во встроенной файловой базе данных |
cpu_loading | UInt32 | Значение загрузки процессора 0-100 (проценты) |
memory_loading | UInt32 | Значение использования оперативной памяти 0-100 (проценты) |
input_type | UInt8 | Если была аппаратная hid-активность, то параметр заполняется как 1, если не было, то как 0 |
computer_name | String | Имя компьютера |
Таблица «monitoring_agent_inspector_log»
В данной таблице хранятся технические логи агентов мониторинга, передаваемые с рабочих мест на сервер приложения. Данные из таблицы можно использовать при первичной диагностике проблем с агентами мониторинга. Путь для обращения к таблице: `main`.`monitoring_agent_inspector_log`.
Поле | Тип | Описание |
---|---|---|
time_offset | Int8 | Смещение (UTC) |
time | DateTime64(3, UTC) | UTC время в секундах |
level | String | Уровень логирования |
pid | Int32 | id процесса, 32- битное целое |
tid | Int32 | id потока, 32- битное целое |
function | String | Название функции в коде, в которой залогировалось message |
message | String | Текст лога (уровни логирования: "info", "warning", "error", "critical") |
machine_guid | String | id компьютера (зависит от ОС), позволяет узнать, с какого именно АРМ пришла активность |
agent_version | String | Версия агента |
remote_address | String | Заполняется строковым представлением ip-адреса клиента пришедшим на сервер |
computer_name | String | Берётся наименование компьютера из файла manifest.json из архива активности |
employee_account_id | UInt64 | Идентификатор сущности EmployeeAccount во встроенной файловой базе данных модуля мониторинга |
type_log | String | Тип логов активности: inspector – логи инспектора; service – логи службы SYSTEM. timetracking – логи timetracking |
row_number | UInt64 | Порядковый номер записи в таблице |
Таблица «monitoring_employee_log_type»
В таблице хранится информация о типе мониторинга сотрудника, а также время и источник его изменения. Путь для обращения к таблице: `main`.`monitoring_employee_log_type`.
Поле | Тип | Описание |
---|---|---|
employee_id | UInt64 | Идентификатор сотрудника, которому изменили тип лога |
old_value | String | Прежнее значение типа лога |
new_value | String | Новое значение типа лога |
event_date | DateTime | Дата переключения логов |
event_date_ms | UInt16 | Миллисекундная часть даты смены лога (в базе ClickHouse хранится отдельно) |
event_source | String | Источник изменения лога (SYSTEM, EMPLOYEE, APIKEY) |
employee_description | String | Описание источника изменения (формат ID~message, где ID – идентификатор сотрудника, message – display_name) |
api_description | String | Описание источника изменения (формат ID~message, где ID – идентификатор api_key, message – api*key) |
id | Int64 | Идентификатор доменной сущности во встроенной файловой базе данных |
Таблица «access_role»
В таблице хранится информация о ролях доступа. Путь для обращения к таблице: `main`.`access_role`.
Поле | Тип | Описание |
---|---|---|
id | UInt64 | Идентификатор роди доступ |
name | String | Имя роли доступа |
is_admin | UInt8 | Роль «Прикладной администратор» |
deleted | UInt8 | 1 – запись удалена из встроенной файловой базы данных 0 – запись существует во встроенной файловой базе данных |
hash_code | Int64 | hash-сумма контейнера синхронизации |
Таблица «access_role_privilege»
В таблице хранится информация о привилегиях ролей доступа. Путь для обращения к таблице: `main`.`access_role_privilege`.
Поле | Тип | Описание |
---|---|---|
name | String | Имя роли доступа |
is_write | UInt8 | Операция Write |
access_role_id | UInt64 | Идентификатор роли доступа |
is_execute | UInt8 | Операция Execute |
is_read | UInt8 | Операция Read |
is_delete | UInt8 | Операция Delete |
is_create | UInt8 | Операция Create |
id | Int64 | Уникальный идентификатор контейнера (SIP24) (order by) |
deleted | UInt8 | 1 – запись удалена из встроенной файловой базы данных 0 – запись существует во встроенной файловой базе данных |
hash_code | Int64 | hash-сумма контейнера синхронизации |
Таблица «dashboard_report»
В таблице хранится информация об отчетах. Путь для обращения к таблице: `main`.`dashboard_report`.
Поле | Тип | Описание |
---|---|---|
id | UInt64 | Идентификатор записи |
report_status | String | Статус отчета |
guid | Int64 | GUID пространства |
workspace_id | UInt64 | Идентификатор пространства |
report_name | String | Наименование отчета |
deleted | UInt8 | 1 – запись удалена из встроенной файловой базы данных 0 – запись существует во встроенной файловой базе данных |
hash_code | Int64 | hash-сумма контейнера синхронизации |
Таблица «dashboard_report_access»
В таблице хранится информация о доступах к отчетам. Путь для обращения к таблице: `main`.`dashboard_report_access`.
Поле | Тип | Описание |
---|---|---|
id | UInt64 | Идентификатор записи |
report_guid | UInt64 | GUID отчета |
operation | String | Операции доступа (Read/Write) |
employee_id | UInt64 | Идентификатор Пользователя |
deleted | UInt8 | 1 – запись удалена из встроенной файловой базы данных 0 – запись существует во встроенной файловой базе данных |
hash_code | Int64 | hash-сумма контейнера синхронизации |
Таблица «employee»
В таблице хранится информация о пользователях. Путь для обращения к таблице: `main`.`employee`.
Поле | Тип | Описание |
---|---|---|
id | UInt64 | Идентификатор сотрудника (также ключ сортировки) |
first_name | String | Имя |
patronymic | String | Отчество |
second_name | String | Фамилия |
login | String | Логин |
String | Электронная почта | |
phone | String | Телефон сотрудника |
name | String | Полное отображаемое имя |
departments | Array(String) | Массив наименований отделов (корневой, промежуточный, конкретный отдел) |
department_ids | Array(UInt64) | Массив идентификаторов отделов (корневой, промежуточный, конкретный отдел) |
authentication_assigned | UInt8 | Проверка возможности аутентификации у сотрудника |
access_role_ids | Array(UInt64) | Массив идентификаторов ролей доступа сотрудника |
monitoring_type | String | Сбор активности для конкретного сотрудника (DISABLED/SIMPLE/EXTENDED) |
employee_account_ids | Array(UInt64) | Массив идентификаторов источников активности |
access_to_employee_ids | Array(UInt64) | Массив идентификаторов сотрудников, к которым у данного сотрудника есть доступ |
additional_fields_names | Array(String) | Массив имен дополнительных полей сотрудника |
additional_fields_values | Array(String) | Массив значений дополнительних полей сотрудника |
personnelNumber | String | Табельный номер |
employee_account_logins | Array(String) | Список логинов всех аккаунтов сотрудника (пустая строка, если нет) |
employee_account_domains | Array(String) | Список доменов всех аккаунтов сотрудника (пустая строка, если нет) |
deleted | UInt8 | 1 – запись удалена из встроенной файловой базы данных 0 – запись существует во встроенной файловой базе данных |
hash_code | Int64 | hash-сумма контейнера синхронизации |
Таблица «link_employee_access_role»
В таблице хранится информация о ролях доступа у сотрудников. Путь для обращения к таблице: `main`.`link_employee_access_role`.
Поле | Тип | Описание |
---|---|---|
id | UInt64 | Идентификатор записи (order by) |
employee_id | UInt64 | Идентификатор пользователя |
role_id | UInt64 | Идентификатор роли доступа |
deleted | UInt8 | 1 – запись удалена из встроенной файловой базы данных 0 – запись существует во встроенной файловой базе данных |
hash_code | Int64 | hash-сумма контейнера синхронизации |
Таблица «link_manager_employee_access»
В таблице хранится информация о доступах сотрудников к другим сотрудникам. Путь для обращения к таблице: `main`.`link_manager_employee_access`.
Поле | Тип | Описание |
---|---|---|
employee_id | UInt64 | Сотрудники, к которым предоставлен доступ |
manager_id | UInt64 | Пользователь, кому предоставляется доступ |
id | Int64 | Уникальный идентификатор контейнера (SIP24) (order by) |
deleted | UInt64 | 1 – запись удалена из встроенной файловой базы данных 0 – запись существует во встроенной файловой базе данных |
hash_code | Int64 | hash-сумма контейнера синхронизации |
Таблица «monitoring_employee_account»
В таблице хранится информация об аккаунтах сотрудников. Путь для обращения к таблице: `main`.`monitoring_employee_account`.
Поле | Тип | Описание |
---|---|---|
id | UInt64 | Идентификатор аккаунта (order by) |
employee_id | UInt64 | Идентификатор пользователя |
deleted | UInt8 | 1 – запись удалена из встроенной файловой базы данных 0 – запись существует во встроенной файловой базе данных |
hash_code | Int64 | hash-сумма контейнера синхронизации |
Таблица «workspaces_link_workspace_employee»
В таблице хранится информация о доступах сотрудника в пространстве. Путь для обращения к таблице: `main`.`workspaces_link_workspace_employee`.
Поле | Тип | Описание |
---|---|---|
id | UInt64 | Идентификатор пространства (order by) |
operation | String | Тип операции (Read/Write) |
employee_id | UInt64 | Идентификатор Пользователя |
workspace_id | UInt64 | Идентификатор рабочего пространства |
deleted | UInt64 | 1 – запись удалена из встроенной файловой базы данных 0 – запись существует во встроенной файловой базе данных |
hash_code | Int64 | hash-сумма контейнера синхронизации |
Таблица «workspaces_workspace»
В таблице хранится информация о пространствах. Путь для обращения к таблице: `main`.`workspaces_workspace`.
Поле | Тип | Описание |
---|---|---|
name | String | Имя пространства |
is_imported | UInt8 | Флаг импортированного пространства |
import_export_version | UInt64 | Версия импорта |
import_export_id | String | Идентификатор экспортируемого пространства |
description | String | Описание |
id | UInt64 | Идентификатор пространства (order by) |
deleted | UInt8 | 1 – запись удалена из встроенной файловой базы данных 0 – запись существует во встроенной файловой базе данных |
hash_code | Int64 | hash-сумма контейнера синхронизации |
Таблица «ad_attribute»
В таблице хранятся сведения о синхронизируемых атрибутах. Путь для обращения к таблице: `main`.`ad_attribute`.
Поле | Тип | Описание |
---|---|---|
deleted | UInt8 | Флаг на удаление (значение = 1, если при синхронизации запись не приходит) (служебное поле) |
hash_code | Код для проверки изменений при синхронизации (служебное поле) | |
ad_attr_id | UInt64 | Идентификатор записи в ClickHouse (служебное поле) |
ad_attr_index | UInt32 | Индекс значения в многозначном атрибуте. Для однозначных индекс равен 0 |
ad_attr_data_type | String | Тип дополнительного поля сотрудника, на которое ссылается атрибут |
ad_attr_long_value | UInt64 | Значения атрибута с типом Long. Если атрибут другого типа, то значение = 0 |
ad_attr_employee_id | UInt64 | Идентификатор сотрудника, к которому относится атрибут и его значение |
ad_attr_string_value | String | Значение атрибута с типом String. Если атрибут другого типа, то в качестве значения записывается пустая строка |
ad_attr_attribute_name | String | Наименование атрибута |
ad_attr_is_long_value_null | UInt8 | Флаг проверки типа дополнительного поля сотрудника, на которое ссылается атрибут. Если тип дополнительного поля Long, то значение = 0, иначе значение = 1 |
ad_attr_is_string_value_null | UInt8 | Флаг проверки типа дополнительного поля сотрудника, на которое ссылается атрибут. Если тип дополнительного поля String, то значение = 0, иначе значение = 1 |
ad_attr_additional_field_name | String | Наименование дополнительного поля сотрудника, на которое ссылается атрибут |
События, при которых происходит запись переключения значения мониторинга
- При автоматическом создании нового сотрудника в системе (интеграция из AD, поступление данных от агента) источником изменений будет SYSTEM. Значения будут установлены в DISABLED.
- В случаях изменения типа мониторинга пользователем, администратором или через API будет указан источник изменения EMPLOYEE или API_KEY, прежнее значение до изменения и новое установленное значение.