Marco Slot

Marco Slot

@marcoslot.com

Mostly posts about PostgreSQL, Snowflake Postgres, and PostgreSQL extensions. Formerly Crunchy Data, Microsoft, Citus Data, AWS, TCD, VU

1.1K followers356 following95 posts

Pinned

About a year ago, we set out to build a modern Postgres data warehouse at Crunchy Data. Our principles were: - Most data lives in S3 - @duckdb.org has the best query engine - Iceberg will be the dominant table format - No compromise on Postgres features So, we built Crunchy Data Warehouse. 1/n

Crunchy Data@crunchydata.com

Announcing Crunchy Data Warehouse! A next-generation Postgres-native data warehouse that provides full Iceberg support for fast analytical queries and transactions.Read more in our announcement. www.crunchydata.com/blog/crunchy...

Marco Slot reposted

At last @abigalekim.bsky.social's paper is out! Its the most complete eval of DB extensions/plugins ever. We analyze PostgreSQL, MySQL, MariaDB, SQLite, DuckDB, Redis. TLDR: Postgres extns ecosystem is fraught with footguns. Other DBMSs have fewer extns but less problems. DuckDB has cleanest API.

PVLDB@pvldb.bsky.social

Vol:18 No:6 → Anarchy in the Database: A Survey and Evaluation of Database Management System Extensibility 👥 Authors: Abigale Kim, Marco Slot, David Andersen, Andrew Pavlo 📄 PDF: https://www.vldb.org/pvldb/vol18/p1962-kim.pdf

And there it is: Native logical replication from any Postgres server to Iceberg managed by Crunchy Data Warehouse. Speed up Postgres analytical queries 100x with 2 commands.

Crunchy Data@crunchydata.com

Today we're announcing the availability of logical replication from Postgres to Iceberg with Crunchy Data Warehouse. Now you can seamlessly move data and stream changes from your operational database into an analytical system. www.crunchydata.com/blog/logical...

Move fast and build solid solutions that work across platforms. You can now use Postgres as a modern Data Warehouse anywhere, using any S3-compatible storage API. Query, import, or export files in your data lake or store data in Iceberg with automatic maintenance and very fast queries.

Crunchy Data@crunchydata.com

Excited to announce Crunchy Data Warehouse is now available for Kubernetes and On-premises. Need faster analytics from Postgres? Want a native Postgres data lake experience? Learn more about how it works: www.crunchydata.com/blog/crunchy...

Marco Slot reposted

Excited to announce Crunchy Data Warehouse is now available for Kubernetes and On-premises. Need faster analytics from Postgres? Want a native Postgres data lake experience? Learn more about how it works: www.crunchydata.com/blog/crunchy...

crunchydata.comCrunchy Data Warehouse: Postgres with Iceberg Available for Kubernetes and On-premises | Crunchy Data BlogCrunchy Data brings Postgres-native Apache Iceberg to Kubernetes and on-prem workloads.

We weren't really thinking of log management as a target use case, but Iceberg is ideal as the final destination for logs, and having transactions & built-in job scheduling & a fast query engine (& laser focus on developer experience) makes things really simple and cost-effective.

Craig@craigkerstiens.com

I got a number of questions on how we saved $30k a month on cloudwatch by moving logs directly to S3/Iceberg with Postgres so I wrote up how in a bit more detail - www.crunchydata.com/blog/reducin...

Marco Slot reposted

Marco Slot reposted

Excited to announce built-in maintenance for Iceberg via Postgres. Now within Crunchy Data Warehouse we will automatically vacuum and continuously optimize your Iceberg data by compacting and cleaning up files. Dig into the details of how this works www.crunchydata.com/blog/automat...

crunchydata.comAutomatic Iceberg Maintenance Within Postgres | Crunchy Data BlogIceberg can create orphan files during snapshot changes or transaction rollbacks. Crunchy Data Warehouse automatically cleans up the orphan files using a new autovacuum feature.

Imagine your potential customer as a serious company doing serious things, and willing to pay serious money if you can genuinely help them run their business without causing lot of new problems. Then go build products for that customer. This works.

Auto-vacuum for #Iceberg tables is now available in Crunchy Data Warehouse! We're always aiming for a 0-touch experience where possible, so we went out of our way to make Iceberg compaction & cleanup fully automatic without any configuration. Still pretty interesting to see a manual vacuum:

Marco Slot reposted

A big part of building Crunchy Data Warehouse was ease of use. How easy is it to load data from existing public datasets? Step 1: Point at your dataset and we'll load it for you Step 2: Query it Step 3: Profit

ChatGPT Plus had a good run, but looks like Le Chat is going to be my main assistant now. I like that it's fast, to the point, and quite clever. I was impressed with a SQL query it came up with today for finding contiguous ranges of integers. ChatGPT's version was 3x slower.

Postgres is increasingly becoming a versatile data platform, instead of just an operational database. Using pg_parquet you can trivially export data to S3, and using Crunchy Data Warehouse you can just as easily query or import Parquet files from PostgreSQL.

Marco Slot reposted

1/11. ParadeDB is now integrated with Postgres block storage. As far as we know, no one has integrated a search and analytics engine with Postgres storage before. This is a big deal. Here's why we did it, how we did it, and why you should care. 🧵

ParadeDB@paradedb.com

ParadeDB is now integrated with Postgres block storage. Today, we are releasing Part 1 of our 3-part blog series on how we designed a new storage mechanism for search and analytics in Postgres. www.paradedb.com/blog/block_s...

If you've become your company's designated Postgres expert, learning to navigate Postgres source code can be a useful skill, even if you're not a C programmer. For instance, the docs do not specify how the optimizer works, but there is a detailed readme in the source: github.com/postgres/pos...

github.compostgres/src/backend/optimizer at master · postgres/postgresMirror of the official PostgreSQL GIT repository. Note that this is just a *mirror* - we don't work with pull requests on github. To contribute, please see https://wiki.postgresql.org/wiki/Subm...

Marco Slot reposted

Buckle up because we're banging into the new year with my annual retrospective of the last year in databases! Highlights include license change blowback, Databricks vs. Snowflake gangwar, @duckdb.org's shotgun weddings, and buying a quarterback to impress your lover: www.cs.cmu.edu/~pavlo/blog/...

cs.cmu.eduDatabases in 2024: A Year in ReviewAndy rises from the ashes of his dead startup and discusses what happened in 2024 in the database game.

Marco Slot reposted

Woot, woot, #Debezium 3.0.5 is out, which amongst other things also contains my patch for adding support for #Postgres 17 failover slots 🥳. You now can fail over your Debezium CDC connector to a replica turned primary, without missing any events! debezium.io/blog/2024/12...

debezium.ioDebezium 3.0.5.Final ReleasedDebezium is an open source distributed platform for change data capture. Start it up, point it at your databases, and your apps can start responding to all of the inserts, updates, and deletes that ot...

Marco Slot reposted

Well well well: www.crunchydata.com/blog/pg_incr... Incremental pipelines come to Postgres via Crunchy Data! This is like "dbt incremental", not true incremental view maintenance like @materialize.com or Snowflake's dynamic tables, but it's a neat step towards IVM.

crunchydata.compg_incremental: Incremental Data Processing in Postgres | Crunchy Data BlogWe are excited to release a new open source extension called pg_incremental. pg_incremental works with pg_cron to do incremental batch processing for data aggregations, data transformations, or import...
Nikhil Benesch@benesch.bsky.social

Maybe EDB or Crunchy could pull it off, a la Crunchy Data Warehouse. But it’s not clear the business case is sound. IVM means more efficient read workloads, which means customers spend *less* money on Postgres.

End-to-end demo of the new pg_incremental extension. There's raw events table and a summary table containing view counts. You then define a pipeline using an insert..select command, and keeps running that to do fast, reliable, incremental processing in the background.

There are many incremental processing solutions, but they seem to never quite do what I need. I decided to build an extension that just keeps running the same command in Postgres with different parameters to do fast, reliable incremental data processing. That's pg_incremental. 1/n

Crunchy Data@crunchydata.com

We’re excited to release pg_incremental today - a new extension for automated incremental updates. pg_incremental is like a supercharged pg_cron that runs data pipelines, data syncs, rollups, imports and exports. www.crunchydata.com/blog/pg_incr...

View full thread

A pg_cron job checks the current state of the world (e.g. last sequence value), waits for ongoing writes to finish, and then runs the command for unprocessed values if needed. The command runs as a transaction with pg_incremental's own bookkeeping to ensure exactly once processing. 3/n

There are many incremental processing solutions, but they seem to never quite do what I need. I decided to build an extension that just keeps running the same command in Postgres with different parameters to do fast, reliable incremental data processing. That's pg_incremental. 1/n

Crunchy Data@crunchydata.com

We’re excited to release pg_incremental today - a new extension for automated incremental updates. pg_incremental is like a supercharged pg_cron that runs data pipelines, data syncs, rollups, imports and exports. www.crunchydata.com/blog/pg_incr...

pg_incremental defines 3 types of pipelines: sequence pipelines, time interval pipelines, and file list pipelines. Each pipeline type addresses a slightly different scenario, so the blog post has some examples. The foundational idea behind them is the same. 2/n

Marco Slot reposted

how do you all remember every UUID? I find it really hard. so I wrote them all down on every uuid dot com the list has fast search across all 2^122 values (so you can find your favorites) - hoping to add some social features like "trending UUIDs" soon!

Everything gets simpler once you have transactions on Iceberg tables. A useful pattern is to keep track of loaded files in a Postgres table the same transaction that loads the file into Iceberg, such that each file is loaded exactly once www.crunchydata.com/blog/iceberg...

crunchydata.comIceberg ahead! Analyzing Shipping Data in Postgres | Crunchy Data BlogMarco shows off how work with Iceberg and Postgres together in Crunchy Data Warehouse. He creates an Iceberg data set from AIS shipping data, batch loads public data daily, and then runs reports and m...

The transactional piece is the real game changer, especially for data pipelines You can write these little procedures that load data from S3 or http in many different formats (using plain COPY) and store the fact that you loaded the file in the same transaction. Super simple, reliable, repeatable.

Craig@craigkerstiens.com

Want a complete Iceberg + transactional database system in one unified experience? (Postgres) Well we shipped just that last month. The ease of use, yet power underneath really is a game changer for data systems - www.crunchydata.com/blog/crunchy...

Marco Slot reposted