Your Lakehouse is a Postgres
After registering, open a terminal and type this:
PGPASSWORD=rq_your_api_key psql -h rawquery.dev -p 5433 -U any -d your-workspacePGPASSWORD=rq_your_api_key psql -h rawquery.dev -p 5433 -U any -d your-workspaceCongratulation, 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:
PGPASSWORD=rq_your_api_key psql -h rawquery.dev -p 5433 -U any -d your-workspaceyour-workspace=> SELECT * FROM my_stripe.customers LIMIT 5;PGPASSWORD=rq_your_api_key psql -h rawquery.dev -p 5433 -U any -d your-workspaceyour-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.