Перейти к основному содержимому
Версия: 4.0

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.

Опциональные аргументы

ПараметрСинтаксисПо умолчаниюОписание
dedupdedup=<boolean>falseУказывает, нужно ли убирать дубликаты из данных, которые сравниваются с лукапом.
<execution-type>type=ELK [packsize=<integer>] | FASTDEFAULTУказывает на тип выполнения команды. Тип ELK означает, что команда выполняется средствами elasticsearch/opensearch, packsize по умолчанию 10.000, FAST — оптимизированная, более быстрая версия выполнения команды в случае DEFAULT.
lookup-field<string>Могут быть указаны несколько полей. Разделитель между полями пробел.
event-field<string>Имя поля в основном результате для сравнения с lookup-field. Используется в случае если названия lookup-field и event-field не совпадают.
lookup-destfield<string>Имя результирующего поля с полученными данными.
OUTPUT | OUTPUTNEWOUTPUT | OUTPUTNEWOUTPUTИндикатор OUTPUT указывает, на то что, существующие данные в поле исходного запроса будут перезаписаны данными из lookup. Индикатор OUTPUTNEW указывает на то, что данные в поле исходного запроса будут перезаписаны, если поле не заполнено, но есть данные для этого поля в lookup.
Рекомендации по настройке команды
  1. Вызов команды без указания типа выполнения рекомендуется на небольших объемах данных в справочнике (до 50 тысяч событий). Также не рекомендуется выполнять таким образом команды с настройками sme max_initial_query_len больше 10.000.
  2. Вызов команды с указанием типа FAST не рекомендуется для справочников размером больше 500 тысяч событий.
  3. Для типа выполнения 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