lookup
Описание
Позволяет получить данные из предопределённого lookup
.
Синтаксис
lookup dedup=<boolean> <execution-type> <lookup-name> ( <lookup-field> [AS <event-field>] )... [ OUTPUT | OUTPUTNEW (<lookup-destfield> [AS <event-destfield>] )... ]
Обязательные аргументы
Параметр | Синтаксис | Описание |
---|---|---|
lookup-name | <lookup-name> | Имя предопределенного lookup. |
Опциональные аргументы
Параметр | Синтаксис | По умолчанию | Описание |
---|---|---|---|
dedup | dedup=<boolean> | false | Указывает, нужно ли убирать дубликаты из данных, которые сравниваются с лукапом. |
<execution-type> | type=ELK [packsize=<integer>] | FAST | DEFAULT | Указывает на тип выполнения команды. Тип ELK означает, что команда выполняется средствами elasticsearch/opensearch, packsize по умолчанию 10.000, FAST — оптимизированная, более быстрая версия выполнения команды в случае DEFAULT . |
lookup-field | <string> | Могут быть указаны несколько полей. Разделитель между полями пробел. | |
event-field | <string> | Имя поля в основном результате для сравнения с lookup-field . Используется в случае если названия lookup-field и event-field не совпадают. | |
lookup-destfield | <string> | Имя результирующего поля с полученными данными. | |
OUTPUT | OUTPUTNEW | OUTPUT | OUTPUTNEW | OUTPUT | Индикатор OUTPUT указывает, на то что, существующие данные в поле исходного запроса будут перезаписаны данными из lookup . Индикатор OUTPUTNEW указывает на то, что данные в поле исходного запроса будут перезаписаны, если поле не заполнено, но есть данные для этого поля в lookup . |
Рекомендации по настройке команды
- Вызов команды без указания типа выполнения рекомендуется на небольших объемах данных в справочнике (до 50 тысяч событий). Также не рекомендуется выполнять таким образом команды с настройками
sme
max_initial_query_len
больше 10.000. - Вызов команды с указанием типа
FAST
не рекомендуется для справочников размером больше 500 тысяч событий. - Для типа выполнения
ELK
рекомендуется не ставить большойmax_initial_query_len
. Параметрpacksize
указывает на то, по сколько событий будет за один запрос обрабатываться движком в каждой итерации. То есть еслиmax_initial_query_len
= 10.000, аpacksize
= 5.000, то за одну итерацию в 10 тысяч событий будет отправлено два запроса (max_initial_query_len
/packsize
) к эластику. Еслиmax_initial_query_len
больше 20 тысяч, то рекомендуется выполнять команду с параметромpacksize
в два или три раза меньшеmax_initial_query_len
.
Примеры запросов
Пример №1
source tables
| search database = "hr"
| lookup my_click_db name as database OUTPUT engine
Пример №2
source tables
| search database = "hr"
| lookup type=ELK packsize=15000 my_click_db name as database OUTPUTNEW engine