Cross-source SQL is running one SQL query — including JOINs — across more than one data source at once: a PostgreSQL database, a MySQL database, a DuckDB file and your CSV or Excel files, all in the same statement.
Real data is scattered. Orders live in PostgreSQL, the product catalog in MySQL, a segment list in a CSV someone emailed you. A normal SQL client connects to one database at a time, so a query in one connection can't see a table in another — let alone a file. Cross-source SQL removes that wall: point one engine at every source and write a normal query.
A cross-source engine registers each source as a table, reads only the rows a query needs, and computes the join in one place. With a local-first engine like DuckDB, that "one place" is your own machine, using read-only access — nothing is copied into a central database and nothing is written back.
SELECT c.name, s.tier, SUM(o.total) AS revenue
FROM customers c -- CSV
JOIN pg__orders o ON o.customer_id = c.id -- PostgreSQL
JOIN segments s ON s.customer_id = c.id -- CSV
GROUP BY c.name, s.tier;
ETL copies and reshapes data into a warehouse before you can query it. It's the right tool for durable, governed reporting, but it's heavy to build, and the copy is stale the moment a source changes. Cross-source SQL queries the sources live with no copy step — ideal for exploration, one-off questions, and joining data that never shared a database.
They're the same concept. Engines like Trino, Presto and Apache Drill run federated queries across many sources, but they're server systems you have to deploy and operate. A local-first tool brings the same capability to a desktop app: no cluster, no setup — you point it at your sources and query.
Varan is a desktop SQL workspace built on a local DuckDB engine. It runs cross-source SQL over PostgreSQL, MySQL, DuckDB and spreadsheet files, and adds automatic anomaly detection, column lineage and git-style rollback so you can trust and trace the result.
Free during the beta — macOS, Windows and Linux.
Request beta access →