Sparround

Verilənlər bazaları və Data Table

Avtomatlaşdırma bir müddət sonra yaddaş tələb edir: nəyin artıq emal olunduğunu, son sinxronizasiyanın harada dayandığını, hansı qeydin hansı vəziyyətdə olduğunu saxlamaq lazım gəlir. n8n-də bunun üçün iki yol var.

Xarici verilənlər bazası — Postgres, MySQL, MongoDB və digərləri üçün hazır node-lar. Postgres node-unun əməliyyatları: Select, Insert, Update, Insert or Update, DeleteExecute Query.

Data Table — n8n-in öz strukturlaşdırılmış cədvəl saxlama imkanı. Xarici baza qaldırmadan sətir əlavə etmək, oxumaq, yeniləmək və upsert etmək olur. Kiçik vəziyyət datası — emal olunmuş ID-lər, kursorlar, konfiqurasiya — üçün ideal aralıq həlldir.

Seçim qaydası: əməliyyat datası (müştərilər, sifarişlər) xarici bazada, workflow-un öz vəziyyəti (nə emal olunub, harada qalmışıq) Data Table-da yaxşı yaşayır.

ƏməliyyatNə edirNə vaxt
SelectSətirləri oxuyur; şərtlər node interfeysindən qurulurSadə oxuma — SQL yazmadan
InsertYeni sətir əlavə edir; sütunları avtomatik və ya əl ilə map etmək olurYeni qeydlərin yazılması
Insert or UpdateUpsert — varsa yeniləyir, yoxdursa əlavə edirƏn vacib əməliyyat: workflow-u idempotent edir
Execute QueryXam SQL icra edir; `$1`, `$2` kimi parametr tokenləri dəstəkləyirJOIN, qruplaşdırma, mürəkkəb hesabat sorğuları
DeleteSətirləri, ya da bütün cədvəli silirEhtiyatla — geri qaytarıla bilməz

SQL injection və query parametrləri. Execute Query əməliyyatında sorğunu expression ilə birləşdirmək cazibədardır, amma təhlükəlidir: gələn data sorğunun strukturunu poza bilər.

Düzgün yol — Query Parameters sahəsindən istifadə etmək. Sorğuda $1, $2 tokenləri yazılır, dəyərlər isə ayrıca ötürülür. Rəsmi sənədləşmə bunu birbaşa deyir: n8n query parametrlərindəki datanı təmizləyir və bu, SQL injection-un qarşısını alır.

Bu, xüsusilə vacibdir, çünki n8n-ə gələn datanın mənbəyi çox vaxt kənardır — webhook, forma, e-poçt. Kənardan gələn hər şey etibarsız sayılmalıdır.

Postgres node-unda Query Batching parametri var: sorğuları bir sorğuda birləşdirmək, ya da ayrı-ayrı göndərmək olar. Yüzlərlə item-i bazaya yazanda bu parametr performansa ciddi təsir edir — hər item üçün ayrıca sorğu göndərmək ən yavaş variantdır.

📚 Mənbələr və sənədlər