定义
在 PawSQL 中,数据库支持既包括解析其 SQL 方言的能力,也包括可提供的数据库感知分析深度;支持范围因数据库、版本和部署方式而异。关系型数据库
主流数据库
- MySQL
- PostgreSQL
- MariaDB
- Oracle
- Microsoft SQL Server
- IBM Db2
国产数据库
- openGauss
- GaussDB
- KingbaseES
- 达梦数据库
- MogDB
- SQL 语法与数据类型
- 内置函数
- DDL 语法
- 元数据接口
- 索引机制
- 查询优化器行为
- 执行计划格式
分布式数据库
PawSQL 针对分布式数据库提供专项支持。 在分布式数据库中,SQL 性能不仅取决于访问路径和索引,还会受到数据分布方式以及跨节点执行的影响。 当前支持的分布式数据库包括:- OceanBase
- MySQL 模式
- Oracle 模式
- TDSQL MySQL
- TDSQL PostgreSQL
- TDSQL PostgreSQL 分布式版
- TDSQLx-MySQL
- GoldenDB
- PolarDB-X
- 分布键
- 分片键
- 分片表
- 复制表或广播表
- 跨分片 Join
- 数据重分布
- 本地索引与全局索引
- 分布式执行计划
大数据
Apache Hive
PawSQL 支持 Apache Hive SQL,并针对分布式分析型计算场景提供专项优化规则。 典型支持场景包括:- 分区裁剪检查
- 分桶 Join 分析
- MapJoin 相关优化
COUNT DISTINCT数据倾斜分析GROUP BY数据倾斜分析- 窗口函数数据倾斜分析
- 全局排序与 Top-N 优化
UNION数据倾斜分析- 分布式 SQL 最佳实践检查
兼容性矩阵
下表概览 PawSQL 在不同数据库上的主要能力支持情况。
图例
- ✓ 完整支持
- ◐ 支持,但存在数据库或版本相关限制
- — 不适用或当前暂不支持
上述矩阵反映 PawSQL 的整体产品能力。实际支持范围可能因 PawSQL 版本、数据库版本、部署方式以及是否能够在线获取元数据等因素而有所不同。
数据库支持不仅仅是 SQL 解析
对于 PawSQL 而言,“支持某个数据库”并不只是能够解析其 SQL 语法。 数据库适配通常包括多个层次:在线模式与离线模式
PawSQL 支持在线和离线两种 SQL 分析模式。在线模式
当 PawSQL 可以连接目标数据库时,可自动获取:- 表
- 字段
- 索引
- 视图
- 统计信息
- 数据分布信息
- 执行计划
离线模式
如果生产数据库不允许外部系统直接连接,PawSQL 也可以基于 Schema 信息分析 SQL。 支持的方式包括:- 上传 DDL 文件
- 手工导入 DDL
- 从开发或测试环境导出 Schema
- CI/CD
- SQL 上线门禁
- 上线前 SQL质量检查
- 安全隔离环境
- 数据库迁移
- 金融行业生产环境
版本兼容性
不同数据库版本之间可能存在能力差异,例如:- SQL 语法变化
- 新增数据类型
- 查询优化器行为变化
- 执行计划格式变化
- 元数据接口差异
- 分布式数据库特性差异
兼容数据库发行版
部分数据库基于 MySQL、PostgreSQL 或 openGauss 生态构建。 PawSQL 不会默认认为这些数据库与其上游数据库完全一致。 实际差异可能包括:- 函数
- DDL
- Hint
- 索引
- 系统表
- 分布式语法
- 优化器行为
- 执行计划
功能可用性
具体功能是否可用,可能取决于:- 数据库类型
- 数据库版本
- PawSQL 产品版本
- PawSQL 产品版本对应的功能模块
- 在线或离线模式
- 是否能够获取元数据
- 是否能够获取执行计划
没有找到你的数据库?
如果你的数据库未列在上述列表中,PawSQL 仍可能通过现有兼容层或专项适配提供支持。 常见情况包括:- MySQL 兼容数据库
- PostgreSQL 兼容数据库
- openGauss 兼容数据库
- 行业专用数据库
- 企业定制数据库发行版