RDMBS
An RDBMS (SQL) Source connects to relational databases and extracts data using a custom SQL query.
Use it when data resides in enterprise databases and must be read incrementally, parametrically, or transactionally.
The query can be:
- a simple SELECT, with joins and predicates
- a stored procedure that handles business logic server-side
You can use global variables or incremental parameters (e.g., {{last_update}}) resolved dynamically by Flowlyze.
Connection
| Field | Description |
|---|---|
| DB Engine | Database engine (MySQL, PostgreSQL, Oracle, MSSQL). Drivers and SQL dialect adapt automatically. |
| Host | Database hostname or IP. |
| Port | Port (3306 MySQL, 5432 PostgreSQL, 1433 MSSQL, 1521 Oracle). |
| Database | Database/schema name. |
| Username | User with read (and proc) permissions. |
| Password | Use secrets for security. |
Data selection query
Any database-supported statement is allowed. Flowlyze sends the query as read-only or procedure call, depending on the syntax.
Use:
- global variables (
{{variable}}) - incremental fields (e.g.,
{{last_update}}) - limits/pagination to optimize data reading
Examples
-- 1. Import all orders
SELECT * FROM orders;
-- 2. Only orders updated after the last incremental value
SELECT *
FROM orders
JOIN customers ON orders.customer_id = customers.id
WHERE order_update > {{last_update}}
LIMIT 1000;
-- 3. Stored procedure returning and acknowledging data
SELECT * FROM getOrdersAndAcknowledge();
💡 Variables like {{last_update}} are resolved at runtime, enabling incremental/contextual logic.
Acknowledge query (TBD)
You can configure an acknowledge query executed only after the data has been successfully received and confirmed within Flowlyze.
It receives the processed set (fetchedData) and can:
- update processed flags (e.g.,
processed = true) - log synchronization
- run custom confirmation procedures
Example:
{{#set "ids"}}{{#each fetchedData}}{{this.id}}{{#unless @last}},{{/unless}}{{/each}}{{/set}}
UPDATE orders
SET processed = TRUE
WHERE id IN ({{ids}});
-- e.g., WHERE id in (1,2,3,4)
This ensures records are marked “read” only after the end-to-end processing, avoiding loss or duplication.