更新时间:2026-07-13 GMT+08:00
分享

通过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用户权限

操作步骤

  1. 使用SSH登录工具,通过弹性IP远程登录到Linux弹性云服务器。

    具体登录操作步骤请参见弹性云服务器《用户指南》中的“ SSH密码方式登录”。

  2. 访问Doris集群,参见使用MySQL客户端连接Doris普通集群使用MySQL客户端连接Doris安全集群
  3. 执行如下命令创建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驱动程序的类名。

  4. 执行命令以下查看已创建的Catalog:

    show catalogs;

  5. 执行以下命令,切换到指定的Catalog:

    switch catalog_name;

  6. 执行以下命令查看数据库:

    show databases;

    由于PostgreSQL数据源在对接的时候已经指定了数据库信息,针对PostgreSQL数据源,show databases;命令展示的是该数据库下的Schema。

  7. 执行以下命令指定当前会话生效的数据库:

    use database_name;

  8. 执行以下命令查看当前数据库下的表:

    show tables;

  9. 执行以下命令查看表数据:

    select * from table_name;

常见问题

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

可能原因:当前Doris用户没有该Catalog的读权限。

处理步骤:需要为当前Doris用户授予对应Catalog读权限后再执行查询操作。

相关文档