Curated open-source tools · Python-first · Spanish & English

The catalogue

Nº24 · Storage

PostgreSQL

The reference open-source relational database — reliable and extensible.

Engine / DBIntroData Engineer·Data Scientistsql

What is it?

PostgreSQL is an open-source relational database management system (RDBMS) with over 35 years of active development. It is known for its robustness, SQL standard compliance, and a rich extension ecosystem that pushes its capabilities well beyond classic relational storage. It is free software under the PostgreSQL License (similar to BSD/MIT).

What is it used for?

  • Applications and OLTP. Stores transactional data for web apps, APIs, and business systems. Supports ACID transactions, foreign keys, advanced indexes, and rich data types (JSON, arrays, geometries via PostGIS).
  • Analytics with extensions. Tools like TimescaleDB (time-series) or columnar storage extensions let PostgreSQL handle moderate analytical workloads entirely within SQL.
  • Source for data pipelines. One of the most common origins in modern data stacks: dbt uses it as a transformation target, tools like Airbyte replicate it, and Trino federates it alongside other sources.

When to use it / when not to?

Use it when:

  • you need ACID transactional consistency and well-defined relationships between entities,
  • your application already speaks SQL and you want a solid backend without managing distributed infrastructure,
  • you need a reliable destination for dbt transformations or ETL pipeline loads.

Think twice when:

  • your workload is pure analytics on files (Parquet, CSV, S3) — DuckDB is faster for that and needs no server,
  • you need distributed scale (petabytes, massively parallel queries) — that's where Trino, BigQuery, or similar tools fit,
  • access is mostly read-heavy on historical data — a columnar data warehouse will be significantly more efficient.

Start in 1 minute

Spin up a local instance with Docker:

docker run --name pg-demo \
  -e POSTGRES_PASSWORD=secret \
  -p 5432:5432 \
  -d postgres:16

Connect and run a quick test:

docker exec -it pg-demo psql -U postgres
-- Create a sample table
CREATE TABLE tools (
  id     SERIAL PRIMARY KEY,
  name   TEXT NOT NULL,
  layer  TEXT
);

INSERT INTO tools (name, layer)
VALUES ('PostgreSQL', 'storage'),
       ('dbt', 'transformation'),
       ('Trino', 'query');

SELECT name, layer FROM tools ORDER BY name;

To go deeper, head straight to the official documentation.

Quick trivia — test what you just read.

How much do you know about PostgreSQL?

Official documentation

The source of truth lives there. Here we orient you; the depth is up to you.

Open official docs

What to learn next

See also

KioskoAI mailbox

Anything missing from the PostgreSQL guide?

This decides what gets written next. If it only half-helped, say so.

Type of feedback
0/2000

No spam. Email is optional and only used to reply to you.

Nº24 · Updated 2026-06-08