Passa al contenuto principale

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à.

CampoDescrizione
DB EngineSpecifica 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.
HostIndirizzo del server database. Può essere un hostname (es. db.example.com) o un indirizzo IP (es. 10.0.0.12).
PortPorta di connessione del database (valori tipici: 3306 per MySQL, 5432 per PostgreSQL, 1433 per MSSQL, 1521 per Oracle).
DatabaseNome del database (schema) a cui connettersi. Flowlyze utilizza questo valore per eseguire la query nel contesto corretto.
UsernameUtente con privilegi di lettura (e, se richiesto, di esecuzione stored procedure) sul database.
PasswordCredenziali 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.