文档首页 / 支持的数据库

支持的数据库

数据连接可选的 31 种数据库类型、内置驱动、JDBC URL 模板、默认端口与使用注意事项。

概述

赛特数据的「数据连接」通过 JDBC 连接关系型数据库。数据库类型清单由后端 DatabaseProduct 登记表统一维护,前端「数据库类型」下拉框从接口 GET /datasource/types 读取,因此下拉框里出现的类型就是当前版本登记的全部类型,共 31 种。

31 种类型按驱动情况分为两组:

  • 驱动已随安装包内置,可直接使用:18 种。
  • 下拉框中带「(需上传驱动)」标记:13 种,需要在「驱动管理」中上传对应的 JDBC 驱动 JAR。

以上数量按登记表与安装包 sight-report.jar 的 BOOT-INF/lib 内驱动 JAR 逐项核对得出,不同版本的安装包可能不同,以「数据连接 > 驱动管理」页面显示的「状态」为准。

注意:数据连接目前只支持 JDBC 类型。API 接口、JSON 等数据来源不是数据连接,而是数据集类型,见 API 数据集。

功能入口

  1. 登录后台,进入「系统」菜单下的「数据连接」(路由 /datasource)。
  2. 在「数据连接」标签页点击「新建数据连接」,「数据库类型」下拉框即为本文清单。
  3. 需要查看驱动是否可用,切换到「驱动管理」标签页。

内置驱动的数据库

下表的 URL 模板抄自登记表,{host}、{port}、{databaseName} 由表单字段自动替换。「测试 SQL」是连接池校验默认使用的语句。

数据库类型 类型编码 默认端口 JDBC URL 模板 测试 SQL
MySQL mysql 3306 jdbc:mysql://{host}:{port}/{databaseName} SELECT 1
Oracle oracle 1521 jdbc:oracle:thin:@//{host}:{port}/{databaseName} SELECT 1 FROM DUAL
PostgreSQL postgresql 5432 jdbc:postgresql://{host}:{port}/{databaseName} SELECT 1
SQL Server sqlserver 1433 jdbc:sqlserver://{host}:{port};databaseName={databaseName} SELECT 1
IBM DB2 db2 50000 jdbc:db2://{host}:{port}/{databaseName} SELECT 1 FROM SYSIBM.SYSDUMMY1
SQLite sqlite 无 jdbc:sqlite:{databaseName} SELECT 1
H2 h2 9092 jdbc:h2:tcp://{host}:{port}/{databaseName} SELECT 1
HSQLDB hsql 9001 jdbc:hsqldb:hsql://{host}:{port}/{databaseName} SELECT 1 FROM INFORMATION_SCHEMA.SYSTEM_USERS
Informix informix 9088 jdbc:informix-sqli://{host}:{port}/{databaseName} SELECT FIRST 1 1 FROM systables
MariaDB mariadb 3306 jdbc:mariadb://{host}:{port}/{databaseName} SELECT 1
ClickHouse clickhouse 8123 jdbc:clickhouse://{host}:{port}/{databaseName} SELECT 1
人大金仓 kingbase 54321 jdbc:kingbase8://{host}:{port}/{databaseName} SELECT 1
达梦 dm 5236 jdbc:dm://{host}:{port}/{databaseName} SELECT 1 FROM DUAL
华为 GaussDB gaussdb 8000 jdbc:opengauss://{host}:{port}/{databaseName} SELECT 1
OceanBase oceanbase 2881 jdbc:oceanbase://{host}:{port}/{databaseName} SELECT 1
Greenplum greenplum 5432 jdbc:postgresql://{host}:{port}/{databaseName} SELECT 1
Apache Doris doris 9030 jdbc:mysql://{host}:{port}/{databaseName} SELECT 1
StarRocks starrocks 9030 jdbc:mysql://{host}:{port}/{databaseName} SELECT 1

其中 SQLite 的「数据库名称」填写数据库文件路径,没有主机与端口。

「驱动管理」页签中的内置驱动列表

需要上传驱动的数据库

下表 13 种类型在下拉框中显示「(需上传驱动)」。上传方法见 驱动管理与连接池。

数据库类型 类型编码 默认端口 JDBC URL 模板
Apache Derby derby 1527 jdbc:derby://{host}:{port}/{databaseName}
南大通用 GBase 8a gbase 5258 jdbc:gbase://{host}:{port}/{databaseName}
南大通用 GBase 8s gbase8s 9088 jdbc:gbasedbt-sqli://{host}:{port}/{databaseName}
海量 Vastbase G100 vastbase 5432 jdbc:vastbase://{host}:{port}/{databaseName}
阿里云 PolarDB(MySQL 版) polardb 3306 jdbc:mysql://{host}:{port}/{databaseName}
TiDB tidb 4000 jdbc:mysql://{host}:{port}/{databaseName}
中兴 GoldenDB goldendb 3306 jdbc:goldendb://{host}:{port}/{databaseName}
瀚高 highgo 5866 jdbc:highgo://{host}:{port}/{databaseName}
虚谷 xugu 5138 jdbc:xugu://{host}:{port}/{databaseName}
神通 oscar 2003 jdbc:oscar://{host}:{port}/{databaseName}
Apache Hive hive 10000 jdbc:hive2://{host}:{port}/{databaseName}
Trino trino 8080 jdbc:trino://{host}:{port}/{databaseName}
Presto presto 8080 jdbc:presto://{host}:{port}/{databaseName}

PolarDB 与 TiDB 的 URL 使用 jdbc:mysql 前缀,而安装包已内置 MySQL 驱动,实际连接时通常可以直接使用。这两项仍会显示「(需上传驱动)」,是登记表的标记,不代表一定连不上。

Apache Derby 登记的驱动类(AutoloadedDriver、EmbeddedDriver)不在安装包内置的 derbyclient 中,因此归入需上传一组。

各数据库的注意事项

内置驱动版本

安装包内置的驱动 JAR 及版本如下(取自 apps/backend/pom.xml 与打包产物):

驱动 版本 对应类型
mssql-jdbc 13.2.1.jre11 SQL Server
mysql-connector-j 9.1.0 MySQL、Apache Doris、StarRocks
ojdbc11 23.5.0.24.07 Oracle
mariadb-java-client 3.4.2 MariaDB
postgresql 42.7.5 PostgreSQL、Greenplum
h2 2.2.224 H2
hsqldb 2.7.4 HSQLDB
DmJdbcDriver18 8.1.3.140 达梦
kingbase8 8.6.0 人大金仓
clickhouse-jdbc 0.6.5 ClickHouse
sqlite-jdbc 3.45.1.0 SQLite
opengauss-jdbc 5.1.0 华为 GaussDB
oceanbase-client 2.4.12 OceanBase
db2 jcc 11.5.9.0 IBM DB2
informix jdbc 4.50.10 Informix
derbyclient 10.16.1.1 不满足 Derby 登记的驱动类,见上文

Oracle

表单多出「连接模式」,可选「服务名 (Service Name)」或「SID」。服务名模式生成 jdbc:oracle:thin:@//host:port/name,SID 模式生成 jdbc:oracle:thin:@host:port:sid。Oracle 的「模式名称」以 ?currentSchema= 形式附加。

SQL Server

分隔符为分号:数据库名写在 ;databaseName= 中,「扩展参数」也以 ;k=v 形式追加。trustServerCertificate 参数允许使用。

Informix 与 GBase 8s

扩展参数的第一个以 :k=v 追加,之后以 ; 分隔。数据库实例名通过扩展参数设置:Informix 使用 INFORMIXSERVER,GBase 8s 使用 GBASEDBTSERVER。

模式名称

支持「模式名称」的类型,表单中会出现该字段,是一个在线查询的下拉框:填好用户名和密码后从数据库读取,也可手动输入。URL 中的附加方式随类型不同:

方式 写入 URL 的形式 典型类型
currentSchema ?currentSchema=模式名 Oracle、PostgreSQL、DB2、GBase 8a
schema ?schema=模式名 H2、达梦
semicolonSchema ;schema=模式名 SQL Server

OceanBase、Trino 与 Presto 虽然支持选择模式,但模式不写入 URL。MySQL、MariaDB 等不显示模式名称字段。

Doris、StarRocks、Greenplum

Doris 与 StarRocks 走 MySQL 协议,使用 MySQL 驱动,默认端口 9030(查询端口)。Greenplum 使用 PostgreSQL 驱动。

类型识别

保存时后端根据 URL 前缀识别数据库产品,用于选择 SQL 方言(分页、函数)。方言类现有:ANSI(Trino、Presto)、DB2、Derby、达梦、H2、HSQL、Informix、MariaDB、MySQL、Oracle、PostgreSQL、SQLite、SQL Server。分页语法因方言而异:MySQL 为 limit n 或 limit m,n;Oracle 使用 rownum 嵌套;ANSI 方言使用 fetch first n rows only。

示例

连接一台 MySQL 8 上的医院业务库 his_demo:

字段 填写
数据连接名称 his_mysql
数据库类型 MySQL
主机 192.168.1.20
端口 3306
数据库名称 his_demo
用户名 report_ro

生成的 URL 为 jdbc:mysql://192.168.1.20:3306/his_demo。完整字段说明见 数据源配置。

注意事项

注意:URL 中出现 allowLoadLocalInfile、autoDeserialize、socketFactory、queryInterceptors 等危险参数,或 H2 的 INIT、RUNSCRIPT,会被 JDBC URL 安全校验拒绝。

提示:生产环境建议为报表单独建立只读数据库账号,避免报表 SQL 误改业务数据。

相关文档

联系我们

请填写您的信息,我们将在 1 个工作日内与您联系。