PostgreSQL y Amazon Aurora — Misión
Secciones
Ajustes de lectura
Ninguna voz para este idioma en este navegador.
Más voces
Código y términos técnicos en inglés
Desactivado: la voz de la página lo lee todo, sin pausa entre dos voces.
Ninguna voz para este idioma en este navegador.
Más voces
Más voces: Microsoft Edge ofrece voces naturales en línea, y Windows (Configuración › Hora e idioma › Voz), macOS y Android instalan otras.
Por qué estoy aprendiendo esto
Sección titulada «Por qué estoy aprendiendo esto»He pasado años con SQL Server: T-SQL, SSMS, planes de ejecución, columnas IDENTITY, migraciones de Entity Framework. Cada vez más proyectos que encuentro empiezan en PostgreSQL, a menudo en un servicio gestionado como Amazon Aurora, y me di cuenta de que escribía SQL Server con la sintaxis de PostgreSQL. Funciona, hasta que un nombre de columna tiene una mayúscula, un DateTime vuelve con tres horas de diferencia, o un pool de cien conexiones se encuentra con un servidor que permite cien.
Quiero conocer PostgreSQL tal como es: sus tipos, su SQL, cómo ejecuta las transacciones y usa los índices, cómo replica y cómo se hace su copia de seguridad. Después quiero saber qué cambia Aurora: qué gestiona AWS por mí, qué pierdo y cuánto cuesta.
A quién va dirigido este curso
Sección titulada «A quién va dirigido este curso»Eres desarrollador C# o Java. Conoces el SQL de SQL Server o de otra base de datos: joins, agrupaciones, índices, transacciones. Ya has ejecutado un contenedor. No necesitas conocer PostgreSQL. El lado Java supone el nivel de Java para desarrolladores C#; la lección 4 remite las preguntas de Spring Data a Spring Boot, Spring Cloud y Reactor para desarrolladores C#, y la lección 1 remite las preguntas de contenedores a Contenedores WSL. El curso de DuckDB consulta los mismos datos de CI con un motor analítico: es una buena comparación, no un requisito previo.
SQL Server, PostgreSQL y Aurora en una tabla
Sección titulada «SQL Server, PostgreSQL y Aurora en una tabla»| SQL Server | PostgreSQL | Aurora PostgreSQL | |
|---|---|---|---|
| Licencia | comercial (ediciones Express y Developer gratuitas) | PostgreSQL License, código abierto | un servicio gestionado de AWS, facturado por instancia o unidad de capacidad, almacenamiento y E/S |
| Servidor | un proceso, hilos | un proceso por conexión | el motor de PostgreSQL sobre el almacenamiento distribuido de AWS |
| Nivel superior | instancia → bases de datos → esquemas | clúster → bases de datos → esquemas | DB cluster: un writer, readers, un volumen de almacenamiento compartido |
| Cuenta de administración | sa, sysadmin |
postgres, un superusuario |
un miembro de rds_superuser, nunca un superusuario real |
| Herramienta cliente | sqlcmd, SSMS |
psql, pgAdmin |
psql y la consola de AWS |
| Desde .NET | Microsoft.Data.SqlClient |
Npgsql | Npgsql |
| Desde Java | driver JDBC de Microsoft | driver JDBC de PostgreSQL | driver JDBC de PostgreSQL, o el AWS Advanced JDBC Wrapper |
Los datos
Sección titulada «Los datos»El curso reutiliza datos que este sitio ya publica, en lugar de una tienda o una biblioteca inventada:
- El historial de CI de este sitio, la misma instantánea que el curso de DuckDB: 125 ejecuciones de GitHub Actions, sus 315 jobs y 2204 pasos, exportados el 2026-09-14 en
code/duckdb/data. - Los proyectos .NET de Guitar Alchemist, tal como los extrajo el curso de LadybugDB en el commit
a26a7893: 111 proyectos, sus referencias entre proyectos y sus 478 referencias de paquetes, encode/ladybugdb/data/ga. - Los acordes icónicos de Guitar Alchemist, los 17 acordes de
IconicChords.yamlen el commit32f143c, convertidos a JSON porextract_chords.py.
La lección 2 construye el modelo que cada lección posterior carga desde sql/schema.sql:
erDiagram RUNS ||--o{ JOBS : "tiene" JOBS ||--o{ STEPS : "tiene" PROJECTS ||--o{ PROJECT_REFS : "referencia" PROJECTS ||--o{ PACKAGE_REFS : "usa" RUNS { bigint run_id PK text workflow_name conclusion conclusion timestamptz started_at } JOBS { bigint job_id PK text_array labels interval duration "generada" } STEPS { smallint number PK tstzrange ran "generada" } PROJECTS { text path PK text_array frameworks boolean in_solution } ICONIC_CHORDS { integer chord_id PK pitch_class_array pitch_classes smallint_array guitar_voicing }El esquema ci contiene las tres primeras tablas, el esquema ga las demás.
Al final de este curso, sabré
Sección titulada «Al final de este curso, sabré»- ejecutar PostgreSQL en un contenedor y trabajar en
psql, con bases de datos, esquemas, roles y privilegios; - elegir los tipos de PostgreSQL a propósito:
text,numeric,timestamptz,uuid,jsonb, arrays y rangos, con restricciones, dominios y columnas generadas; - escribir el SQL que PostgreSQL hace mejor que T-SQL: CTE recursivas, funciones de ventana,
LATERAL,DISTINCT ON,RETURNING, upserts yMERGE; - usar PostgreSQL desde C# con Npgsql y EF Core, y desde Java con JDBC y HikariCP, incluidos los pools, las sentencias preparadas y
COPY; - leer un plan de consulta y elegir el índice adecuado: B-tree, GIN, GiST, BRIN, índices parciales y de expresión;
- explicar MVCC, los niveles de aislamiento, los bloqueos y
VACUUM, y reproducir un deadlock; - guardar y buscar JSON y texto, y escribir funciones, triggers y extensiones;
- particionar tablas grandes, replicarlas, hacer copias de seguridad, restaurarlas y actualizarlas;
- ejecutar la misma base de datos en Amazon Aurora PostgreSQL, sabiendo qué difiere, y estimar cuánto cuesta, incluida una migración desde SQL Server.
Cada una de las lecciones 1 a 11 termina con una sección breve sobre lo que cambia en Aurora, según la documentación de AWS; la lección 12 trata de Aurora en sí, con una conmutación por error reproducida en local; la lección 13 traslada una base de datos SQL Server a PostgreSQL, y después describe AWS DMS, Babelfish y los precios de Aurora. Nada de eso se ejecuta en AWS: el curso no crea ningún recurso de AWS, así que todo lo relativo a Aurora está marcado por verificar.
Diario: lo que probé, lo que me sorprendió, lo que aún tengo que verificar.
Recursos
Sección titulada «Recursos»- Documentación de PostgreSQL 18, en particular el tutorial, el lenguaje SQL, los tipos de datos y la administración del servidor
- Notas de versión de PostgreSQL 18
- Referencia de
psql - Documentación de Npgsql y el proveedor EF Core de Npgsql
- Documentación del driver JDBC de PostgreSQL
- Guía del usuario de Amazon Aurora PostgreSQL
- Código fuente: PostgreSQL, la imagen Docker, Npgsql, el proveedor EF Core, el driver JDBC