Міндет және алғышарттар

Әр сатылым түсімін есептеп, өңір бойынша қорытынды кесте дайындау.

Бұл мысал демонстрациялық деректер мен баптауларды қолданады. Өндірістік қабылдаушыларды қоспас бұрын күтілетін нәтижені өз ортаңызда тексеріңіз. Мына идентификаторлар: demo_* мысал ретінде берілген: редакторда өз оқу қосылымдарыңызды немесе дереккөздеріңізді таңдаңыз. Төмендегі JSON дайын тасымалдау архивін емес, блоктар мен байланыстар құрылымын көрсетеді.

Оқу кіріс деректері

sales.csv

Region;Qty;Price
North;2;10
North;3;5
South;4;7.5

Блоктар, байланыстар және нақты баптаулар

Түсіндірме схемаҮлкейту ↗07. Түсім және өңірлік қорытындылар. Мысал құрылымы: 4 блок, 3 байланыс. Түйін идентификаторлары мен порттары сақталған.
07-ағын схемасы

07-мысал құрылымы: 4 блок, 3 байланыс. Бапталған графтың түйін идентификаторлары мен порттары сақталған.

Конструкторға көрсетілген блоктарды қосып, әрқайсының қасиеттерін ашыңыз және осы мәндерді орнатыңыз. Мына атаулар: demo_* оқу дереккөздері мен қосылымдарын анықтайды.

БлокБаптау
1
Файл
src
  • Рөл: source
  • Дереккөз: demo_sales_calc
  • Оқу баптаулары:
    • Парақ: CSV
    • Ауқым: A1:C4
    • Алғашқы жол — тақырып: так
    • Бөлгіш: ;
2
Есептелетін өрістер
calc
  • Өрістер:
      • Атау: Revenue
      • Формула: round(number(field("Qty")) * number(field("Price")), 2)
  • Ондық бөлгіш: .
3
Топтау
group
  • Кілттер: Region
  • aggregates:
      • column: Revenue
      • Пайдалану: sum
      • Атау: RevenueTotal
      • column: Revenue
      • Пайдалану: count
      • Атау: Orders
  • Ондық бөлгіш: .
4
Деректер экспорты
out
  • Пішім: xlsx
  • Файл атауы: regional_sales
  • Мақсаты: download
  • Бөлгіш: ;
  • Уақыт белдеуі: Europe/Kyiv

Порт байланыстары

  • src out → calc in
  • calc out → group in
  • group out → out in
JSON түріндегі толық граф конфигурациясы
{
  "version": 3,
  "nodes": [
    {
      "id": "src",
      "type": "file",
      "label": "src",
      "config": {
        "role": "source",
        "source_id": "demo_sales_calc",
        "options": {
          "sheet": "CSV",
          "range": "A1:C4",
          "header": true,
          "delimiter": ";"
        }
      }
    },
    {
      "id": "calc",
      "type": "calculation",
      "label": "calc",
      "config": {
        "fields": [
          {
            "name": "Revenue",
            "expression": "round(number(field(\"Qty\")) * number(field(\"Price\")), 2)"
          }
        ],
        "decimal": "."
      }
    },
    {
      "id": "group",
      "type": "group",
      "label": "group",
      "config": {
        "keys": [
          "Region"
        ],
        "aggregates": [
          {
            "column": "Revenue",
            "op": "sum",
            "name": "RevenueTotal"
          },
          {
            "column": "Revenue",
            "op": "count",
            "name": "Orders"
          }
        ],
        "decimal": "."
      }
    },
    {
      "id": "out",
      "type": "export",
      "label": "out",
      "config": {
        "format": "xlsx",
        "filename": "regional_sales",
        "destination": "download",
        "delimiter": ";",
        "timezone": "Europe/Kyiv"
      }
    }
  ],
  "edges": [
    {
      "source": "src",
      "target": "calc",
      "source_port": "out",
      "target_port": "in"
    },
    {
      "source": "calc",
      "target": "group",
      "source_port": "out",
      "target_port": "in"
    },
    {
      "source": "group",
      "target": "out",
      "source_port": "out",
      "target_port": "in"
    }
  ]
}

Күтілетін нәтиже

RegionRevenueTotalOrders
North352
South301

Топтаудан бұрын есептелген Revenue мәндері — 20, 15 және 30. Жалпы түсім — 65.

Іске қосу және тексеру

  1. Ондық бөлгішті тексеріңіз: 7.5 үшін decimal="." қолданылады.
  2. Есептелетін Revenue өрісін жасап, содан кейін Region бойынша топтаңыз.
  3. Орындап, 35/30 қорытындыларын және 2/1 сандарын тексеріңіз; тек жалпы жол санын салыстырмаңыз.

Жиі қателер

  • Формула еркін код орындамайды: функциялар мен амалдар анықтама каталогынан болуы керек.
  • Бос орны бар атаулар үшін field("Field name") қолданыңыз.
  • Qty немесе Price өрісін топтау кілтіне қосу өңір қорытындысының орнына қосымша топтар жасайды.