sql >> Base de Datos >  >> RDS >> PostgreSQL

Oracle a PostgreSQL:razones para migrar

PostgreSQL tiene bastantes ventajas convincentes, algunas de las cuales no se encuentran en ningún otro sistema de administración de bases de datos. Este artículo describirá los que son más interesantes para el desarrollador de Oracle que busca realizar una migración o investigar alternativas para un nuevo desarrollo.

Para evitar que este artículo se convierta en otra lista de características de PostgreSQL, se ceñirá específicamente a las características que lo diferencian de Oracle y las ventajas que crean esas diferencias.

Federación frente a envoltorios de datos extranjeros

Oracle tiene una función llamada Federación que permite que las tablas de otras bases de datos se traten como datos locales. PostgreSQL eleva esto a un 11 con envoltorios de datos externos. Es fantásticamente superior al sistema de federación, se puede conectar a cualquier cosa que se parezca remotamente a los datos y no cuesta nada en concepto de tarifas. Esto convierte a PostgreSQL en una excelente plataforma ETL, incluso si solo la usa para la ingesta de datos.

plSQL vs. todo lo demás

Oracle tiene un lenguaje de programación incorporado llamado plSQL. PostgreSQL tiene alrededor de 80 o más. En realidad. El sistema de extensión de PostgreSQL se usa para crear lenguajes de procedimiento como complementos, y existen enlaces para casi cualquier lenguaje que se te ocurra. Y si no lo hay, siempre puedes seguir con Mark Wong para saber cómo hacer un envoltorio para tu favorito personal.

Programación de aplicaciones

Oracle proporciona una API de aplicación para comunicarse con la base de datos. PostgreSQL también proporciona una API para lenguajes de confianza y conveniencia. Sin embargo, el producto es de código abierto, por lo que no hay ciudadanos de desarrollo de segunda clase. Puede acceder a todo lo que PostgreSQL tiene para ofrecer al incluir el archivo de encabezado en su proyecto. Haz lo que quieras con él.

Internacionalización y Localización

Oracle proporciona un conjunto de herramientas de globalización. PostgreSQL está construido desde cero para depender completamente de servicios de sistema conocidos y ampliamente compatibles para la localización. Puede utilizar cualquier codificación de caracteres, intercalación y página de códigos que proporcione el sistema operativo.

Desarrollo Web

Oracle reconoce la existencia de HTML a través de HTML DB. PostgreSQL admite de forma nativa JSON, XML y se conecta a Javascript como back-end lenguaje de codificación, que puede usar al mismo tiempo que Java o cualquier otro lenguaje front-end de su elección.

Autenticación

Oracle tiene un sistema de autenticación incorporado (un guiño aquí a Proxy Auth, que es un poco más flexible). PostgreSQL se basa en los protocolos de autenticación basada en host y SASL para conectar cualquier sistema de autenticación que el host pueda admitir, y algunos que se conectan directamente a PostgreSQL. Esto proporciona una enorme variedad de posibilidades de autenticación junto con la posibilidad de descargar el proceso de autenticación en otras máquinas.

Extensibilidad

Oracle tiene un sistema de complementos con complementos en su mayoría propietarios. PostgreSQL tiene un sistema de extensión que es compatible con la comunidad general, con miles de complementos disponibles.

Escalabilidad de lectura

Oracle tiene una escalabilidad de lectura vertical bastante buena. PostgreSQL puede crear un clúster de lectura prácticamente ilimitado. La cantidad de nodos está limitada solo por la cantidad de recursos que le gustaría arrojar.

Costo

Es difícil vencer a "gratis", y Oracle ni siquiera se esfuerza. Seamos realistas, Oracle es ridículamente caro y no les importa volver a cobrarle por cada instancia.

Esta tampoco es una comparación lineal. Una de las mayores ventajas de PostgreSQL es que puedes tener todas las instancias que quieras, sin costo adicional. (Supongo que es un costo adicional de +$0.00, o multiplicado por $0.00, tú decides).

No es justo (para PostgreSQL) comparar el costo de una sola instancia de Oracle con una sola instancia de PostgreSQL. Una vez que pruebe la libertad de lo gratuito, será difícil volver a agrupar todo en una sola instancia solo para reducir costos.

¿Cuánto debería costar una base de datos temporal que transforma los datos de camino al almacén? Creo que gratis es suficiente. ¿Qué tal una base de datos transitoria para informes? Tomaré gratis por eso también. ¿Qué tal uno que sea el punto de ingestión de datos para ETL? Gratis es bueno. Me gusta gratis. Es muy, eh... liberador.

Rendimiento

¡No, espera! Escuchame esta vez. Ya mencioné que PostgreSQL puede crear una cantidad ilimitada de nodos en un clúster de lectura. Eso puede diluir el costo de cualquier operación de lectura en particular a casi cero. Pero también hay otra forma en que PostgreSQL es más eficaz que Oracle.

Dado que PostgreSQL no cuesta nada por nodo, puede ajustarlo de manera diferente para cada carga de trabajo. Por supuesto, también puede hacer esto con Oracle, pero pagará por nodo por la capacidad de ajustarlo de esta manera. Por lo tanto, si desea diferenciar los parámetros de ajuste de su almacén a OLTP para informar al lago de datos, PostgreSQL lo hace bastante fácil y aún así no daña la billetera.

Por supuesto, hay muchas más funciones atractivas en PostgreSQL, pero ya escribí ese artículo hace unos meses. Hágame saber en los comentarios si ha migrado a PostgreSQL por cualquier otro motivo.


No