Завдання та передумови

Дати користувачу змогу вибрати регіон і мінімальну суму без редагування самого потоку.

Приклад містить навчальні дані та налаштування. Виберіть власні тестові джерела й підключення замість ідентифікаторів demo_*, відтворіть очікуваний результат і лише потім використовуйте робочі об’єкти.

Навчальні вхідні дані

sales.csv

Order;Region;Amount
O1;North;1200
O2;North;400
O3;South;900

Блоки, зв’язки й точні налаштування

Пояснювальна схемаЗбільшити ↗12. Фільтр із параметром запуску. Топологія прикладу 12: 5 блоків, 4 зв’язки. Збережено ідентифікатори вузлів і порти налаштованого графа.
Схема потоку 12

Топологія прикладу 12: 5 блоків, 4 зв’язки. Збережено ідентифікатори вузлів і порти налаштованого графа.

Додайте наведені блоки в конструктор, відкрийте властивості кожного й установіть такі значення. Назви demo_* позначають навчальні джерела та підключення.

БлокНалаштування
1
Файл
src
  • Роль: source
  • Джерело: demo_param_sales
  • Параметри читання:
    • Аркуш: CSV
    • Діапазон: A1:C4
    • Перший рядок — заголовок: так
    • Роздільник: ;
2
Параметри запуску
params
  • wizard: так
  • Заголовок: Відбір продажів
  • Поля:
      • Назва: SelectedRegion
      • Підпис: Регіон
      • Тип: text
      • Обов’язковий: так
      • Значення: North
      • Назва: MinAmount
      • Підпис: Мінімальна сума
      • Тип: number
      • Обов’язковий: так
      • Значення: 500
3
Фільтрація
filter
  • Режим: all
  • Умови відбору:
      • column: Region
      • Операція: eq
      • value_mode: parameter
      • Блок параметра: params
      • Параметр: SelectedRegion
      • column: Amount
      • Операція: gte
      • Числове порівняння: так
      • value_mode: parameter
      • Блок параметра: params
      • Параметр: MinAmount
4
Мапінг колонок
map
  • Режим: columns
  • Колонки:
      • Назва: Order
      • Значення: Order
      • Назва: Region
      • Значення: Region
      • Назва: Amount
      • Значення: Amount
5
Вивантаження даних
out
  • Формат: csv
  • Ім’я файлу: selected_sales
  • Призначення: download
  • Роздільник: ;
  • Часовий пояс: Europe/Kyiv

Зв’язки портів

  • src out → params in
  • params out → filter in
  • filter out → map in
  • map out → out in
Повна конфігурація графа JSON
{
  "version": 3,
  "nodes": [
    {
      "id": "src",
      "type": "file",
      "label": "src",
      "config": {
        "role": "source",
        "source_id": "demo_param_sales",
        "options": {
          "sheet": "CSV",
          "range": "A1:C4",
          "header": true,
          "delimiter": ";"
        }
      }
    },
    {
      "id": "params",
      "type": "parameters",
      "label": "params",
      "config": {
        "wizard": true,
        "title": "Відбір продажів",
        "fields": [
          {
            "name": "SelectedRegion",
            "label": "Регіон",
            "kind": "text",
            "required": true,
            "value": "North"
          },
          {
            "name": "MinAmount",
            "label": "Мінімальна сума",
            "kind": "number",
            "required": true,
            "value": 500
          }
        ]
      }
    },
    {
      "id": "filter",
      "type": "filter",
      "label": "filter",
      "config": {
        "mode": "all",
        "predicates": [
          {
            "column": "Region",
            "op": "eq",
            "value_mode": "parameter",
            "parameter_block": "params",
            "parameter": "SelectedRegion"
          },
          {
            "column": "Amount",
            "op": "gte",
            "numeric": true,
            "value_mode": "parameter",
            "parameter_block": "params",
            "parameter": "MinAmount"
          }
        ]
      }
    },
    {
      "id": "map",
      "type": "mapping",
      "label": "map",
      "config": {
        "mode": "columns",
        "columns": [
          {
            "name": "Order",
            "value": "Order"
          },
          {
            "name": "Region",
            "value": "Region"
          },
          {
            "name": "Amount",
            "value": "Amount"
          }
        ]
      }
    },
    {
      "id": "out",
      "type": "export",
      "label": "out",
      "config": {
        "format": "csv",
        "filename": "selected_sales",
        "destination": "download",
        "delimiter": ";",
        "timezone": "Europe/Kyiv"
      }
    }
  ],
  "edges": [
    {
      "source": "src",
      "target": "params",
      "source_port": "out",
      "target_port": "in"
    },
    {
      "source": "params",
      "target": "filter",
      "source_port": "out",
      "target_port": "in"
    },
    {
      "source": "filter",
      "target": "map",
      "source_port": "out",
      "target_port": "in"
    },
    {
      "source": "map",
      "target": "out",
      "source_port": "out",
      "target_port": "in"
    }
  ]
}

Очікуваний результат

З SelectedRegion=North і MinAmount=500 виходить лише O1=1200. З SelectedRegion=South і MinAmount=500 виходить лише O3=900.

Запуск і перевірка

  1. Збережіть потік; параметри мають бути перед фільтром у тій самій активній гілці. Після фільтра мапінг залишає тільки Order, Region, Amount.
  2. Запустіть інтерактивно, залиште North і 500, перевірте O1.
  3. Повторіть запуск із South; отримайте O3 без зміни графа.

Типові помилки

  • Вказуйте parameter_block=params: ім’я поля саме по собі не визначає блок-джерело.
  • mode=any пропустить рядки, які відповідають лише одній умові.
  • Не називайте параметр Region, бо така колонка вже є у джерелі: блок параметрів додає власні колонки. Для цього використано SelectedRegion.