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 тысяч событий). Также не рекомендуется выполнять таким образом команды с настройками
smemax_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