Earlier quoted context omitted.
even partition elimination is pretty primitive. For Query optimizer Iceberg is really not a primary target. The overall interaction with even technical people gives strong this is a sales org that happens to own an OLAP db product vibe.
I have to very much disagree on that. All pruning techniques in Snowflake work equally well both on their proprietary format as well for Iceberg tables. Iceberg is nowadays a first-class citizen in Snowflake, with pruning working at the file level, row group level, and page level. Same is true for other query optimization techniques. There is even a paper on that: https://arxiv.org/abs/2504.11540 Where pruning differ…
Pg_lake: Postgres with Iceberg and data lake access
121–126 of 126 posts
Re: Pg_lake: Postgres with Iceberg and data lake access
#122Earlier quoted context omitted.
How does this compare to https://www.mooncake.dev/pgmooncake ? It seems there are several projects like this now, with each taking a slightly different approach optimized for different use cases?
Definitely similar goals, from the Mooncake author: https://news.ycombinator.com/item?id=43298145 I think pg_mooncake is still relatively early stage. There's a degree of maturity to pg_lake resulting from our team's experience working on extensions like Citus, pg_documentdb, pg_cron, and many others in the past. For instance, in pg_lake all SQL features and transactions just work, the hybrid query engine can delegat…
Re: Pg_lake: Postgres with Iceberg and data lake access
#123Earlier quoted context omitted.
Locked in? I mean they’re your partner. As long as you’re deriving value from them the partnership is still valuable no?
Not all vendors are same. Snowflake charges an arm and leg for compute. It’s 36x more expensive than equivalent EC2 compute.
Re: Pg_lake: Postgres with Iceberg and data lake access
#124How do you use your data lake? For me it is much more than just storing data, it is just as much for crunching numbers in unpredictable ways. And this is where postgres does not cut it. You need some more CPU and RAM than what you pay for in your postgres instance. I.e. a distributed engine where you don't have to worry about how big your database instance is today.
The point about a datalake is to separate computer and storage. Postgres isn’t a compute layer it’s an access layer. Your compute asks Postgres “what is the current data for these keys?” Or “what was the current data as of two weeks ago for these keys?” And your compute will then download and aggregate your analytics query directly from the parquet files.
My understanding is the opposite - PG cuts it as a compute layer for small amounts of data, and this is where it excels.
I also assume `pg_lake` was built mainly with the intention of creating/writing tables, and the ability to read comes "for free" as an extra, since Iceberg integration is already written.
Re: Pg_lake: Postgres with Iceberg and data lake access
#125Earlier quoted context omitted.
I think I don't understand postgres enough, so forgive this naive question, but what does pushing down to the remote tables mean? Does it allow parallelism? If I query a very large iceberg table, will this system fan the work out to multiple duckdb executors and gather the results back in?
In any query engine you can execute the same query in different ways. The more restrictions that you can apply on the DuckDB side the less data you need to return to Postgres. For instance, you could compute a `SELECT COUNT(*) FROM mytable WHERE first_name = 'David'` by querying all the rows from `mytable` on the DuckDB side, returning all the rows, and letting Postgres itself count the number of results, but this is…
I assume you simply mean DuckDB, being a columnar engine, is more efficient in doing this work than PG is
Re: Pg_lake: Postgres with Iceberg and data lake access
#126What are the deployment implications if one wants to integrate this in production? Surely they'd need a much larger Postgres machine at a minimum.
Is there concern re: "hot neighbour" problems if the DuckDB queries get too heavy? How is that sort of issue potentially handled? I understood from another query that DuckDB is ran in a separate process, so there is room to potentially throttle it