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