RDMBS
La Source di tipo RDBMS (SQL) in Flowlyze consente di connettersi ai principali database relazionali per estrarre dati tramite una query SQL personalizzabile.
Il connettore è ideale per scenari in cui i dati risiedono in database aziendali e devono essere letti in modo incrementale, parametrico o transazionale.
La query eseguita può essere:
- una semplice SELECT, anche con join e condizioni parametriche;
- oppure una stored procedure complessa che gestisce logiche di business lato database.
All’interno della query è possibile utilizzare variabili globali o parametri incrementali, risolti dinamicamente da Flowlyze (es. {{last_update}}), così da costruire query intelligenti e riutilizzabili.
Connessione
Per stabilire la connessione, è necessario configurare i parametri di accesso principali. Tutti i campi di connessione possono contenere variabili globali o secrets, per garantire sicurezza e flessibilità.
| Campo | Descrizione |
|---|---|
| DB Engine | Specifica il tipo di database relazionale da utilizzare. Flowlyze supporta i principali motori, tra cui MySQL, PostgreSQL, Oracle e Microsoft SQL Server (MSSQL). Il driver e il dialetto SQL vengono adattati automaticamente al motore selezionato. |
| Host | Indirizzo del server database. Può essere un hostname (es. db.example.com) o un indirizzo IP (es. 10.0.0.12). |
| Port | Porta di connessione del database (valori tipici: 3306 per MySQL, 5432 per PostgreSQL, 1433 per MSSQL, 1521 per Oracle). |
| Database | Nome del database (schema) a cui connettersi. Flowlyze utilizza questo valore per eseguire la query nel contesto corretto. |
| Username | Utente con privilegi di lettura (e, se richiesto, di esecuzione stored procedure) sul database. |
| Password | Credenziali di accesso associate all’utente. Si raccomanda di gestire questo valore tramite un secret per motivi di sicurezza. |
Query per selezione dati
La query principale può essere qualsiasi istruzione supportata dal database, scritta nel dialetto SQL specifico del motore scelto.
Flowlyze invia la query in modalità read-only o call procedure, in base alla sintassi utilizzata.
È possibile utilizzare:
- variabili globali (
{{variabile}}) - campi incrementali (es.
{{last_update}}) - limitazioni o paginazioni per ottimizzare la lettura dei dati
Esempi
-- 1. Importa tutti gli ordini
SELECT * FROM orders;
-- 2. Legge solo gli ordini aggiornati dopo l’ultimo valore incrementale
SELECT *`
FROM orders`
JOIN customers ON orders.customer_id = customers.id
WHERE order_update > {{last_update}}
LIMIT 1000;`
-- 3. Esegue una stored procedure che restituisce e marca i dati come “letti”
SELECT * FROM getOrdersAndAcknowledge();
💡 Le variabili (come {{last_update}}) vengono risolte in fase di esecuzione dal motore di Flowlyze, consentendo di implementare logiche di lettura incrementale o contestuale.
Query per l’Aknowdlege (TBD)
Flowlyze supporta inoltre la configurazione di una query di acknowledge, eseguita solo dopo che i dati letti sono stati correttamente ricevuti e confermati all’interno della piattaforma.
Questa query riceve come parametro il set di dati elaborati (fetchedData) e può essere utilizzata per:
- aggiornare flag di stato sui record letti (es.
processed = true), - registrare log di sincronizzazione,
- o eseguire procedure di conferma personalizzate.
Esempio di uso:
{{#set "ids"}}{{#each fetchedData}}{{this.id}}{{#unless @last}},{{/unless}}{{/each}}{{/set}}
UPDATE orders
SET processed = TRUE
WHERE id IN ({{ids}});
-- ovvero Update …. WHERE id in (1,2,3,4)
Questo meccanismo garantisce che i record vengano marcati come “letti” solo dopo l’elaborazione completa del flusso Flowlyze, evitando perdita o duplicazione di dati.