Міндет және алғышарттар
Теріс сомалы тапсырыстарды тауып, бақылау тобына екі арна арқылы қысқа есеп жіберу.
Бұл мысал демонстрациялық деректер мен баптауларды қолданады. Өндірістік қабылдаушыларды қоспас бұрын күтілетін нәтижені өз ортаңызда тексеріңіз. Мына идентификаторлар: demo_* мысал ретінде берілген: редакторда өз оқу қосылымдарыңызды немесе дереккөздеріңізді таңдаңыз. Төмендегі JSON дайын тасымалдау архивін емес, блоктар мен байланыстар құрылымын көрсетеді.
Ағынды негізгі алушыларға қоспас бұрын хабар мазмұны мен тіркемелерін сынақ алушыларымен тексеріңіз.
Оқу кіріс деректері
orders.csv
Order;Amount
O1;100
O2;-15
O3;50
Блоктар, байланыстар және нақты баптаулар
20-мысал құрылымы: 6 блок, 5 байланыс. Бапталған графтың түйін идентификаторлары мен порттары сақталған.
Конструкторға көрсетілген блоктарды қосып, әрқайсының қасиеттерін ашыңыз және осы мәндерді орнатыңыз. Мына атаулар: demo_* оқу дереккөздері мен қосылымдарын анықтайды.
| Блок | Баптау |
|---|---|
| 1 Файл src |
|
| 2 Бағыттау router |
|
| 3 Тармақтағыш split |
|
| 4 Электрондық пошта email |
|
| 5 Telegram хабары telegram |
|
| 6 Деректер экспорты valid |
|
Порт байланыстары
- src
out→ routerin - router
invalid→ splitin - router
else→ validin - split
mail→ emailin - split
chat→ telegramin
JSON түріндегі толық граф конфигурациясы
{
"version": 3,
"nodes": [
{
"id": "src",
"type": "file",
"label": "src",
"config": {
"role": "source",
"source_id": "demo_notify_orders",
"options": {
"sheet": "CSV",
"range": "A1:B4",
"header": true,
"delimiter": ";"
}
}
},
{
"id": "router",
"type": "router",
"label": "router",
"config": {
"mode": "first",
"default_route": true,
"routes": [
{
"id": "invalid",
"label": "Від’ємна сума",
"predicates": [
{
"column": "Amount",
"op": "lt",
"value": 0,
"numeric": true,
"value_mode": "constant"
}
]
}
]
}
},
{
"id": "split",
"type": "splitter",
"label": "split",
"config": {
"branches": [
{
"id": "mail",
"label": "Пошта"
},
{
"id": "chat",
"label": "Telegram"
}
]
}
},
{
"id": "email",
"type": "email",
"label": "email",
"config": {
"connection_id": "demo_smtp",
"to": "[email protected]",
"subject": "UBC Data Bridge: винятки {{$date}}",
"body": "Потік {{$flow}}. Кількість винятків: {{$rows}}.\n{{$table}}",
"format": "text",
"time_zone": "Europe/Kyiv"
}
},
{
"id": "telegram",
"type": "telegram",
"label": "telegram",
"config": {
"connection_id": "demo_telegram",
"recipient_type": "auto",
"chats": "-1000000000000",
"text": "Потік {{$flow}}: винятків {{$rows}}.\n{{$table}}",
"parse_mode": "none",
"silent": true,
"time_zone": "Europe/Kyiv"
}
},
{
"id": "valid",
"type": "export",
"label": "valid",
"config": {
"format": "csv",
"filename": "valid_orders",
"destination": "download",
"delimiter": ";",
"timezone": "Europe/Kyiv"
}
}
],
"edges": [
{
"source": "src",
"target": "router",
"source_port": "out",
"target_port": "in"
},
{
"source": "router",
"target": "split",
"source_port": "invalid",
"target_port": "in"
},
{
"source": "router",
"target": "valid",
"source_port": "else",
"target_port": "in"
},
{
"source": "split",
"target": "email",
"source_port": "mail",
"target_port": "in"
},
{
"source": "split",
"target": "telegram",
"source_port": "chat",
"target_port": "in"
}
]
}Күтілетін нәтиже
Оқу жолдары 1 ауытқу береді: O2=-15. invalid тармағы 1 санын және сол жол кестесін қамтитын хат пен хабар жасайды. valid_orders.csv ішінде O1=100 және O3=50 бар. Көрсетілген толтырғыш мекенжайлармен нақты жеткізілім күтілмейді.
Іске қосу және тексеру
- Өз сынақ SMTP және Telegram қосылымдарыңызды жасаңыз; мекенжай мен чат ID мәндерін тек мақұлданған сынақ алушыларымен алмастырыңыз.
- Алдымен алдын ала қарауда бағыттау мен кесте мазмұнын тексеріңіз; екі арна тек O2 алуы керек.
- Нақты сынақ тіркелгі деректерімен оқу іске қосуын орындап, әр қабылдаушы журналын және екі арнадағы жеткізілімді тексеріңіз.
- Теріс сомаларсыз қайта тексеріңіз: invalid тармағы белсенді болмауы және хабар жасалмауы керек.
Жиі қателер
- [email protected] және -1000000000000 — бапталған алушылар емес, толтырғыштар.
- {{Order}} немесе {{$row}} үлгіні жолға тәуелді етеді; көрсетілген үлгі жалпы сан мен кестені қолданады.
- Тегтердегі жарамсыз немесе жоқ өріс атаулары хабар дайындауды тоқтатады.
- silent=true Telegram дыбысын өшіреді; жіберуді тоқтатпайды.
- Бір арнадағы сәтсіз жеткізілім екіншісі ештеңе жібермегенін дәлелдемейді: қайталаудан бұрын жеке күйлерді тексеріңіз.