Skip to main content

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

FieldDescription
DB EngineDatabase engine (MySQL, PostgreSQL, Oracle, MSSQL). Drivers and SQL dialect adapt automatically.
HostDatabase hostname or IP.
PortPort (3306 MySQL, 5432 PostgreSQL, 1433 MSSQL, 1521 Oracle).
DatabaseDatabase/schema name.
UsernameUser with read (and proc) permissions.
PasswordUse 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.