1. 前言

1.1. 背景

恒生聚焦的金融行业业务数据量通常非常大,需要高度安全性和可靠性,并且需要能够快速进行复杂查询和交易处理。以前oracle是金融行业首选的数据库(稳定、高可靠、高性能、安全、市场份额高),但是在信创背景下,国产数据库的崛起正在逐步改变市场格局。恒生越来越多的客户有适配信创数据库的业务需求。虽然oracle数据库主体上遵循SQL92/SQL99标准,但是也有不少特殊的方言、专有的内置函数,适配的难度高。

1.2. 简介

LightDB 统一SQL 是一款基于Go语言开发的用于SQL语句转换中间件,支持将 oracle/mysql 的SQL语法转换为其他数据库的SQL语法并且可以在目标数据库执行。目前支持的目标端数据库包括(postgresql、lightdb_oracle、tdsql_mysql、tdsql_oracle、oceanbase_mysql、oceanbase_oracle、gaussdb_oracle、达梦、opengauss)。目标是降低业务部门适配信创数据库的成本,让用户尽可能少地修改数据访问层代码,实现系统平滑迁移到信创数据库。

1.3. 目标

实现以下功能:

  • 支持目标数据库:postgresql、lightdb_oracle、tdsql_mysql、tdsql_oracle、oceanbase_mysql、oceanbase_oracle、gaussdb_oracle、达梦、opengauss。

  • 将oracle 或 mysql的SQL语法转换为目标数据库的SQL语法

  • 提供java和C客户端,可以支持java应用及C应用调用

  • 转换后的SQL语句在语义上等价于原SQL语句,不引入新的语法错误或逻辑错误

  • 转换后的SQL语句性能不明显退化,满足业务需求

1.4. 在线验证

可以通过 统一SQL在线转换 来快速验证当前统一SQL已支持的功能。