Завдання та передумови
Скласти два набори продажів в одну таблицю за назвами колонок, навіть якщо їхній порядок відрізняється.
Приклад містить навчальні дані та налаштування. Виберіть власні тестові джерела й підключення замість ідентифікаторів demo_*, відтворіть очікуваний результат і лише потім використовуйте робочі об’єкти.
Навчальні вхідні дані
north.csv
Branch;Amount
North;100
North;40
south.csv
Amount;Branch
80;South
Блоки, зв’язки й точні налаштування
Топологія прикладу 09: 4 блоки, 3 зв’язки. Збережено ідентифікатори вузлів і порти налаштованого графа.
Додайте наведені блоки в конструктор, відкрийте властивості кожного й установіть такі значення. Назви demo_* позначають навчальні джерела та підключення.
| Блок | Налаштування |
|---|---|
| 1 Файл north |
|
| 2 Файл south |
|
| 3 Об’єднання (Union) union |
|
| 4 Вивантаження даних out |
|
Зв’язки портів
- north
out→ unionnorth - south
out→ unionsouth - union
out→ outin
Повна конфігурація графа JSON
{
"version": 3,
"nodes": [
{
"id": "north",
"type": "file",
"label": "north",
"config": {
"role": "source",
"source_id": "demo_north",
"options": {
"sheet": "CSV",
"range": "A1:B3",
"header": true,
"delimiter": ";"
}
}
},
{
"id": "south",
"type": "file",
"label": "south",
"config": {
"role": "source",
"source_id": "demo_south",
"options": {
"sheet": "CSV",
"range": "A1:B2",
"header": true,
"delimiter": ";"
}
}
},
{
"id": "union",
"type": "union",
"label": "union",
"config": {
"inputs": [
{
"id": "north",
"label": "Північ"
},
{
"id": "south",
"label": "Південь"
}
],
"mode": "by_name"
}
},
{
"id": "out",
"type": "export",
"label": "out",
"config": {
"format": "csv",
"filename": "all_branches",
"destination": "download",
"delimiter": ";",
"timezone": "Europe/Kyiv"
}
}
],
"edges": [
{
"source": "north",
"target": "union",
"source_port": "out",
"target_port": "north"
},
{
"source": "south",
"target": "union",
"source_port": "out",
"target_port": "south"
},
{
"source": "union",
"target": "out",
"source_port": "out",
"target_port": "in"
}
]
}Очікуваний результат
| Branch | Amount |
|---|---|
| North | 100 |
| North | 40 |
| South | 80 |
Union додає рядки; він не підсумовує Amount і не видаляє дублікати. Результат — 3 рядки, загальна сума 220.
Запуск і перевірка
- Завантажте файли з різним порядком колонок без ручного переставлення.
- У Union виберіть by_name і два окремі входи north/south.
- Перевірте, що South потрапив у Branch, а 80 — у Amount.
Типові помилки
- mode=position зіставляє позиції й для цього набору поміняв би зміст колонок місцями.
- Branch і branch — різні назви; спочатку узгодьте назви мапінгом.
- Якщо потрібні підсумки, після Union додайте Group; сам Union їх не створює.