peval
Описание
Выполняет различные операции над данными. Базируется на внутренних механизмах хранилища.
осторожно
Использование peval в запросе допустимо в случае, если перед ней находятся только команды, также работающие с внутренними механизмами хранилища. К ним относятся source и search. Это условие должно выполняться и для всех подзапросов в запросе.
Синтаксис
| peval <field>=<expression>["," <field>=<expression>]...
| Параметр | Синтаксис | Описание |
|---|---|---|
field | <string> | Название поле с результатом выполнения операции. |
expression | <expression> | Операция (вычисление) или набор операций (вычислений), которые необходимо выполнить для нового поля. |
Типы данных
eval оперирует со следующими базовыми типами данных и в ответе стремится сохранить исходный или назначаемый тип данных:
stringnumericbooleannullmultivalue
к сведению
Multivalues представляют из себя массивы значений, где каждый элемент - базовый тип.
Особенности для OpenSearch
- Scripts в OpenSearch выполняют обработку по числовым типам полей или же keyword, если поле текстовое. В соответствии с этим для текстовых полей нужно дописывать
<название поля>.keyword. - Регулярные выражения необходимо оборачивать в функцию regex. Она формирует правильное значение для скрипта OpenSearch:
- Синтаксис:
regex("<регулярное выражение>")
- Синтаксис:
- Позволяет выполнять собственные painless-скрипты во время выполнения команды с помощью функции
_script:- Синтаксис:
_script("<script>", (<arg_name>, <arg_value>)...):::
- Синтаксис:
Примеры
Пример №1
source nix_events-*
| search host="SPB-*"
| peval agent= agent.keyword + port
| search agent="*log*77"
| aggs values(per_number) by agent