Amazon Babelfish helps developers migrate SQL Server apps to the cloud


Amazon has made available Babelfish for Aurora PostgreSQL, a new capability that allows its cloud-based database service to directly support commands for Microsoft SQL Server, making it easier for developers to migrate applications to the service.

According to Amazon, many of its customers have indicated a desire to move away from proprietary database vendors to avoid high costs and burdensome licensing terms. This was one of the reasons why it introduced Amazon Aurora — its fully managed AWS cloud database service that automates tasks such as provisioning, patching, backup, recovery, failure detection and repair.

However, migrating away from commercial and legacy databases can be time-consuming and resource-intensive. Although there are tools to automate the migration of a database schema and data, such as the AWS Schema Conversion Tool and AWS Database Migration Service, migration of the application itself can be problematic and will require the rewriting of code that interacts with the database.

To address this, Babelfish for Aurora PostgreSQL now allows the Amazon Aurora PostgreSQL-Compatible Edition to directly support T-SQL — Microsoft’s proprietary SQL dialect used in SQL Server. This means that application code originally written for SQL Server will require fewer code changes to work with the Aurora database service. As a result, the effort required to migrate applications running on SQL Server to the AWS cloud is reduced. This should lead to faster, lower-risk, and more cost-effective migrations, according to Amazon.

Things are never quite as straightforward as that, of course, and Amazon warns that Babelfish does not support all T-SQL functions right away. For the initial release it has focused on the most common T-SQL commands and returning the correct response or an error message.

Amazon cites the example of the MONEY datatype, which has different characteristics in SQL Server (four decimal places of precision) and PostgreSQL (two decimal places of precision). This difference might lead to rounding errors and have a significant impact on downstream processes such as financial reporting, and so Babelfish implements a MONEY datatype that behaves as SQL Server apps would expect.

Babelfish is a built-in capability of Amazon Aurora, and so does not incur an additional cost. This means that existing Aurora users can simply enable Babelfish through the RDS management console. Babelfish for Aurora PostgreSQL is available in all public AWS Regions. The Babelfish source code is also available on GitHub under both the Apache 2.0 license and PostgreSQL license.