# Использование Листов, Списков, Таблиц

### <span data-position="4437" data-size="301">Общая информация</span>

<span data-position="4437" data-size="301">Контекстные таблицы и активные листы:</span>

- <span data-position="4437" data-size="301">живут на корреляторе;</span>
- <span data-position="4437" data-size="301">по большей части наполняются им же, реже - вручную и через API;</span>
- <span data-position="4437" data-size="301">используются для корреляционной логики и обогащения на корреляторе.</span>

<p class="callout warning"><span data-position="4437" data-size="301">Важно! Содержимое активного листа/контекстной таблицы **РАЗНОЕ** на каждом корреляторе.</span></p>

<span data-position="4437" data-size="301">Словарь / таблица - это ключ и значение, который можно задать один раз и ручками править (можно через API), этот словарь доступен в коллекторах и на корреляторах, причем он один может быть доступен сразу всем. Поле значение не обязательно использовать, можно его пустым сделать, можно "-", "0" написать туда, как удобно. Особенности словарей и таблиц:</span>

- <span data-position="4437" data-size="301">живут на ядре, но транслируются на все сервисы, где они указаны;</span>
- <span data-position="4437" data-size="301">наполняются только вручную или через API, более статичны;</span>
- <span data-position="4437" data-size="301">используются в основном для обогащения на коллекторах/корреляторах, реже для корреляционной логики.</span>

<p class="callout info"><span data-position="4437" data-size="301">Если словарь содержит более 5000 записей, тогда KUMA в веб-интерфейсе не отображает содержимое словаря. Чтобы изменить содержимое словаря, отредактируйте CSV-файл и загрузите его в KUMA.</span></p>

<p class="callout warning"><span data-position="4437" data-size="301">Важно! Содержимое словаря/таблицы **ОДИНАКОВОЕ** для всех сервисов, где он используется.</span></p>

### <span data-position="4437" data-size="301">Активный список / лист</span>

<span data-position="4437" data-size="301">Активный лист (AL) – это контейнер для данных (представляет собой структуру ключ и значение), предназначенный для быстрой записи/чтения динамических данных, доступных всем фильтрам и корреляционным правилам в рамках одного сервиса Коррелятора. Чтобы их посмотреть, нужно из активных сервисов нажать кнопку </span>**<span data-position="4740" data-size="23">Смотреть активные листы</span>**<span data-position="4765" data-size="1">.</span>

<span style="color: rgb(0, 0, 0);">[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/rQfimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/rQfimage.png)</span>

Взаимодействовать с активным листом могут не только компоненты коррелятора, но и пользователи, с помощью Web-консоли и API. Пользователь KUMA имеет возможность работы с данными AL:

- выполнять поиск по именам записей (выполняться по полному вхождению указанной пользователем подстроки);
- удалить записи;
- открыть содержимое записи.

Производительность активных листов комфортан (максимальна) с десятками тысяч записей.

Активные листы работают в памяти коррелятора, также при работе активного листа используется Write-Ahead Log (WAL), который предполагает сохранение каждого изменения состояния в виде двоичного файла на жестком диске. Каждой записи журнала присваивается уникальный идентификатор, позволяющий выполнять дополнительные операции с журналом, такие как сегментация журнала и очистка. Уникальность записей журнала также помогает применять обновления журнала с использованием единой очереди обновлений, обеспечивая последовательные и согласованные обновления.

Примеры использования [**тут**](https://kb.kuma-community.ru/books/pravila-korreliacii-v-kuma-cookbook/page/priemy-v-pravilax-korreliacii#bkmrk-%D0%90%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%2F-%D0%BB%D0%B8).

<p class="callout warning">Синхронизация активного листа между несколькими корреляторами. **ВАЖНО это не поддерживаемый и не официальный сценарий.** Можно попробовать сделать так: WAL записывается на сетевую папку, примонтиованную к двум корреляторам. И если один из корреляторов упал, скрипт (заранее написанный) запускает службу второго коррелятора. Второй коррелятор перечитает WAL и импортирует данные в лист.</p>

### Конекстная таблица

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

Функциональные возможности контекстных таблиц:

- список ключевых полей определяется пользователем;
- данные в контекстных таблицах типизированы (целые числа, числа с плавающей точкой, строки, логический тип, timestamp, IP);
- поддерживаются массивы для всех типов данных, перечисленных выше;
- в корреляции, для полей с массивами возможны подсчеты уникальных значений, вычисление длины массива, обращение к определенному элементу массива.

Примеры использования [**тут**](https://kb.kuma-community.ru/books/pravila-korreliacii-v-kuma-cookbook/page/priemy-v-pravilax-korreliacii#bkmrk-%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BD%D0%BE%D0%B9).