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

dedup

Описание

Оставляет только уникальные записи в результатах по заданным полям.

Синтаксис

| dedup [<int>] <field-list> [sortby <sort-by-clause>]

Обязательные аргументы

ПараметрСинтаксисОписание
<field-list><field> [, <field>]Список полей, по которым должна происходить дедупликация.

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

ПараметрСинтаксисПо умолчаниюОписание
maxnum<int>Без ограничений.Максимальное количество комбинаций для дедупликации.
[sortby <sort-by-clause>]sortby <global-sort-options> (-|+)<sort-field> [(-|+)<sort-field> ...]Уточняющее описание сортировки.

Опции сортировки

ПараметрСинтаксисПо умолчаниюОписание
<global-sort-options>+|-+Сортировка + по возрастанию, - по убыванию.
<sort-field><field> | auto(<field>) | str(<field>) | ip(<field>) | num(<field>)Описание типа сортировки.

Типы сортировки

ПараметрСинтаксисОписаниеЗамечания
<field><field>Имя поля для сортировки.
<auto>auto(<field>)Автоматически определяет каким образом выполнять сортировку.
ipip(<field>)Выполняет сортировку для IP-адресов.
numnum(<field>)Выполняет сортировку поля как цифры.Если поле не содержит цифровое значение, система вернет ошибку.
strstr(<field>)Выполняет сортировку поля как текстовое.Если поле содержит другой тип данных (цифры, даты, boolean-значение), то значения полей будут приведены к тексту.
к сведению

Характер сортировки зависит от типа данных (текст — алфавитный порядок, цифры — возрастание/убывание, даты — раньше/позже и т.д.).


Примеры запросов

Данные примеры демонстрируют различные способы использования команды dedup для удаления дублирующихся записей и получения уникальных данных.

Пример 1

В данном примере команда dedup оставляет только одну запись для каждого уникального значения поля event.

source radius_logs
| dedup event

Пример 2

В данном примере параметр 3 ограничивает число записей, которые могут остаться для одной комбинации значений.

 source radius_logs
| dedup 3 event

Пример 3

Данный пример демонстрирует, что sortby задает порядок выбора записей: сначала по event по убыванию, затем по @timestamp по возрастанию.

Этот пример демонстрирует использование параметра sortby для управления порядком выбора записей при дедупликации. Сортировка выполняется следующим образом:

  • сначала по полю event в порядке убывания
  • затем по полю @timestamp в порядке возрастания
source radius_logs
| dedup event sortby - event +@timestamp

Пример 4

В данном примере используется числовая сортировка через функцию num(). Если поле не содержит число, команда вернет ошибку.

 source radius_logs
| dedup event sortby num(event)