<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Databases on Antonio Cortés (DrZippie)</title><link>https://antoniocortes.com/tags/databases/</link><description>Recent content in Databases on Antonio Cortés (DrZippie)</description><generator>Hugo</generator><language>es-es</language><lastBuildDate>Wed, 30 Sep 2026 09:29:23 +0200</lastBuildDate><atom:link href="https://antoniocortes.com/tags/databases/index.xml" rel="self" type="application/rss+xml"/><item><title>Postgres sobre QUIC: el cuello de botella que no está en la base de datos</title><link>https://antoniocortes.com/postgres-quic/</link><pubDate>Wed, 30 Sep 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/postgres-quic/</guid><description>&lt;p&gt;Cualquiera que haya llevado Postgres a producción con algo de carga ha pasado por lo mismo: pones PgBouncer o PgCat delante, configuras el pooling por transacción, limitas las conexiones reales al servidor para que no se quede sin memoria&amp;hellip; y las consultas siguen yendo lentas en los picos, con la base de datos casi sin hacer nada.&lt;/p&gt;
&lt;p&gt;El artículo &lt;a href="https://blogs.lupyd.com/blog/postgres-with-quic/"&gt;Postgres with QUIC&lt;/a&gt; pone el foco en un sitio donde casi nunca miramos: &lt;strong&gt;el tramo entre la aplicación y el pooler&lt;/strong&gt;. Y para arreglarlo prueban algo que no había visto antes: hablar el protocolo de Postgres sobre QUIC en lugar de TCP.&lt;/p&gt;</description></item><item><title>AWS compra DuckLabs: qué cambia y qué no para quienes usamos DuckDB</title><link>https://antoniocortes.com/2026/08/29/aws-compra-ducklabs/</link><pubDate>Sat, 29 Aug 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2026/08/29/aws-compra-ducklabs/</guid><description>&lt;p&gt;El 26 de agosto, Mark Raasveldt y Hannes Mühleisen publicaron &lt;a href="https://duckdb.org/2026/08/26/ducklabs-to-join-aws.html"&gt;una nota muy breve en el blog de DuckDB&lt;/a&gt;: DuckLabs, la empresa detrás de DuckDB, pasa a ser una filial de Amazon Web Services. La operación se cierra a principios de septiembre.&lt;/p&gt;
&lt;p&gt;Lo he leído con más atención de la habitual porque en CARTO llevamos relativamente poco tiempo usando DuckDB, y yo mismo he escrito aquí sobre &lt;a href="https://antoniocortes.com/duckdb-formatos-archivos-optimizacion/"&gt;formatos de archivo y rendimiento&lt;/a&gt; y sobre &lt;a href="https://antoniocortes.com/2026/03/02/duckdb-httpfs-proxy/"&gt;el lío de httpfs detrás de un proxy&lt;/a&gt;. Cuando adoptas una pieza en producción y meses después la compra un hiperescalador, lo mínimo es sentarse a mirar la letra pequeña.&lt;/p&gt;</description></item><item><title>Cinco años conectando data warehouses: lo que he aprendido</title><link>https://antoniocortes.com/2026/08/29/cinco-anos-conectando-data-warehouses/</link><pubDate>Sat, 29 Aug 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2026/08/29/cinco-anos-conectando-data-warehouses/</guid><description>&lt;p&gt;En abril de 2021 hice mi primer commit en el monorepo de la plataforma cloud-native de CARTO. Era el PR número 9, un &lt;code&gt;docker-compose&lt;/code&gt;. Cinco años después he mirado hacia atrás con calma y me he encontrado con unos 450 commits, unos 447 pull requests y presencia en prácticamente todos los servicios del repositorio.&lt;/p&gt;
&lt;p&gt;Lo interesante no son las cifras. Lo interesante es que, revisando ese historial, aparece un hilo conductor que yo mismo no había identificado del todo: he pasado media década conectando la plataforma a data warehouses ajenos. Seis proveedores distintos —BigQuery, Snowflake, Redshift, Databricks, Oracle y PostgreSQL—, cada uno con su propio modelo de credenciales, su pooling, sus timeouts y sus mensajes de error.&lt;/p&gt;</description></item><item><title>DuckDB y httpfs detrás de un proxy: el secreto que nadie te cuenta</title><link>https://antoniocortes.com/2026/03/02/duckdb-httpfs-proxy/</link><pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2026/03/02/duckdb-httpfs-proxy/</guid><description>&lt;h2 id="el-problema-httpfs-ignora-tus-variables-de-entorno"&gt;El problema: httpfs ignora tus variables de entorno&lt;/h2&gt;
&lt;p&gt;Si trabajas con DuckDB y la extensión &lt;code&gt;httpfs&lt;/code&gt; para leer Parquet remotos, CSVs desde S3 o cualquier recurso HTTP, probablemente asumes que las variables de entorno &lt;code&gt;HTTP_PROXY&lt;/code&gt; y &lt;code&gt;HTTPS_PROXY&lt;/code&gt; funcionan igual que en cualquier otra herramienta. Curl las respeta. wget las respeta. Python requests las respeta. Node.js las respeta.&lt;/p&gt;
&lt;p&gt;DuckDB no.&lt;/p&gt;
&lt;p&gt;Me he encontrado con esto trabajando en un entorno corporativo con proxy obligatorio. Tenía un script que leía ficheros Parquet desde Google Cloud Storage usando &lt;code&gt;httpfs&lt;/code&gt;, y simplemente no funcionaba. Sin error claro, sin timeout descriptivo, solo silencio. Mientras tanto, un &lt;code&gt;curl&lt;/code&gt; al mismo recurso con las mismas variables de entorno devolvía los datos sin problema.&lt;/p&gt;</description></item><item><title>Cómo PostgreSQL estima tus consultas (y por qué a veces se equivoca)</title><link>https://antoniocortes.com/postgresql-statistics/</link><pubDate>Fri, 27 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/postgresql-statistics/</guid><description>&lt;p&gt;Toda consulta empieza con un plan. Toda consulta lenta probablemente empieza con uno malo. Y más a menudo de lo que crees, las estadísticas son las culpables.&lt;/p&gt;
&lt;p&gt;Pero ¿cómo funciona realmente? PostgreSQL no ejecuta la consulta para averiguarlo — estima el coste. Lee datos precalculados de &lt;code&gt;pg_class&lt;/code&gt; y &lt;code&gt;pg_statistic&lt;/code&gt; y hace los cálculos para encontrar la ruta más barata hacia tus datos.&lt;/p&gt;
&lt;p&gt;En el escenario ideal, los números que lee son precisos y obtienes el plan que esperas. Pero cuando están desactualizados, la situación se descontrola. El planificador estima 500 filas, planifica un nested loop, y se encuentra con 25,000. Lo que parecía un plan óptimo se convierte en una falla en cascada.&lt;/p&gt;</description></item></channel></rss>