No credit cardStart free
·3 min read·Raw Takes

Your Lakehouse is a Postgres

After registering, open a terminal and type this:

bash
PGPASSWORD=rq_your_api_key psql -h rawquery.dev -p 5433 -U any -d your-workspace

Congratulation, you're in. You just connected to a data lakehouse, DuckDB munching Iceberg tables on S3 like its nothing.

No "please install our connector for your platform." If something speaks Postgres wire protocol, it works. psql, DBeaver, DataGrip, Metabase, Grafana, a Python script with psycopg2, a Go app with pgx. Whatever your team and yourself fancies.

What happens behind the curtain

We wrote a Postgres wire protocol server. When you connect, it does the handshake, grabs your API key from the password field, and opens a session. When you send a query, it forwards the SQL to our Python API, which parses it, runs it through DuckDB against your Iceberg tables, and sends the result back formatted as Postgres wire messages. Row descriptions, data rows, command complete. Your client never knows the difference.

The boring stuff (type mapping, OIDs, error codes) we handle it. A DuckDB INT64 comes back as a Postgres int8. A syntax error comes back with SQLSTATE 42601. Your tooling parses it like it parses any Postgres error.

Why this matters

The data industry has a habit of inventing new interfaces for every new product. New warehouse? New SQL dialect, new driver, new connection method. You end up with a drawer full of proprietary connectors and a README that starts with "first, install our SDK."

We went the other way. Postgres wire protocol has been around for decades. Every language has a mature client for it. Every BI tool supports it out of the box. Most developers have used it at some point. So we plugged into that.

The practical upside: you can point Metabase at rawquery right now, with zero configuration, and it will discover your tables and let you build dashboards. You can write a cron job that runs a query via psql and pipes the output to a Slack channel. Any tool that connects to Postgres connects to rawquery.

Try it

Sign up, grab your API key, open a terminal:

bash
PGPASSWORD=rq_your_api_key psql -h rawquery.dev -p 5433 -U any -d your-workspace
your-workspace=> SELECT * FROM my_stripe.customers LIMIT 5;

If you've used Postgres before, you already know how to use rawquery. That was the whole point.


Raw Takes Short reads on things we built and why they matter. No fluff. No thought leadership. Just the thing.