Over the past few years, several data teams have transitioned from relational databases (e.g., MySQL, Postgres) to data warehouses (e.g., Snowflake, BigQuery) to support their analytics workloads as they grow. However, in this post, Cedric Dussud describes how data teams can use Postgres as their data warehouse (NB. he cautions readers against using their production Postgres instance for analytics). His tips include avoiding common table expressions and indexes (where possible), partitioning tables to improve table scan performance, vacuuming tables after bulk inserts or deletes, and other approaches. He concludes by noting that cloud data warehouses are architected as distributed systems and may be necessary to adopt at a certain scale.