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已支持的功能。