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

通过JDBC Catalog对接MySQL或PostgreSQL数据源

JDBC Catalog支持通过标准JDBC接口连接支持JDBC协议的数据库。该方式仅适用于少量的数据集成,例如将少量数据从数据源导入到StarRocks集群中,或对JDBC数据源中的小表进行关联查询。

使用JDBC Catalog无法实现对原数据源的查询加速,且也不适用于一次性访问大量数据的场景。

当前CloudTable StarRocks已经默认集成了MariaDB和PostgreSQL的Driver(已集成“mariadb-java-client-2.7.13.jar”和“postgresql-42.7.11.jar”驱动包),用户可以直接通过标准JDBC接口连接MySQL和PostgreSQL数据库。

前提条件

  • 已创建CloudTable StarRocks集群,集群运行正常。
  • 被访问的数据源与StarRocks集群节点的网络已打通,并且保持网络连接稳定和低延迟。
  • 仅支持对接PostgreSQL 11.x及之后版本数据库。
  • 仅支持对接MySQL 5.7、8.0或之后版本数据库。
  • 被访问的数据源未开启SSL连接。
  • StarRocks用户需要具备创建External Catalog的权限,该权限无法通过角色管理页面管理,需要管理员通过命令授权,授权命令如下:
    GRANT CREATE EXTERNAL CATALOG ON SYSTEM TO ROLE/USER role_name/user_name;

操作步骤

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

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

  2. 访问StarRocks集群,参见使用MySQL客户端连接StarRocks普通集群

    ./mysql -uuser_name -ppassword -h集群内网IP地址 -P9030

    user_name前提条件中准备的StarRocks用户名。

  3. 执行如下命令创建JDBC Catalog连接MySQL或PostgreSQL数据库:

    • 连接MySQL数据库:
      CREATE EXTERNAL CATALOG mysql_catalog PROPERTIES (
          "type"="jdbc",
          "user"="username",
          "password"="xxx",
          "jdbc_uri"="jdbc:mariadb://host:3306",
          "driver_url"="mariadb-java-client-2.7.13.jar",
          "driver_class"="org.mariadb.jdbc.Driver"
      );
    • 连接PostgreSQL数据库:
      CREATE EXTERNAL CATALOG postgresql_catalog PROPERTIES (
          "type"="jdbc",
          "user"="username",
          "password"="xxx",
          "jdbc_uri"="jdbc:postgresql://host:5432/database_name",
          "driver_url"="postgresql-42.7.11.jar",
          "driver_class"="org.postgresql.Driver"
      );
    表1 参数说明

    参数名称

    说明

    type

    Catalog类型,需设置为“jdbc”。

    user

    访问MySQL或PostgreSQL数据源的用户名。

    password

    访问数据源的用户对应的密码。

    jdbc_uri

    连接MySQL或PostgreSQL数据源的URL。

    需注意,连接PostgreSQL数据库时,需要指定访问的数据库名称。

    driver_url

    数据源JDBC驱动包,当前仅支持“mariadb-java-client-2.7.13.jar”和“

    postgresql-42.7.11.jar”。

    driver_class

    数据源JDBC驱动程序的类名。

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

    show catalogs;

    访问External Catalog下的数据的用户还需要具备该External Catalog的创建数据库权限以及对应数据库或表的查询权限,相关操作请参考配置StarRocks用户权限

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

    set catalog catalog_name;

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

    show databases;

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

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

    use database_name;

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

    show tables;

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

    select * from table_name;

常见问题

问题现象:对接PostgreSQL数据后,切换到External Catalog,执行show schemas;show databases;命令时报错“Driver org.postgresql.Driver claims to not accept jdbcUrl”。

可能原因:创建External Catalog时,“jdbc_uri”中未指定默认的数据库。

处理步骤:需要使用正确的语句重新创建Catalog。

相关文档