通过JDBC Catalog对接MySQL或PostgreSQL数据源
JDBC Catalog支持通过标准JDBC接口连接支持JDBC协议的数据库。该方式仅适用于少量的数据集成,例如将少量数据从数据源导入到Doris集群中,或对JDBC数据源中的小表进行关联查询。
使用JDBC Catalog无法实现对原数据源的查询加速,且也不适用于一次性访问大量数据的场景。
当前CloudTable Doris已经默认集成了MariaDB和PostgreSQL的Driver(已集成“mariadb-java-client-2.7.13.jar”和“postgresql-42.7.11.jar”驱动包),用户可以直接通过标准JDBC接口连接MySQL和PostgreSQL数据库。
前提条件
- 已创建CloudTable Doris集群,集群运行正常。
- 被访问的数据源与Doris集群节点的网络已打通,并且保持网络连接稳定和低延迟。
- 仅支持对接PostgreSQL 11.x及之后版本数据库。
- 仅支持对接MySQL 5.7、8.0或之后版本数据库。
- 被访问的数据源未开启SSL连接。
- Doris用户需要具备创建Catalog和访问Catalog的权限,权限配置操作指导请参考配置Doris用户权限。
操作步骤
- 使用SSH登录工具,通过弹性IP远程登录到Linux弹性云服务器。
具体登录操作步骤请参见弹性云服务器《用户指南》中的“ SSH密码方式登录”。
- 访问Doris集群,参见使用MySQL客户端连接Doris普通集群或使用MySQL客户端连接Doris安全集群。
- 执行如下命令创建JDBC Catalog连接MySQL或PostgreSQL数据库:
- 连接MySQL数据库:
CREATE CATALOG mysql_catalog PROPERTIES ( 'type' = 'jdbc', 'user' = 'username', 'password' = 'xxx', 'jdbc_url' = 'jdbc:mariadb://host:3306', 'driver_url' = 'mariadb-java-client-2.7.13.jar', 'driver_class' = 'org.mariadb.jdbc.Driver' ); - 连接PostgreSQL数据库:
CREATE CATALOG postgresql_catalog PROPERTIES ( 'type' = 'jdbc', 'user' = 'username', 'password' = 'xxx', 'jdbc_url' = 'jdbc:postgresql://host:5432/test?sslmode=disable', 'driver_url' = 'postgresql-42.7.11.jar', 'driver_class' = 'org.postgresql.Driver' );
表1 参数说明 参数
描述
type
Catalog类型,需设置为“jdbc”。
user
访问MySQL或PostgreSQL数据源的用户名。
password
访问数据源的用户对应的密码。
jdbc_url
连接MySQL或PostgreSQL数据源的URL。
需注意,连接PostgreSQL数据库时,需要指定访问的数据库名称并设置sslmode=disable来强制跳过证书校验操作。
driver_url
数据源JDBC驱动包,当前仅支持“mariadb-java-client-2.7.13.jar”和“postgresql-42.7.11.jar”。
driver_class
数据源JDBC驱动程序的类名。
- 连接MySQL数据库:
- 执行命令以下查看已创建的Catalog:
show catalogs;

- 执行以下命令,切换到指定的Catalog:
switch catalog_name;

- 执行以下命令查看数据库:
show databases;
由于PostgreSQL数据源在对接的时候已经指定了数据库信息,针对PostgreSQL数据源,show databases;命令展示的是该数据库下的Schema。
- 执行以下命令指定当前会话生效的数据库:
use database_name;
- 执行以下命令查看当前数据库下的表:
show tables;

- 执行以下命令查看表数据:
select * from table_name;

常见问题
问题现象:通过JDBC Catalog查询MySQL或PostgreSQL数据库报错权限不足:

可能原因:当前Doris用户没有该Catalog的读权限。
处理步骤:需要为当前Doris用户授予对应Catalog读权限后再执行查询操作。