Introducing PG Lake Make

Nov 19, 2025 | Open-Source, snowflake

If you’ve been reading this blog for a while, you know I have a bit of a mantra: keep it boring. We live in an era where “Modern Data Stack” usually translates to “six different SAAS subscriptions and a mortgage payment in cloud credits.” Everyone wants a Data Lakehouse, but nobody wants the complexity that usually comes with setting one up. We’ve got clients at The Mad Botter who need to query massive datasets, but spinning up a full-blown Snowflake instance for a dev environment or a local test is like using a sledgehammer to crack a nut.Sometimes, you just want to run SQL against some Parquet files on your own server. Enter PG Lake Make – my apparently incorrectly cased deployment solution for PG_LAKE. PG Lake Make is an open-source “sandbox” that turns a standard PostgreSQL instance into a functional Data Lakehouse. It lets you query Parquet files sitting in S3-compatible storage directly through Postgres, powered by the incredibly fast DuckDB engine. It’s Dockerized, it’s opinionated, and—most importantly—it’s simple. Just run a simple shell script and you are up.

Under the Hood

I’m aren’t reinventing the wheel here; we’re just putting the best wheels on the same chassis. The project automates the setup of a stack that includes:

  • PostgreSQL: The database we all know and love, equipped with the pg_lake extension.
  • DuckDB: Acts as the engine to process those Parquet files at lightning speed.
  • Object Storage: Your choice of MinIO (the default) or SeaweedFS if you’re feeling adventurous.

The magic happens via the pg_lake extension (shout out to Snowflake Labs). It creates foreign tables in Postgres that map to your Parquet files. When you run a query, Postgres hands off the heavy lifting to DuckDB, which pulls the data from MinIO/SeaweedFS, crunches it, and hands the results back. You get the familiar interface of Postgres with the analytical power of a column-store database.

Why SeaweedFS?

By default, the stack uses MinIO because it’s the standard for S3 compatibility. But I’ve also added support for SeaweedFS. Why? Because I personally prefer it and am a bit of pony, but also because at the edge—where resources are tight and simplicity is king—SeaweedFS is often a lighter, more efficient alternative for distributing files. You can switch to it just by setting MODE=seaweed-fs.

The “So What?”

This isn’t just for playing around (though it is fun). It’s about democratizing the “Lakehouse” concept. You can use this to:

  1. Develop Locally: Test your analytical queries on your MacBook before paying for cloud compute.
  2. Edge Deployment: Run a powerful analytical node on a decent VPS or even a localized server without the cloud overhead.
  3. CI/CD: Spin up a disposable Data Lake for your integration tests.

It’s open-source, it’s available now, and it’s ready for you to break it.

Check it out on GitHub: TheMadBotterINC/PG-Lake-Make

As always, issues and pull requests are welcome. Let’s make our data stacks a little less “cloud native” and a little more “cloud smart.”


More from Mike:

About Me

Hi! I’m Mike! I’m a software engineer who codes at The Mad Botter INC. You might know me from Coder Radio or The Mike Dominick Show.  Drop me a line if you’re interested in having some custom mobile or web development done.

Follow Me

© 2026 Copyright Michael Dominick | All rights reserved