Amazon libero el código fuente de Babelfish para PostgreSQL
Hace poco se dio a conocer la noticia de que Amazon decidió liberar el código fuente de «Babelfish para PostgreSQL «, proponiendo una extensión a la base de datos PostgreSQL con la implementación de capacidades específicas de la base de datos Microsoft SQL Server.
El objetivo clave del proyecto es proporcionar la capacidad de ejecutar aplicaciones escritas para SQL Server en servidores que ejecutan PostgreSQL. El código del proyecto está abierto bajo licencias Apache 2.0 y Licencia PostgreSQL.
Para quienes desconocen de Babelfish, deben saber que este admite el protocolo de red utilizado para conectar clientes a SQL Server, T-SQL y extensiones de lenguaje de consulta específicas de SQL Server, lo que permite traducir aplicaciones en ejecución desde Microsoft SQL Server a PostgreSQL sin modificar su código o con cambios mínimos y sin reemplazar controladores al DBMS. Para las aplicaciones, Babelfish parece un servidor SQL normal. El proyecto ya está en uso en Amazon Aurora.
Hoy, ponemos a disposición Babelfish para Aurora PostgreSQL . Babelfish permite que Amazon Aurora PostgreSQL-Compatible Edition comprenda el protocolo de conexión de SQL Server. Le permite migrar sus aplicaciones de SQL Server a PostgreSQL de forma más barata, más rápida y con menos riesgos relacionados con dicho cambio.
Se afirma que el proyecto Babelfish sigue un modelo de desarrollo abierto que permite a los contribuyentes de la comunidad realizar cambios e influir en el desarrollo. Para los usuarios, el cambio a Babelfish les permitirá evitar regalías significativas por usar SQL Server, eludir las restricciones de licencia y no depender de cambios en la política de mantenimiento de un producto propietario (cancelación de beneficios, terminación del soporte de la plataforma, aumentos de precios).
El proyecto incluye un conjunto de extensiones de PostgreSQL, un conjunto de parches de PostgreSQL y un kit de herramientas de brújula:
Las extensiones proporcionan a PostgreSQL soporte para sintaxis, tipos de datos y funciones adicionales necesarias para migrar desde SQL Server. Se proponen un total de 4 extensiones:
- babelfishpg_tsql: la cual una extensión para poder realizar una implementación del lenguaje T-SQL (Transact-SQL) que aumenta SQL con programación procedimental, soporte de variables locales y funciones avanzadas para manejar cadenas, fechas y expresiones matemáticas. Se han implementado la mayoría de las funciones de T-SQL solicitadas, incluidos los puntos de guardado, los procedimientos almacenados y las transacciones anidadas. Sin embargo, una parte significativa de la sintaxis y las funciones permanece sin realizar (como regla, estas son características que rara vez se utilizan en aplicaciones reales, una tabla de compatibilidad ). Por ejemplo, las construcciones «ADD SIGNATURE», «CREATE AGGREGATE», «CREATE/ALTER/DROP APPLICATION ROLE|ASSEMBLY|ASYMMETRIC KEY», «BEGIN CONVERSATION TIME», «END/MOVE CONVERSATION», etc. aún no están disponibles.
- babelfishpg_tds: una extensión para la implementación del protocolo TDS (Tabular Data Stream) utilizado en SQL Server para la conexión en red entre el DBMS y el cliente. Se admite el protocolo TDS versión 7.1 y superior.
- babelfishpg_common: una extensión para la implementación de tipos de datos específicos de SQL Server.
babelfishpg_money: es una implementación de tipo de dinero basada en el código de extensión FixedDecimal.
Los parches incluyen cambios en el motor PostgreSQL necesarios para proporcionar funcionalidad adicional a las extensiones de Babelfish. Actualmente, junto con los desarrolladores de PostgreSQL, se está trabajando para incluir los parches preparados en la composición principal de PostgreSQL. Parches preparados para PostgreSQL 13.
La utilidad de la brújula está diseñada para analizar los scripts DDL de T-SQL y el código SQL para su compatibilidad con Babelfish. En la salida, se genera un informe qué funcionalidad requerida para iniciar la aplicación aún no es compatible con Babelfish.
Las siguientes bibliotecas cliente para conectarse a MS SQL Server son oficialmente compatibles:
- Proveedor OLEDB/MSOLEDBSQL
- Controlador OLEDB/SQLOLEDB
- Marco de entidad Ado.NET
- Cliente nativo de SQL Server 11.0
- ODBC (conectividad abierta de bases de datos)
JDBC (conectividad de base de datos Java)
Finalmente si estás interesado en conocer más al respecto, puedes consultar los detalles de la nota en el siguiente enlace. En cuanto a los interesados en poder ver el código fuente, pueden hacerlo desde este enlace.