摘要:近年来,在信息技术快速发展的浪潮推动下,国产数据库与开源数据库迎来了高速发展期,它们很好地契合了国家信创战略以及数据安全方面的要求。从商业数据库向国产数据库或开源免费数据库进行管理软件产品迁移,或者基于客户实际需求构建能够同时支持不同类型数据库的应用体系,已然
以下内容转自:栎偲数智化
近年来,在信息技术快速发展的浪潮推动下,国产数据库与开源数据库迎来了高速发展期,它们很好地契合了国家信创战略以及数据安全方面的要求。从商业数据库向国产数据库或开源免费数据库进行管理软件产品迁移,或者基于客户实际需求构建能够同时支持不同类型数据库的应用体系,已然成为当前信息化行业发展的显著趋势。
(企业管理软件)
然而,这一进程并非一帆风顺。就拿常见的企业管理软件来说,业务迁移并非简单的数据和数据库对象转移,管理软件中存在大量复杂业务逻辑、报表逻辑相关的 SQL 语句,这些语句在不同数据库中的语法和语义存在明显差异,这就使得实时等效转换难度极大,开发人员需要花费大量时间去分析、调整。
目前市面上支持多数据库产品的方式有两种:
一种是大型软件公司通过划分产品线,为不同数据库开发不同版本的软件产品。这种方式需要同时维护多套不同数据库版本的产品,延长了产品研发周期的同时还增加了投入成本。
另一种是部分公司从产品规划初期就定义自家的 SQL 语句规范,使用自定义的 SQL 子集来兼容不同数据库的 SQL 版本。这就要求开发人员额外掌握一套不通用的 SQL 规范,增加了学习成本,并且在一定程度上限制了产品的功能拓展。
由于产品逻辑复杂且有长期的历史沉淀,国内传统 ERP 行业的中小软件公司大多都是以 SQL Server 或 Oracle 作为主要数据库。如今,面对信创友好国产数据库、自主可控开源数据库的兴起,这些企业陷入两难:是推翻重来重新研发以适应新数据库,还是尝试同时支持多个不同数据库版本?
作为深耕 ERP 行业的软件公司,深圳栎偲信息技术有限公司(以下简称“栎偲信息”)开辟出第三条路,成功研发出 Fast SQL Translate 这款 SQL 语句实时翻译引擎,填补了 SQL Server 的联机事务处理SQL语句向MySQL的联机事务处理SQL语句实时语义无损转换这一领域的空白,很快还将实现纯国产数据库(如达梦)、开源数据库(如 PostgreSQL)以及商业数据库(如 Oracle)等不同数据库产品之间联机事务处理语句的自由转换。
(Fast SQL Translate将 SQL Server语句转换为MySQL语句操作演示)
目前Fast SQL Translate 实时翻译引擎已在物业行业资深数智化专家——深圳市极致科技股份有限公司的全线产品中装配并得到深入应用,获得了极佳的使用反馈。
以往在涉及 SQL Server 向 MySQL 转换时,开发人员往往需要手动编写代码来实现。如今借助该引擎,即使不了解两种数据库语言的差异,也能够实现实时语义无损转换,极大地削减了开发人员的学习成本,进而将更多精力与时间投入到核心业务逻辑的开发与优化之中。
Fast SQL Translate 翻译引擎的应用场景非常丰富:
一、日常场景处理
● 数据定义语句等效转换
涵盖增删改数据库、表、字段类型、索引、视图、函数、存储过程、触发器等,确保数据定义操作在不同数据库间无缝转换
● 增删改查语句等效转换
无论语句长度多长、嵌套多复杂,都能精准实现等效转换,满足各类数据操作需求
● 函数等效转换
全部聚合函数、字符函数、日期函数、数学函数、Pivot函数等可实现等效转换,维持数据处理逻辑一致性
● 窗口函数与Top语句等效转换
窗口函数、Top语句在跨数据库时能准确转换,保障数据查询与分析的有效性
(增删改查语句)
二、复杂场景处理
● 特殊函数等效转换
Call、exec、execute、sp_executesql、Nullif、checkindent、col_length、object_id、dbreindex、scope_identity、ident_current函数都能完成等效转换,确保相关功能稳定运行
● 动态 SQL 语句等效转换
利用拼接字符串构建的行转列语句或任意复杂拼装的动态 SQL 语句均可等效转换,无需重新构思和编写
● 临时表转换与清理
局部临时表语句等效转换,全局临时表自动转换为模拟一个TempDB数据库管理的物理表,并配合定时任务清理过期临时表,优化数据库性能
● 全局变量等效转换
全局变量@@Identity、@@rowcount的等效转换,辅助开发人员准确获取操作信息
(数据库物理表)
三、逻辑与流程处理
● 控制语句等效转换
条件判断、普通循环、游标循环、递归循环、控制跳转goto语句等都能顺利在不同数据库环境下转换,保障程序逻辑完整重现
● 错误处理等效转换
RaiseError函数、try.catch捕获错误处理的等效转换,保障系统面对异常能正确响应
● SQL脚本中条件、循环等语句转换处理
针对MySQL和 SQL Server在条件判断、循环语句使用场景差异,自动封装临时存储过程进行转换调用,调用完自动销毁
(处理数据)
四、特殊场景处理
● 元数据表查询语句等效转换
针对sysobjects、sysindex、syscolumns、sysdatabases等元数据表查询语句的转换,便于准确知晓数据库内部的构成情况
● 复杂语句等效转换
With Rollup、For XML Path语句转换后,满足数据统计与交换需求
● 行级锁语句等效转换
行级锁With(updlock)语句转换,在多数据库协同工作场景下确保并发控制机制的有效性
● 自定义函数调用转换
调用用户自定义函数的语句能转换输出同名函数及适配后的函数参数组合,节省开发成本
(多数据库协同工作)
Fast SQL Translate实时翻译引擎不仅使用便捷、转化准确率高,而且转化速度也很快。经测试,它转换50行 SQL 仅需7毫秒,300行仅需35毫秒,1000行仅需100毫秒,5万行仅需10余秒。
栎偲信息 Fast SQL Translate 实时翻译引擎为管理软件中的不同数据库产品的 SQL 语句实时转换或同时支持多家数据库产品提供了可行的路径,不仅有效契合国家信创战略与数据安全方面的要求,助力企业挣脱对单一数据库的束缚,还大幅降低了客户总体拥有成本。
复制下方链接到浏览器打开即可免费体验 Fast SQL Translate:
来源:小宇看科技