Завдання та передумови
Розгорнути місяці бюджетного Excel та записати чотири значення в навчальний куб із явним мапінгом усіх вимірів.
Приклад містить навчальні дані та налаштування. Виберіть власні тестові джерела й підключення замість ідентифікаторів demo_*, відтворіть очікуваний результат і лише потім використовуйте робочі об’єкти.
Навчальні вхідні дані
| Product | Jan | Feb |
|---|---|---|
| Tea | 100 | 120 |
| Coffee | 80 | 90 |
Блоки, зв’язки й точні налаштування
Топологія прикладу 17: 3 блоки, 2 зв’язки. Збережено ідентифікатори вузлів і порти налаштованого графа.
Додайте наведені блоки в конструктор, відкрийте властивості кожного й установіть такі значення. Назви demo_* позначають навчальні джерела та підключення.
| Блок | Налаштування |
|---|---|
| 1 Файл src |
|
| 2 Розгортання колонок (Unpivot) unpivot |
|
| 3 Підключення pa |
|
Зв’язки портів
- src
out→ unpivotin - unpivot
out→ pain
Повна конфігурація графа JSON
{
"version": 3,
"nodes": [
{
"id": "src",
"type": "file",
"label": "src",
"config": {
"role": "source",
"source_id": "demo_pa_budget",
"options": {
"sheet": "Budget",
"range": "A1:C3",
"header": true
}
}
},
{
"id": "unpivot",
"type": "unpivot",
"label": "unpivot",
"config": {
"id_columns": [
"Product"
],
"period_column": "Month",
"unpivot_value_column": "Amount"
}
},
{
"id": "pa",
"type": "connection",
"label": "pa",
"config": {
"role": "target",
"connection_id": "demo_pa",
"object_type": "cube",
"cube": "DemoBudget",
"target_mode": "write",
"mapping": {
"bindings": [
{
"dimension": "Year",
"hierarchy": "Year",
"kind": "constant",
"value": "2026"
},
{
"dimension": "Month",
"hierarchy": "Month",
"kind": "column",
"value": "Month"
},
{
"dimension": "Product",
"hierarchy": "Product",
"kind": "column",
"value": "Product"
},
{
"dimension": "Scenario",
"hierarchy": "Scenario",
"kind": "constant",
"value": "Budget"
},
{
"dimension": "Measure",
"hierarchy": "Measure",
"kind": "constant",
"value": "Revenue"
}
],
"value_column": "Amount",
"value_type": "number",
"decimal": ".",
"blank": "error",
"duplicates": "error",
"portion_cells": 10000,
"response_seconds": 120
},
"cube_write": {
"mode": "replace"
}
}
}
],
"edges": [
{
"source": "src",
"target": "unpivot",
"source_port": "out",
"target_port": "in"
},
{
"source": "unpivot",
"target": "pa",
"source_port": "out",
"target_port": "in"
}
]
}Очікуваний результат
| Year | Month | Product | Scenario | Measure | Value |
|---|---|---|---|---|---|
| 2026 | Jan | Tea | Budget | Revenue | 100 |
| 2026 | Feb | Tea | Budget | Revenue | 120 |
| 2026 | Jan | Coffee | Budget | Revenue | 80 |
| 2026 | Feb | Coffee | Budget | Revenue | 90 |
Чотири клітинки отримують значення 100, 120, 80, 90. Replace замінює значення саме цих клітинок. Попереднє очищення куба не увімкнено.
Запуск і перевірка
- У навчальному кубі DemoBudget створіть виміри Year, Month, Product, Scenario, Measure та наведені елементи; використайте листові елементи, доступні для запису.
- Завантажте Excel, виконайте попередню перевірку мапінгу: 4 координати, жодного невідомого елемента або дубля.
- Запустіть запис у навчальний куб; перевірте клітинки в IBM PA та суму 390.
- Повторіть потік з тими самими даними: replace має зберегти ті самі значення, а не подвоїти бюджет.
Типові помилки
- Якщо куб має додатковий вимір, його також потрібно зіставити.
- Назви Month/Jan/Feb і Product/Tea/Coffee мають відповідати реальним елементам або таблицям відповідностей.
- mode=add додає до поточних клітинок і при повторі може подвоїти значення; тут явно вибрано replace.
- З duplicates=error повторна координата має бути виправлена або свідомо агрегована до запису.