Microsoft SQL Server 迁移到 PostgreSQL 利器:Babelfish

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: Babelfish for PostgreSQL 加速了将 Microsoft SQL Server 应用程序迁移到 PostgreSQL 的旅程。Babelfish for PostgreSQL 是一个开源项目,可在 Apache 2.0 和 PostgreSQL 许可下使用。它使 PostgreSQL 能够理解来自 Microsoft SQL Server 编写的应用程序的查询。Babelfish 了解 SQL Server 有线协议和 Microsoft SQL Server 查询语言 T-SQL,此您不必切换数据库驱动程序或重新编写所有应用程序查询。

Babelfish for PostgreSQL

Babelfish for PostgreSQL 是一个开源项目,可在 Apache 2.0 和 PostgreSQL 许可下使用。它使 PostgreSQL 能够理解来自 Microsoft SQL Server 编写的应用程序的查询。Babelfish 了解 SQL Server 有线协议和 Microsoft SQL Server 查询语言 T-SQL,因此您不必切换数据库驱动程序或重新编写所有应用程序查询。借助 Babelfish,当前在 SQL Server 上运行的应用程序现在可以直接在 PostgreSQL 上运行,只需更改更少的代码。

Babelfish for PostgreSQL(Babelfish) 是一个工具,让 PostgreSQL 能够理解为Microsoft SQL Server 编写的应用程序的查询。Babelfish 是一组扩展,作为对PostgreSQL 的增强,提供了 T-SQL 功能和一个 Tabular Data Stream(TDS)监听端口。它支持 SQL ServerT-SQL,以及包括保存点、存储过程、嵌套事务等在内的显著功能。

Babelfish 采用开源的 Apache 2.0PostgreSQL 许可证,并构建在现有的PostgreSQL 之上。这种许可证允许您自由使用、修改、分发和销售包含Apache 2.0PostgreSQL 许可证软件的产品。

Babelfish for PostgreSQL 的组成

Babelfish for PostgreSQL 的组成包括以下几个主要部分:

1) Babelfish 核心补丁(Core Patch)

这是针对社区版 PostgreSQL 的补丁,通过对 PostgreSQL 进行修改,使其能够理解 SQL ServerT-SQL 语言和传输协议。这个核心补丁将被提交以纳入未来版本的 PostgreSQL 中。

2) Babelfish 扩展(Extensions)

构建在核心补丁之上的扩展,为 PostgreSQL 增加了 T-SQL 功能和 Tabular Data Stream(TDS) 监听端口。这些扩展是 Babelfish 的关键组成部分,使得 PostgreSQL 能够更好地处理 SQL Server 应用程序的查询和语法。

3) Babelfish Compass 工具

这是一个评估工具,用于分析 Microsoft SQL ServerSQL/DDL 代码,确定Babelfish 的支持水平,并生成一份报告。该报告可帮助用户在从 SQL Server 迁移到 PostgreSQL 的过程中做出决策,提供了对 Babelfish 支持的清晰了解。

这些组成部分协同工作,使得 PostgreSQL 能够更好地与 SQL Server 应用程序进行交互,加速了从 SQL ServerPostgreSQL 的迁移过程。这一体系结构的开放性和可扩展性使得用户能够更轻松地进行数据库迁移,并在需要时扩展功能。

Babelfish 的优势

Babelfish 通过使 SQL Server 应用程序更轻松地迁移到 PostgreSQL,帮助消除昂贵的许可费用。使用Babelfish,最初为 SQL Server 构建的应用程序可以直接在 PostgreSQL 上运行,而只需进行较少的代码更改,无需更改数据库驱动程序。

数据迁移-Migrations

工作原理

SQL

SQL:虽然 SQL 是一种 ANSI 标准,关系数据库因实现规范的支持程度不同以及具有特定的语言扩展而而出名。因此,在 SQL Server 中有效的查询可能不能直接在 PostgreSQL 中运行。为解决这个问题,Babelfish 有自己的解析器,创建适当的查询节点,使得 SQL Server 代码能够在 PostgreSQL 中本地执行。Babelfish 还为 SQL Server 提供了特定的数据类型、函数和运算符,这些在 PostgreSQL 中不存在或在 SQL ServerPostgreSQL 中的工作方式不同。

T-SQL

T-SQLT-SQLSQL Server 的语言,包括 SQL 标准的扩展。具体而言,T-SQL 包括用于存储过程的构造,如变量、异常、控制流等。Babelfish 将对这些构造的支持添加到 PostgreSQL 中。Babelfish 还支持 T-SQL 语义。例如,在传统的 PostgreSQL 中,某些错误会导致回滚,而在 SQL Server 中不会。通过 TDS 端口使用时,Babelfish 确保 PostgreSQL 遵循 SQL Server 的行为,确保正确性。

TDS

TDSSQL Server 的传输协议):Babelfish 还为 SQL Server 的传输协议TDS 添加了支持,该协议默认在端口 1433 上运行。这意味着 Babelfish 使用相同的网络协议、端口和连接驱动程序。这是通过协议挂钩本地实现的,因此它不是一个翻译层。

由于无需更换数据库驱动程序,并且更新 SQL 语言代码的工作量大大减少,使用 BabelfishSQL Server 迁移到 PostgreSQL 的应用程序将比完全迁移到本地 PostgreSQL 驱动程序和 PL/pgSQL 更快地启动和运行。由于Babelfish 是开源的,社区可以在识别迁移中的差距时扩展功能,增强PostgreSQL 的可扩展性,并针对更多用例进行优化。

转载声明:

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
22小时前
|
SQL API 流计算
实时计算 Flink版产品使用合集之在Mac M1下的Docker环境中开启SQL Server代理的操作步骤是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
16 1
|
1天前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之当 SQL Server 源数据库中的数据更新后,CDC 吐出的操作(op)是怎样的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
11 0
|
3天前
|
SQL XML Linux
SQL Server的版本
【5月更文挑战第14天】SQL Server的版本
18 3
|
3天前
|
SQL 关系型数据库 数据管理
Microsoft SQL Server 是微软公司开发的一款关系型数据库管理系统
【5月更文挑战第14天】Microsoft SQL Server 是微软公司开发的一款关系型数据库管理系统
15 2
|
3天前
|
关系型数据库 MySQL 分布式数据库
如何将数据从MySQL迁移到PolarDB?
【5月更文挑战第13天】如何将数据从MySQL迁移到PolarDB?
19 0
|
3天前
|
SQL 存储 数据库连接
LabVIEW与SQL Server 2919 Express通讯
LabVIEW与SQL Server 2919 Express通讯
|
3天前
|
SQL Windows
安装SQL Server 2005时出现对性能监视器计数器注册表值执行系统配置检查失败的解决办法...
安装SQL Server 2005时出现对性能监视器计数器注册表值执行系统配置检查失败的解决办法...
14 4
|
3天前
|
SQL 数据可视化 Oracle
这篇文章教会你:从 SQL Server 移植到 DM(上)
这篇文章教会你:从 SQL Server 移植到 DM(上)
|
3天前
|
SQL 关系型数据库 数据库
SQL Server语法基础:入门到精通
SQL Server语法基础:入门到精通
SQL Server语法基础:入门到精通
|
3天前
|
SQL 存储 网络协议
SQL Server详细使用教程
SQL Server详细使用教程
31 2

相关产品

  • 云原生数据库 PolarDB