Завдання та передумови
Дати користувачу змогу вибрати регіон і мінімальну суму без редагування самого потоку.
Приклад містить навчальні дані та налаштування. Виберіть власні тестові джерела й підключення замість ідентифікаторів demo_*, відтворіть очікуваний результат і лише потім використовуйте робочі об’єкти.
Навчальні вхідні дані
sales.csv
Order;Region;Amount
O1;North;1200
O2;North;400
O3;South;900
Блоки, зв’язки й точні налаштування
Топологія прикладу 12: 5 блоків, 4 зв’язки. Збережено ідентифікатори вузлів і порти налаштованого графа.
Додайте наведені блоки в конструктор, відкрийте властивості кожного й установіть такі значення. Назви demo_* позначають навчальні джерела та підключення.
| Блок | Налаштування |
|---|---|
| 1 Файл src |
|
| 2 Параметри запуску params |
|
| 3 Фільтрація filter |
|
| 4 Мапінг колонок map |
|
| 5 Вивантаження даних out |
|
Зв’язки портів
- src
out→ paramsin - params
out→ filterin - filter
out→ mapin - map
out→ outin
Повна конфігурація графа 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.
Запуск і перевірка
- Збережіть потік; параметри мають бути перед фільтром у тій самій активній гілці. Після фільтра мапінг залишає тільки Order, Region, Amount.
- Запустіть інтерактивно, залиште North і 500, перевірте O1.
- Повторіть запуск із South; отримайте O3 без зміни графа.
Типові помилки
- Вказуйте parameter_block=params: ім’я поля саме по собі не визначає блок-джерело.
- mode=any пропустить рядки, які відповідають лише одній умові.
- Не називайте параметр Region, бо така колонка вже є у джерелі: блок параметрів додає власні колонки. Для цього використано SelectedRegion.