7.4.6 IBM Db2¶
Doris JDBC Catalog
支持通过标准 JDBC
接口连接 IBM Db2
数据库。本文档介绍如何配置 IBM Db2
数据库连接。
1 使用须知¶
要连接到 IBM Db2
数据库,您需要
-
IBM Db2 11.5.x
或更高版本 -
IBM Db2
数据库的JDBC
驱动程序,您可以从Maven
仓库下载最新或指定版本的IBM Db2
驱动程序。推荐使用IBM db2 jcc 11.5.8.0
版本。 -
Doris
每个FE
和BE
节点和IBM Db2
服务器之间的网络连接,默认端口为51000
。
2 连接 IBM Db2¶
SQL | |
---|---|
1 2 3 4 5 6 7 8 |
|
Tip
jdbc_url
定义要传递给 IBM Db2
驱动程序的连接信息和参数。支持的 URL
的参数可在 Db2 JDBC
驱动程序文档中找到。
3 层级映射¶
映射 IBM Db2
时, Doris
的 Database
对应于 DB2
中指定 DataBase
( jdbc_url
参数中的 "database"
)下的一个 Schema
。而 Doris
的 Database
下的 Table
则对应于 DB2
中 Schema
下的 Tables
。即映射关系如下:
Doris | IBM Db2 |
---|---|
Catalog | DataBase |
Database | Schema |
Table | Table |
4 类型映射¶
4.1 IBM Db2 到 Doris 类型映射¶
IBM Db2 Type | Doris Type |
---|---|
SMALLINT | SMALLINT |
INT | INT |
BIGINT | BIGINT |
DOUBLE | DOUBLE |
DOUBLE PRECISION | DOUBLE |
FLOAT | DOUBLE |
REAL | FLOAT |
NUMERIC | DECIMAL |
DECIMAL | DECIMAL |
DECFLOAT | DECIMAL |
DATE | DATE |
TIMESTAMP | DATETIME |
CHAR | CHAR |
CHAR VARYING | VARCHAR |
VARCHAR | VARCHAR |
LONG VARCHAR | VARCHAR |
VARGRAPHIC | STRING |
LONG VARGRAPHIC | STRING |
TIME | STRING |
CLOB | STRING |
XML | STRING |
OTHER | UNSUPPORTED |
5 查询优化¶
5.1 谓词下推¶
当执行类似于 where dt = '2022-01-01'
这样的查询时, Doris
能够将这些过滤条件下推到外部数据源,从而直接在数据源层面排除不符合条件的数据,减少了不必要的数据获取和传输。这大大提高了查询性能,同时也降低了对外部数据源的负载。
5.2 行数限制¶
如果在查询中带有 limit
关键字, Doris
会将 limit
下推到 IBM Db2
数据库,以减少数据传输量。
5.3 转义字符¶
Doris
会在下发到 IBM Db2
的查询语句中,自动在字段名与表名上加上转义符: ("")
,以避免字段名与表名与 IBM Db2
内部关键字冲突。
6 常见问题¶
-
通过
JDBC Catalog
读取IBM Db2
数据时出现Invalid operation: result set is closed. ERRORCODE=-4470
异常在创建
IBM Db2 Catalog
的jdbc_url
连接串中添加连接参数:allowNextOnExhaustedResultSet=1;resultSetHoldability=1;
。如:jdbc:db2://host:port/database:allowNextOnExhaustedResultSet=1;resultSetHoldability=1;
。