Curaduría de herramientas open source · Python-first · en español

El catálogo

Nº19 · Almacenamiento

MinIO

Almacenamiento de objetos compatible con S3, para montar tu propio data lake.

AlmacenamientoIntroData Engineer

¿Qué es?

MinIO es un sistema de almacenamiento de objetos open-source, compatible con la API de Amazon S3. Guarda archivos (objetos) dentro de buckets, igual que S3, pero corriendo en tu propio servidor o máquina. Es la capa física donde viven los datos crudos de un data lake — por debajo de los formatos y los motores.

Es importante no confundirlo con una base de datos: MinIO no entiende SQL ni tablas. Solo almacena y sirve archivos de forma masiva, durable y escalable. La estructura (Parquet, Iceberg) y las consultas (Trino, Spark) son otras capas que se apoyan encima de él.

¿Para qué sirve?

  • Montar un data lake propio. Guardas los archivos (normalmente Parquet) de tu lake en MinIO, on-premise o en local, sin depender de un cloud.
  • Backend de almacenamiento para lakehouse. Tablas Iceberg o Delta guardan sus datos como objetos en MinIO.
  • Compatibilidad S3 sin la nube. Como habla la API de S3, herramientas como Spark, Trino o DuckDB leen y escriben en MinIO sin cambiar una línea — ideal para desarrollo local o entornos cerrados.

¿Cuándo usarla / cuándo no?

Úsalo cuando necesitas almacenar archivos a escala (un lake, backups, artefactos) y quieres la compatibilidad S3 sin atarte a un proveedor cloud — o para tener S3 en tu laptop mientras desarrollas.

Piénsalo dos veces para:

  • Datos estructurados que consultas con SQL: eso es trabajo de una base de datos (PostgreSQL) o un motor (Trino) — MinIO solo guarda los archivos, no los consulta.
  • Necesitas el formato, no el almacén: si lo que buscas es cómo guardar los datos eficientemente, eso es Parquet (formato), no MinIO (dónde se guardan).
  • Ya estás en la nube con S3/GCS/Azure Blob gestionados: ahí MinIO añade operación que quizás no necesites.

Empieza en 1 minuto

Levanta MinIO en local con Docker (consola web + API S3 en el puerto 9000):

docker run -d -p 9000:9000 -p 9001:9001 \
  -e MINIO_ROOT_USER=admin \
  -e MINIO_ROOT_PASSWORD=admin12345 \
  minio/minio server /data --console-address ":9001"

Abre la consola en http://localhost:9001 (usuario admin, clave admin12345), crea un bucket y sube un archivo. Desde Python puedes usar el mismo cliente de S3:

pip install boto3

import boto3
s3 = boto3.client("s3", endpoint_url="http://localhost:9000",
                  aws_access_key_id="admin", aws_secret_access_key="admin12345")
s3.create_bucket(Bucket="lake")
s3.upload_file("ventas.parquet", "lake", "ventas.parquet")

Trivia rápida — pon a prueba lo que acabas de leer.

¿Qué tanto sabes de MinIO?

Documentación oficial

La fuente de verdad vive ahí. Acá orientamos; la profundidad la pones tú.

Abrir documentación oficial

Qué aprender después

Ver también

Buzón de KioskoAI

¿Falta algo en la guía de MinIO?

Esto define qué se escribe después. Si algo te sirvió a medias, dilo.

Tipo de comentario
0/2000

Sin spam. El correo es opcional y solo se usa para responderte.

Nº19 · Actualizado 2026-06-25