Задача и предварительные условия
Объедините два набора продаж в одну таблицу по именам столбцов, даже если их порядок различается.
В примере используются демонстрационные данные и настройки. Проверьте ожидаемый результат в своей среде до подключения рабочих получателей. Идентификаторы demo_* условны: выберите собственные учебные подключения или источники в редакторе. JSON ниже показывает структуру блоков и связей, а не готовый архив потока для переноса.
Учебные входные данные
north.csv
Branch;Amount
North;100
North;40
south.csv
Amount;Branch
80;South
Блоки, связи и точные настройки
Схема примера 09: блоков — 4, связей — 3. Идентификаторы узлов и порты настроенной схемы сохранены.
Добавьте перечисленные блоки в конструкторе, откройте свойства каждого и задайте эти значения. Имена demo_* обозначают учебные источники и подключения.
| Блок | Настройка |
|---|---|
| 1 Файл north |
|
| 2 Файл south |
|
| 3 Объединение строк 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 |
Объединение добавляет строки; оно не суммирует Amount и не удаляет дубли. Результат — 3 строки с общей суммой 220.
Запуск и проверка
- Загрузите файлы с разным порядком столбцов, не переставляя их вручную.
- Выберите by_name в объединении и два отдельных входа north/south.
- Проверьте, что South находится в Branch, а 80 — в Amount.
Частые ошибки
- mode=position сопоставляет позиции и поменял бы смысл столбцов в этом наборе.
- Branch и branch — разные имена; сначала согласуйте имена сопоставлением.
- Если нужны итоги, добавьте группировку после объединения; само объединение их не создаёт.