Dameng JDBC Catalog
Doris JDBC Catalog 支持通过标准 JDBC 接口连接达梦数据库。本文档介绍如何配置达梦数据库连接。
关于 JDBC Catalog 概述,请参阅: JDBC Catalog 概述
版本说明
Dameng JDBC Catalog 自 SelectDB 2.1.12、3.0.9、3.1.6 和 4.0.6 版本开始支持。
使用须知
要连接到达梦数据库,您需要
-
达梦数据库实例。
-
与目标 JDK 和达梦版本匹配的 JDBC 驱动程序。以下示例使用
DmJdbcDriver18.jar。 -
Doris 每个 FE 和 BE 节点和达梦服务器之间的网络连接,默认端口通常为
5236。
连接达梦
CREATE CATALOG dameng_catalog PROPERTIES (
'type' = 'jdbc',
'user' = 'username',
'password' = 'pwd',
'jdbc_url' = 'jdbc:dm://host:5236',
'driver_url' = 'DmJdbcDriver18.jar',
'driver_class' = 'dm.jdbc.driver.DmDriver'
);
jdbc_url 定义要传递给达梦 JDBC 驱动程序的连接信息和参数。支持的 URL 参数可参考 达梦 JDBC 文档。
层级映射
映射达梦时,Doris 的一个 Database 对应于达梦中的一个 Schema。而 Doris 的 Database 下的 Table 则对应于该 Schema 下的 Tables。即映射关系如下:
| Doris | Dameng |
|---|---|
| Catalog | Database Server |
| Database | Schema |
| Table | Table |
列类型映射
| Dameng Type | Doris Type | Comment |
|---|---|---|
| number(P) / numeric(P) / decimal(P) / dec(P) | tinyint/smallint/int/bigint/largeint | 当 scale <= 0 时,Doris 会根据精度选择对应整数类型;若精度超过范围,则映射为 string。 |
| number(P, S) / numeric(P, S) / decimal(P, S) / dec(P, S) | decimal(P, S) / string | 未指定精度和小数位时映射为 string;精度超过 Doris DECIMAL 支持范围时也会映射为 string。 |
| int / integer | int | |
| bigint | bigint | |
| tinyint | tinyint | |
| smallint | smallint | |
| bit / boolean / bool | boolean | |
| float | float | |
| double | double | |
| date | date | |
| timestamp / datetime | datetime(S) | 不支持带时区的 timestamp 类型。S 最大支持到 6。 |
| varchar / varchar2 / nvarchar / nvarchar2 / text / longvarchar | string | |
| char / character / nchar | string | |
| long / raw / long raw / interval / byte / time / clob | string | |
| blob / nclob / image / longvarbinary / bfile / binary_float / binary_double | UNSUPPORTED | |
| other | UNSUPPORTED |
常见问题
-
创建或测试达梦 Catalog 连接时出现连接校验失败
Doris 在达梦数据源上会使用
SELECT 1 FROM dual作为测试语句。请确认目标实例支持该语句,并检查账号是否具备基本查询权限。 -
创建或查询达梦 Catalog 时出现
Failed to load driver class dm.jdbc.driver.DmDriver请确认创建 Catalog 时填写的
driver_class为dm.jdbc.driver.DmDriver,并确保driver_url指向的 Jar 包在所有 FE 和 BE 节点均可访问。