跳到主要内容
版本:2.1

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。即映射关系如下:

DorisDameng
CatalogDatabase Server
DatabaseSchema
TableTable

列类型映射

Dameng TypeDoris TypeComment
number(P) / numeric(P) / decimal(P) / dec(P)tinyint/smallint/int/bigint/largeintscale <= 0 时,Doris 会根据精度选择对应整数类型;若精度超过范围,则映射为 string。
number(P, S) / numeric(P, S) / decimal(P, S) / dec(P, S)decimal(P, S) / string未指定精度和小数位时映射为 string;精度超过 Doris DECIMAL 支持范围时也会映射为 string。
int / integerint
bigintbigint
tinyinttinyint
smallintsmallint
bit / boolean / boolboolean
floatfloat
doubledouble
datedate
timestamp / datetimedatetime(S)不支持带时区的 timestamp 类型。S 最大支持到 6。
varchar / varchar2 / nvarchar / nvarchar2 / text / longvarcharstring
char / character / ncharstring
long / raw / long raw / interval / byte / time / clobstring
blob / nclob / image / longvarbinary / bfile / binary_float / binary_doubleUNSUPPORTED
otherUNSUPPORTED

常见问题

  1. 创建或测试达梦 Catalog 连接时出现连接校验失败

    Doris 在达梦数据源上会使用 SELECT 1 FROM dual 作为测试语句。请确认目标实例支持该语句,并检查账号是否具备基本查询权限。

  2. 创建或查询达梦 Catalog 时出现 Failed to load driver class dm.jdbc.driver.DmDriver

    请确认创建 Catalog 时填写的 driver_classdm.jdbc.driver.DmDriver,并确保 driver_url 指向的 Jar 包在所有 FE 和 BE 节点均可访问。