SelectDB Cloud
开发指南
最佳实践
连接 JDBC 数据源

连接 JDBC 数据源

SelectDB 支持通过 JDBC Catalog 连接到 JDBC 数据源,帮助您对兼容 JDBC 协议的数据源进行联邦分析。

连接后,SelectDB 会自动同步数据源下的 Database 和 Table 的元数据,以便快速访问这些外部数据。

下面将详细介绍已支持数据源连接的操作说明。

阿里云

SaaS 模式连接 RDS for MySQL

  1. 设置 SelectDB 访问私有网络。 详细操作请参考 SelectDB 访问私有网络 章节。

  2. 创建 ECS 服务器连接 RDS for MySQL

    要通过阿里云内网访问 RDS for MySQL,需要有一台 ECS 服务器作为代理,分别连接 RDS for MySQL 和 Load Balancer 服务。并且这台 ECS 服务器需要和这两个服务处于同一个 VPC,ECS 的私网 IP 添加到 RDS 白名单。更详细操作请参考阿里云官方文档 如何连接 RDS 数据库 (opens in a new tab)

  3. 在 ECS 服务器部署代理服务

    使用 HAProxy,在 haproxy.cfg 中增加 mysql 代理

    ######## mysql负载均衡配置 ###############
    listen proxy-mysql
    bind 0.0.0.0:3306
    mode tcp
    # 负载均衡算法
    # static-rr 权重, leastconn 最少连接, source 请求IP, 轮询 roundrobin
    balance roundrobin
    # 日志格式
    option tcplog
    # 在 mysql 创建一个没有权限的haproxy用户,密码为空。 haproxy用户
    # create user 'haproxy'@'%' identified by ''; FLUSH PRIVILEGES;
    option mysql-check user haproxy
    server MYSQL_1 172.18.0.2:3306 check weight 1 maxconn 2000
    # 使用keepalive检测死链
    # option tcpka
    #########################################

    注意其他部分配置,按需修改

    defaults                                # 默认配置。
    log global                              # 日志继承全局配置段的设置。
    retries 2                               # 向上游服务器尝试连接的最大次数,超过此值便认为后端服务器不可用。
    timeout connect  2s                     # HAProxy 与后端服务器连接超时时间。如果在同一个局域网内,可设置成较短的时间。
    timeout client 30000s                   # 客户端与 HAProxy 连接后,数据传输完毕,即非活动连接的超时时间。
    timeout server 30000s                   # 服务器端非活动连接的超时时间。
  4. 在 Load Balancer 服务配置对 ECS 的监听,使用默认配置即可

    操作示例如下:

    注意:需要关掉健康检查,因为健康检查会持续执行 telnet mysql 命令,导致 MySQL 累计错误连接,封掉 IP。

  5. 在 SelectDB 中创建 Catalog

    CREATE CATALOG mysql PROPERTIES (
        "type"="jdbc",
        "user"="root",
        "password"="Bigdata@2024xxxxx",
        "jdbc_url" = "jdbc:mysql://ep-2zei8852e85603e2a7ec.epsrv-2zefmg7zdtfswpkxb6d4.cn-beijing.privatelink.aliyuncs.com:3306/test",
        "driver_url" = "mysql-connector-java-8.0.25.jar",
        "driver_class" = "com.mysql.cj.jdbc.Driver"
    );

    参数说明:

名称是否必选说明
typeCatalog 类型,此处使用 jdbc
user数据库的账号
password数据库的密码
jdbc_urlJDBC连接串
driver_urlJDBC Driver Jar包名称
driver_classJDBC Driver Class名称

BYOC 模式连接 RDS for MySQL

BYOC 仓库和 RDS 处于同一个 VPC,在创建 Catalog 时正确填写 RDS for MySQL 的内网地址即可。

在 SelectDB 中创建 Catalog

CREATE CATALOG mysql PROPERTIES (
    "type"="jdbc",
    "user"="root",
    "password"="Bigdata@2024xxxxx",
    "jdbc_url" = "jdbc:mysql://rm-2zexuilug4tg5vb26.mysql.rds.aliyuncs.com:3306/test",
    "driver_url" = "mysql-connector-java-8.0.25.jar",
    "driver_class" = "com.mysql.cj.jdbc.Driver"
);

参数说明:

名称是否必选说明
typeCatalog 类型,此处使用 jdbc
user数据库的账号
password数据库的密码
jdbc_urlJDBC连接串
driver_urlJDBC Driver Jar包名称
driver_classJDBC Driver Class名称

© 2023 北京飞轮数据科技有限公司 京ICP备2022004029号 | Apache、Apache Doris 以及相关开源项目名称均为 Apache 基金会商标