Задача и предварительные условия

Объедините два набора продаж в одну таблицу по именам столбцов, даже если их порядок различается.

В примере используются демонстрационные данные и настройки. Проверьте ожидаемый результат в своей среде до подключения рабочих получателей. Идентификаторы demo_* условны: выберите собственные учебные подключения или источники в редакторе. JSON ниже показывает структуру блоков и связей, а не готовый архив потока для переноса.

Учебные входные данные

north.csv

Branch;Amount
North;100
North;40

south.csv

Amount;Branch
80;South

Блоки, связи и точные настройки

Поясняющая схемаУвеличить ↗09. Объединение данных филиалов. Схема примера 09: 4 блока, 3 связи. Идентификаторы узлов и порты настроенной схемы сохранены.
Схема потока 09

Схема примера 09: блоков — 4, связей — 3. Идентификаторы узлов и порты настроенной схемы сохранены.

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

БлокНастройка
1
Файл
north
  • Роль: source
  • Источник: demo_north
  • Настройки чтения:
    • Лист: CSV
    • Диапазон: A1:B3
    • Первая строка — заголовок: так
    • Разделитель: ;
2
Файл
south
  • Роль: source
  • Источник: demo_south
  • Настройки чтения:
    • Лист: CSV
    • Диапазон: A1:B2
    • Первая строка — заголовок: так
    • Разделитель: ;
3
Объединение строк
union
  • Входы:
      • Идентификатор: north
      • Подпись: Північ
      • Идентификатор: south
      • Подпись: Південь
  • Режим: by_name
4
Экспорт данных
out
  • Формат: csv
  • Имя файла: all_branches
  • Назначение: download
  • Разделитель: ;
  • Часовой пояс: Europe/Kyiv

Связи портов

  • north out → union north
  • south out → union south
  • union out → out in
Полная конфигурация схемы в 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"
    }
  ]
}

Ожидаемый результат

BranchAmount
North100
North40
South80

Объединение добавляет строки; оно не суммирует Amount и не удаляет дубли. Результат — 3 строки с общей суммой 220.

Запуск и проверка

  1. Загрузите файлы с разным порядком столбцов, не переставляя их вручную.
  2. Выберите by_name в объединении и два отдельных входа north/south.
  3. Проверьте, что South находится в Branch, а 80 — в Amount.

Частые ошибки

  • mode=position сопоставляет позиции и поменял бы смысл столбцов в этом наборе.
  • Branch и branch — разные имена; сначала согласуйте имена сопоставлением.
  • Если нужны итоги, добавьте группировку после объединения; само объединение их не создаёт.