Your first federated query
Create a catalog file:
# federiq.yaml
sources:
- name: events
type: parquet
path: ./data/events.parquet
- name: users
type: csv
path: ./data/users.csv
Run a query that joins the two:
federiq query "
SELECT u.name, COUNT(e.id) AS events
FROM users u LEFT JOIN events e ON e.user_id = u.id
GROUP BY u.name
ORDER BY events DESC
LIMIT 10
"
That's it. No cluster. No ETL. The Parquet file and the CSV stay exactly where they are; FederIQ federates the query across both.
Add a Postgres database in two more lines:
- name: sales
type: postgres
dsn: "host=localhost port=5432 dbname=sales user=postgres password=postgres"
Then:
federiq query "
SELECT u.name, SUM(o.total) AS revenue
FROM sales.public.orders o
JOIN users u ON u.id = o.user_id
GROUP BY u.name
"
Next steps
- The catalog file — all source types and options.
- Policies — declare column masks and row filters.
- Running
federiq serve— expose the engine over HTTP.