数据库能力差异
不同数据库在数据类型、存储过程、视图、事务和安全上下文方面存在差异。数据墙DBW会尽量提供一致的 API 表面,但部分能力仍取决于底层数据库。
SQL Server
会话上下文
启用 set-session-context 后,数据墙DBW可以在执行查询前设置 SQL 会话上下文,使数据库对象能够读取调用方声明。
json
{
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"options": {
"set-session-context": true
}
}
}启用会话上下文会影响缓存策略,因为不同用户的会话值不能共享同一份缓存响应。
不支持的数据类型
| 数据类型 | 原因 |
|---|---|
geography | 地理空间类型;不支持序列化 |
geometry | 平面空间类型;不支持序列化 |
hierarchyid | 层次数据类型;不支持序列化 |
rowversion | 行版本类型;不包含在 API 响应中 |
sql_variant | 可变类型列;不支持类型推断 |
xml | XML 类型;不支持序列化 |
PostgreSQL
最低版本
需要 PostgreSQL 11 或更高版本。数据墙DBW 使用 Npgsql 连接 PostgreSQL。
不支持的数据类型
| 数据类型 | 备注 |
|---|---|
bytea | 二进制字符串;不支持序列化 |
date | 建议使用 timestamp 或 timestamptz |
time | 不带日期的时间 |
timestamptz | 带时区的时间戳;当前不支持 |
MySQL
最低版本
需要 MySQL 8 或更高版本。
不支持的数据类型
| 数据类型 | 备注 |
|---|---|
geometry | 空间类型;不支持序列化 |
json | 原生 JSON 类型;当前不支持映射 |
set | 枚举集合类型;不支持类型推断 |
time | 不带日期的时间 |
