peval
Описание
Выполняет различные операции над данными. Базируется на внутренних механизмах хранилища.
осторожно
Использование peval
в запросе допустимо в случае, если перед ней находятся только команды, также работающие с внутренними механизмами хранилища. К ним относятся source
и search
. Это условие должно выполняться и для всех подзапросов в запросе.
Синтаксис
| peval <field>=<expression>["," <field>=<expression>]...
Параметр | Синтаксис | Описание |
---|---|---|
field | <string> | Название поле с результатом выполнения операции. |
expression | <expression> | Операция (вычисление) или набор операций (вычислений), которые необходимо выполнить для нового поля. |
Типы данных
eval
оперирует со следующими базовыми типами данных и в ответе стремится сохранить исходный или назначаемый тип данных:
string
numeric
boolean
null
multivalue
к сведению
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