1. 前言

1.1. 背景

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

1.2. 简介

LightDB 统一SQL 是一个运行时SQL转换库(SDK),支持Java、go、c、c++,用于将 oracle/mysql 的SQL语法转换为其他数据库的SQL语法并且可以在目标数据库执行。目标是降低业务部门适配信创数据库的成本,让用户尽可能少地修改数据访问层代码,实现系统平滑迁移到信创数据库。

1.3. 支持范围

源库

转换目标库

oracle 19c

lightdb_oracle

oracle 19c

postgres 13.5

oracle 19c

oceanbase_oracle 4.2

oracle 19c

oceanbase_mysql 4.2

oracle 19c

达梦 8

oracle 19c

gaussdb_oracle 505.0

oracle 19c

tdsql_mysql

oracle 19c

tdsql_pg_mysql

oracle 19c

sqlite 3.42

oracle 11g

oracle 19c

mysql 8 / mariadb 10

lightdb_mysql

mysql 8 / mariadb 10

oceanbase_oracle 4.2

mysql 8 / mariadb 10

oceanbase_mysql 4.2

mysql 8 / mariadb 10

gaussdb_oracle 500

mysql 8 / mariadb 10

goldendb_mysql

mysql 8 / mariadb 10

oracle 19c

1.4. 主要功能

实现以下功能:

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

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

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

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

1.5. 在线验证

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