Una de las mayores tendencias en el desarrollo de software actual es el surgimiento de PostgreSQL como el estándar de base de datos de facto. Ha habido algunas publicaciones de blog sobre cómo usar PostgreSQL para todo, pero ninguna todavía sobre por qué sucede esto (y, lo que es más importante, por qué es importante).
¡Hasta ahora!
01 PostgreSQL se está convirtiendo en el estándar de base de datos de facto
02 Todo se está convirtiendo en una computadora
03 El regreso de PostgreSQL
04 Libérese, construya el futuro, adopte PostgreSQL
05 Escala de tiempo iniciada como “PostgreSQL para series temporales”
06 Escala de tiempo ampliada más allá de las series de tiempo
07 Timescale ahora es “PostgreSQL hecho poderoso”
08 Coda: ¿Yoda?
En los últimos meses, "PostgreSQL para todo" se ha convertido en un creciente grito de guerra entre los desarrolladores:
“PostgreSQL no es sólo una simple base de datos relacional; es un marco de gestión de datos con el potencial de abarcar todo el ámbito de las bases de datos. La tendencia de “Usar Postgres para todo” ya no se limita a unos pocos equipos de élite, sino que se está convirtiendo en una de las mejores prácticas habituales”.
(
"Una forma de simplificar su pila y reducir las partes móviles, acelerar el desarrollo, reducir el riesgo y ofrecer más funciones en su startup es" Utilice Postgres para todo ". Postgres puede reemplazar (hasta millones de usuarios) muchas tecnologías backend, entre ellas Kafka, RabbitMQ, Mongo y Redis”.
(
(
“Cuando escuché por primera vez sobre Postgres (en un momento en el que MySQL dominaba por completo), me lo describieron como "esa base de datos creada por esos nerds de las matemáticas", y luego se me ocurrió: sí, esas son exactamente las personas que quieres crear. su base de datos”.
(
Fuente )
“Ha tenido un regreso notable. Ahora que NoSQL está muerto y Oracle es dueño de MySQL, ¿qué más hay?
( Fuente )
“Postgres no es sólo una base de datos relacional. Es un modo de vida."
( Fuente )
Gracias a su base sólida, además de su versatilidad a través de características y extensiones nativas, los desarrolladores ahora pueden usar PostgreSQL para todo, reemplazando arquitecturas de datos complejas y frágiles con una simple simplicidad:
Esto podría ayudar a explicar por qué PostgreSQL el año pasado le quitó el primer puesto a MySQL en el ranking de bases de datos más populares entre los desarrolladores profesionales (60,369 encuestados):
¿En qué entornos de bases de datos ha realizado un extenso trabajo de desarrollo durante el año pasado y en cuáles desea trabajar durante el próximo año? Más del 49 % de los encuestados respondieron PostgreSQL. (
Esos resultados provienen de la Encuesta para desarrolladores de Stack Overflow de 2023. Si analizamos el tiempo, podemos ver el aumento constante en la adopción de PostgreSQL en los últimos años:
Si bien PostgreSQL fue la segunda base de datos favorita de los encuestados para desarrolladores de Stack Overflow entre 2020 y 2022, su uso ha aumentado constantemente. Fuente:
Esta no es sólo una tendencia entre las pequeñas empresas emergentes y los aficionados. De hecho, el uso de PostgreSQL está aumentando en organizaciones de todos los tamaños:
El porcentaje de uso de PostgreSQL por tamaño de empresa. (
En Timescale, esta tendencia no es nueva para nosotros. Hemos sido creyentes de PostgreSQL durante casi una década. Por eso construimos nuestro negocio en PostgreSQL, por eso somos uno de los
Ha habido algunas publicaciones de blog sobre cómo usar PostgreSQL para todo, pero ninguna todavía sobre por qué sucede esto (y, lo que es más importante, por qué es importante).
Hasta ahora.
Pero para entender por qué sucede esto, tenemos que entender una tendencia aún más fundamental y cómo esa tendencia está cambiando la naturaleza fundamental de la realidad humana.
Todo (nuestros automóviles, nuestras casas, nuestras ciudades, nuestras granjas, nuestras fábricas, nuestras monedas, nuestras cosas) se está convirtiendo en una computadora. Nosotros también nos estamos volviendo digitales. Cada año, digitalizamos más nuestra propia identidad y acciones: cómo compramos cosas, cómo nos entretenemos, cómo coleccionamos arte, cómo encontramos respuestas a nuestras preguntas, cómo nos comunicamos y conectamos, cómo expresamos quiénes somos.
Hace veintidós años, esta idea de la “computación ubicua” parecía audaz. En aquel entonces, yo era un estudiante de posgrado en el Laboratorio de IA del MIT y trabajaba en mi
Mucho ha cambiado desde entonces. La informática ahora está en todas partes: en nuestros escritorios, en nuestros bolsillos, en nuestras cosas y en nuestra “nube”. Eso es lo que predijimos.
Pero los efectos de segundo orden de esos cambios no fueron los que la mayoría de nosotros esperábamos:
La computación ubicua ha dado lugar a datos ubicuos . Con cada nuevo dispositivo informático, recopilamos más información sobre nuestra realidad: datos humanos, datos de máquinas, datos comerciales, datos ambientales y datos sintéticos. Estos datos están inundando nuestro mundo.
La avalancha de datos ha provocado una explosión cámbrica de bases de datos . Todas estas nuevas fuentes de datos han requerido nuevos lugares para almacenarlos. Hace veinte años, tal vez había cinco opciones de bases de datos viables. Hoy en día hay varios cientos, la mayoría de ellos especializados en casos de uso o datos específicos, y cada mes surgen otros nuevos.
Más datos y más bases de datos han llevado a una mayor complejidad del software . Elegir la base de datos adecuada para su carga de trabajo de software ya no es fácil. En cambio, los desarrolladores se ven obligados a improvisar arquitecturas complejas que podrían incluir: una base de datos relacional (por su confiabilidad), una base de datos no relacional (por su escalabilidad), un almacén de datos (por su capacidad para realizar análisis), un almacén de objetos ( por su capacidad para archivar datos antiguos de forma económica). Esta arquitectura podría incluso tener componentes más especializados, como una base de datos vectorial o de series temporales.
Más complejidad significa menos tiempo para construir. Las arquitecturas complejas son más frágiles, requieren una lógica de aplicación más compleja, ofrecen menos tiempo para el desarrollo y lo ralentizan. La complejidad no es un beneficio sino un costo real.
A medida que la informática se ha vuelto más ubicua, nuestra realidad se ha entrelazado más con la informática. Hemos traído la informática a nuestro mundo y a nosotros mismos a su mundo. Ya no somos sólo nuestras identidades fuera de línea, sino un híbrido de lo que hacemos en línea y fuera de línea.
Los desarrolladores de software son la vanguardia de la humanidad en esta nueva realidad. Somos nosotros quienes construimos el software que da forma a esta nueva realidad.
Pero los desarrolladores ahora están inundados de datos y ahogados en la complejidad de las bases de datos.
Esto significa que los desarrolladores, en lugar de dar forma al futuro, dedican cada vez más tiempo a gestionar las tuberías.
¿Cómo llegamos aquí?
La computación ubicua ha dado lugar a datos ubicuos. Esto no ocurrió de la noche a la mañana, sino en oleadas en cascada a lo largo de varias décadas:
Con cada ola, las computadoras se han vuelto más pequeñas, más poderosas y más ubicuas. Cada ola también se basó en la anterior: las computadoras personales son mainframes más pequeñas; Internet es una red de computadoras conectadas; los teléfonos inteligentes son computadoras aún más pequeñas conectadas a Internet; la computación en la nube democratizó el acceso a los recursos informáticos; El Internet de las cosas son componentes de teléfonos inteligentes reconstruidos como parte de otras cosas físicas conectadas a la nube.
Pero en las últimas dos décadas, los avances informáticos no sólo se han producido en el mundo físico sino también en el digital, lo que refleja nuestra realidad híbrida:
Con cada nueva ola de informática, obtenemos nuevas fuentes de información sobre nuestra realidad híbrida: escape digital humano, datos de máquinas, datos comerciales y datos sintéticos. Las oleadas futuras crearán aún más datos. Todos estos datos alimentan nuevas olas, la última de las cuales es la IA generativa, que a su vez da forma aún más a nuestra realidad.
Las ondas informáticas no están aisladas sino que caen en cascada como fichas de dominó. Lo que comenzó como un goteo de datos pronto se convirtió en una avalancha de datos. Y luego la avalancha de datos ha llevado a la creación de más y más bases de datos.
Todas estas nuevas fuentes de datos han requerido nuevos lugares para almacenarlos (o bases de datos).
Los mainframes comenzaron con el
El poder colaborativo de Internet permitió el surgimiento del software de código abierto, incluidas las primeras bases de datos de código abierto:
Internet también creó una enorme cantidad de datos, lo que condujo a las primeras bases de datos no relacionales o NoSQL:
Alrededor de 2010, empezamos a llegar a un punto de quiebre. Hasta ese momento, las aplicaciones de software dependían principalmente de una única base de datos (por ejemplo, Oracle, MySQL, PostgreSQL) y la elección era relativamente fácil.
Pero el “Big Data” siguió creciendo: el Internet de las cosas provocó el aumento de los datos de las máquinas; el uso de teléfonos inteligentes comenzó a crecer exponencialmente gracias al iPhone y Android, lo que generó un agotamiento digital aún mayor; La computación en la nube democratizó el acceso a la computación y al almacenamiento, amplificando estas tendencias. Recientemente, la IA generativa empeoró este problema con la creación de datos vectoriales.
A medida que crecía el volumen de datos recopilados, vimos el surgimiento de bases de datos especializadas:
Hace veinte años, tal vez había cinco opciones de bases de datos viables. Hoy hay
Ante esta avalancha y con bases de datos especializadas con una variedad de compensaciones, los desarrolladores no tuvieron más remedio que improvisar arquitecturas complejas.
Estas arquitecturas suelen incluir una base de datos relacional (para mayor confiabilidad), una base de datos no relacional (para escalabilidad), un almacén de datos (para análisis de datos), un almacén de objetos (para archivado económico) e incluso componentes más especializados como una serie de tiempo. o base de datos vectorial para esos casos de uso.
Pero una mayor complejidad significa menos tiempo para construir. Las arquitecturas complejas son más frágiles, requieren una lógica de aplicación más compleja, ofrecen menos tiempo para el desarrollo y lo ralentizan.
Esto significa que, en lugar de construir el futuro, los desarrolladores de software pasan demasiado tiempo manteniendo las tuberías. Aquí es donde estamos hoy.
Hay una mejor manera.
Aquí es donde nuestra historia da un giro. Nuestro héroe, en lugar de ser una nueva y brillante base de datos, es un viejo incondicional, con un nombre que sólo a un desarrollador principal le encantaría: PostgreSQL.
Al principio, PostgreSQL estaba distantemente en segundo lugar detrás de MySQL. MySQL era más fácil de usar, tenía una empresa detrás y un nombre que cualquiera podía pronunciar fácilmente. Pero luego MySQL fue adquirida por Sun Microsystems (2008), que luego fue adquirida por Oracle (2009). Y los desarrolladores de software, que vieron a MySQL como el salvador gratuito de la costosa dictadura de Oracle, comenzaron a reconsiderar qué usar.
Al mismo tiempo, una comunidad distribuida de desarrolladores, patrocinada por un puñado de pequeñas empresas independientes, poco a poco estaba haciendo que PostgreSQL fuera cada vez mejor. Agregaron silenciosamente funciones poderosas, como búsqueda de texto completo (2008), funciones de ventana (2009) y compatibilidad con JSON (2012). También hicieron que la base de datos fuera más sólida, a través de capacidades como replicación de transmisión, espera activa, actualización in situ (2010), replicación lógica (2017) y corrigiendo errores diligentemente y suavizando las asperezas.
Una de las capacidades más impactantes agregadas a PostgreSQL durante este tiempo fue la capacidad de admitir extensiones: módulos de software que agregan funcionalidad a PostgreSQL (2011).
Gracias a las extensiones, PostgreSQL comenzó a convertirse en algo más que una gran base de datos relacional. Gracias a PostGIS, se convirtió en una gran base de datos geoespacial; gracias a TimescaleDB, se convirtió en una gran base de datos de series temporales; hstore, un almacén de valores clave; AGE, una base de datos de gráficos; pgvector, una base de datos vectorial. PostgreSQL se convirtió en una plataforma.
Ahora, los desarrolladores pueden usar PostgreSQL por su confiabilidad, escalabilidad (reemplazando bases de datos no relacionales), análisis de datos (reemplazando almacenes de datos) y más.
Llegados a este punto, el lector inteligente debería preguntarse: “¿Qué pasa con los big data?”. Esa es una pregunta justa. Históricamente, los “grandes datos” (por ejemplo, cientos de terabytes o incluso petabytes) (y las consultas analíticas relacionadas) no han sido adecuados para una base de datos como PostgreSQL que no escala horizontalmente por sí sola.
Eso también está cambiando. En noviembre pasado lanzamos “
Entonces, si bien “Big Data” ha sido históricamente un área de debilidad para PostgreSQL, pronto ninguna carga de trabajo será demasiado grande.
PostgreSQL es la respuesta. PostgreSQL es cómo nos liberamos y construimos el futuro.
En lugar de jugar con varios sistemas de bases de datos diferentes, cada uno con sus propias peculiaridades y lenguajes de consulta, podemos confiar en la base de datos más versátil y, posiblemente, más confiable del mundo: PostgreSQL. Podemos dedicar menos tiempo a la plomería y más tiempo a construir el futuro.
Y PostgreSQL sigue mejorando. La comunidad PostgreSQL continúa mejorando el núcleo. Hay muchas más empresas que contribuyen a PostgreSQL en la actualidad, incluidas las hiperescaladoras.
El ecosistema PostgreSQL actual (
También hay empresas más innovadoras e independientes que se basan en el núcleo para mejorar la experiencia de PostgreSQL:
Y, por supuesto, estamos nosotros,
La historia de Timescale probablemente te suene un poco familiar: estábamos resolviendo algunos problemas de datos de sensores duros para clientes de IoT y nos estábamos ahogando en datos. Para mantenernos al día, creamos una pila compleja que incluía al menos dos sistemas de bases de datos diferentes (uno de los cuales era una base de datos de series temporales).
Un día llegamos a nuestro punto de ruptura. En nuestra interfaz de usuario, queríamos filtrar los dispositivos tanto por tipo de dispositivo como por tiempo de actividad. Esto debería haber sido una simple unión SQL. Pero debido a que estábamos usando dos bases de datos diferentes, fue necesario escribir código adhesivo en nuestra aplicación entre nuestras dos bases de datos. Nos llevaría semanas y todo un sprint de ingeniería realizar el cambio.
Entonces, uno de nuestros ingenieros tuvo una idea loca: ¿por qué no construimos una base de datos de series temporales directamente en PostgreSQL? De esa manera, solo tendríamos una base de datos para todos nuestros datos y podríamos enviar software más rápido. Luego lo construimos y nos hizo la vida mucho más fácil. Luego se lo contamos a nuestros amigos y quisieron probarlo. Y nos dimos cuenta de que esto era algo que necesitábamos compartir con el mundo.
Entonces, abrimos nuestra extensión de series temporales, TimescaleDB, y
En los siete años transcurridos desde entonces, hemos invertido mucho tanto en la extensión como en nuestro servicio en la nube PostgreSQL, ofreciendo una experiencia de desarrollador de PostgreSQL cada vez mejor para series temporales y análisis: consultas 350 veces más rápidas, inserciones 44 % mayores a través de hipertablas (auto- tablas de partición); tiempos de respuesta de milisegundos para consultas comunes a través de agregados continuos (vistas materializadas en tiempo real); Ahorro de costes de almacenamiento superior al 90 % gracias a la compresión de columnas nativa; almacenamiento de objetos infinito y de bajo costo mediante almacenamiento por niveles; y más.
Ahí es donde empezamos, en los datos de series temporales, y también por lo que somos más conocidos.
Pero el año pasado comenzamos a expandirnos.
Lanzamos
Recientemente,
PopSQL es el editor SQL para colaboración en equipo
También lanzamos “
Hoy en día, Timescale es PostgreSQL hecho potente, a cualquier escala. Ahora solucionamos problemas de datos concretos (que nadie más lo hace) no solo en series temporales sino también en inteligencia artificial, energía, juegos, datos de máquinas, vehículos eléctricos, espacio, finanzas, video, audio, web3 y mucho más.
Creemos que los desarrolladores deberían utilizar PostgreSQL para todo y estamos mejorando PostgreSQL para que puedan hacerlo.
Los clientes utilizan Timescale no sólo para sus datos de series temporales sino también para sus datos vectoriales y datos relacionales generales. Usan Timescale para poder usar PostgreSQL para todo. Usted también puede:
Nuestra realidad humana, tanto física como virtual, fuera de línea y en línea, está llena de datos. Como diría Yoda, los datos nos rodean, nos unen. Esta realidad está cada vez más regida por el software, escrito por desarrolladores de software, por nosotros.
Vale la pena apreciar lo extraordinario que es esto. No hace mucho, en 2002, cuando yo era estudiante de posgrado en el MIT, el mundo había perdido la fe en el software. Nos estábamos recuperando del colapso de la burbuja de las puntocom. Las principales publicaciones empresariales proclamaron que “
Pero hoy, especialmente ahora en este mundo de IA generativa, somos nosotros quienes damos forma al futuro. Nosotros somos los futuros constructores. Deberíamos pellizcarnos.
Todo se está convirtiendo en una computadora. Esto ha sido en gran medida algo bueno: nuestros automóviles son más seguros, nuestros hogares son más cómodos y nuestras fábricas y granjas son más productivas. Tenemos acceso instantáneo a más información que nunca. Estamos más conectados entre nosotros. En ocasiones, nos ha hecho más sanos y felices.
Pero no siempre. Al igual que la fuerza, la informática tiene un lado luminoso y otro oscuro. Cada vez hay más pruebas de que los teléfonos móviles y las redes sociales contribuyen directamente a una
Nos hemos convertido en administradores de dos recursos valiosos que afectan la forma en que se construye el futuro: nuestro tiempo y nuestra energía.
Podemos optar por gastar esos recursos en administrar la plomería o adoptar PostgreSQL para todo y construir el futuro correcto.
Creo que sabes dónde estamos.
Gracias por leer. #Postgres4Life
(
Esta publicación fue escrita por Ajay Kulkarni .