Завдання та передумови
Прочитати файл продажів із роздільником «;», залишити назви колонок і отримати JSON для наступної інтеграції.
Приклад містить навчальні дані та налаштування. Виберіть власні тестові джерела й підключення замість ідентифікаторів demo_*, відтворіть очікуваний результат і лише потім використовуйте робочі об’єкти.
Навчальні вхідні дані
sales.csv
Order;Product;Qty
O-001;Tea;2
O-002;Coffee;3
Блоки, зв’язки й точні налаштування
Топологія прикладу 01: 2 блоки, 1 зв’язок. Збережено ідентифікатори вузлів і порти налаштованого графа.
Додайте наведені блоки в конструктор, відкрийте властивості кожного й установіть такі значення. Назви demo_* позначають навчальні джерела та підключення.
| Блок | Налаштування |
|---|---|
| 1 Файл src |
|
| 2 Вивантаження даних out |
|
Зв’язки портів
- src
out→ outin
Повна конфігурація графа JSON
{
"version": 3,
"nodes": [
{
"id": "src",
"type": "file",
"label": "src",
"config": {
"role": "source",
"source_id": "demo_sales",
"options": {
"sheet": "CSV",
"range": "A1:C3",
"header": true,
"delimiter": ";"
}
}
},
{
"id": "out",
"type": "export",
"label": "out",
"config": {
"format": "json",
"filename": "sales_json",
"destination": "download",
"delimiter": ";",
"timezone": "Europe/Kyiv"
}
}
],
"edges": [
{
"source": "src",
"target": "out",
"source_port": "out",
"target_port": "in"
}
]
}Очікуваний результат
| Order | Product | Qty |
|---|---|---|
| O-001 | Tea | 2 |
| O-002 | Coffee | 3 |
Файл sales_json.json містить два записи. CSV не задає типів даних: для гарантованого числового типу Qty додайте окреме явне перетворення на число.
Запуск і перевірка
- У «Джерелах» завантажте sales.csv та виберіть його в блоці src.
- Перевірте, що діапазон A1:C3 включає заголовок і два рядки. Збережіть потік.
- Виконайте потік, відкрийте результат експорту та звірте дві пари Order/Product і значення Qty.
Типові помилки
- Якщо всі дані потрапили в одну колонку — вибрано неправильний роздільник.
- Якщо замість Order бачите технічну назву колонки — увімкніть header.
- Не вказуйте A1:C2: другий запис залишиться за межами діапазону.