Фильтрация данных в потоке данных

Используйте этап фильтра в потоке данных, чтобы удалить сообщения, соответствующие условию. Если выражение фильтра оценивается как true, сообщение удаляется. Когда выражение оценивается как false, сообщение проходит до следующего этапа.

Можно определить несколько правил фильтра. Каждое правило задает поля ввода и логическое выражение. Правила используют логику OR: если любое правило оценивается как true, сообщение удаляется.

Настройка фильтра

Каждое правило фильтра имеет следующие свойства:

Недвижимость Обязательный Описание
inputs Да Список путей полей для чтения из входящего сообщения. Назначенные позиционные переменные: первый вход является $1, второй — $2и т. д.
expression Да Логическое выражение вычисляется по каждому сообщению. Если установлено значение true, сообщение удаляется.
description Нет Удобочитаемое пользователем описание правила фильтра.

Использование последнего известного значения

Дополните ввод ? $last, чтобы использовать последнее известное значение, если поле отсутствует в текущем сообщении. Этот подход полезен для разреженных данных, где не каждое сообщение содержит каждое поле.

Примеры

Фильтрация по пороговой значению

Удалите сообщения, в которых температура составляет 20 или ниже:

  1. В разделе «Преобразование (необязательно)» выберите «Фильтр»>«Добавить».

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

  2. Введите следующие параметры:

    Setting Описание
    Условие фильтра temperature <= 20
    Описание Падение значений низкой температуры

    В поле условия фильтра введите значение @ или нажмите CTRL+ПРОБЕЛ, чтобы выбрать точки данных из выпадающего списка.

  3. Нажмите кнопку "Применить".

Фильтрация с последним известным значением

Используйте последнее известное значение температуры, если текущее сообщение не включает его. Удалите сообщения, в которых последняя известная температура составляет 20 или ниже:

В поле условия фильтра введите @temperature ? $last <= 20.

Фильтрация с несколькими условиями

Пропустить сообщения, где произведение температуры и влажности равно 100 000 или больше.

В поле условия фильтра введите @temperature * @humidity >= 100000.

Фильтрация с обогащенными данными

Если вы настроили набор данных обогащения, вы можете использовать обогащенные поля в условиях фильтра. Например, выполните фильтрацию по пределу, связанному с устройством, из набора данных системы хранения состояний:

В настоящее время обогащённая фильтрация недоступна в интерфейсе операций.

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

Несколько правил фильтра

Можно определить несколько правил фильтра. Все правила используют логику OR: если любое правило оценивается как true, сообщение удаляется:

В разделе "Преобразование (необязательно)" выберите "Фильтр>Добавить несколько раз, чтобы добавить дополнительные правила фильтрации.