You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SSH隧道将Apache Doris实例与PostgreSQL连接?

Apache Doris 通过 SSH 隧道连接 PostgreSQL 的解决方案

方法一:本地端口转发(推荐方案)

无需修改 Doris 配置或引入自定义驱动,通过 SSH 建立端口转发,让 Doris 连接本地转发端口即可实现间接访问 PostgreSQL。

操作步骤:

  1. 在 Doris FE 节点(或可访问 FE 的机器)执行 SSH 端口转发命令:

    ssh -L <本地转发端口>:<PostgreSQL主机>:<PostgreSQL端口> <SSH用户名>@<SSH跳板机IP> -Nf
    

    示例:

    ssh -L 5432:pg-internal.example.com:5432 ops@jump-server.example.com -Nf
    

    参数说明:

    • -L:定义本地端口转发规则,将本地端口流量转发到目标 PostgreSQL 端口
    • -N:仅建立隧道,不执行远程命令
    • -f:后台运行进程
  2. 验证隧道连通性:
    使用 telnet 或 psql 测试本地端口是否能正常连接 PostgreSQL:

    telnet localhost 5432
    # 或用psql测试
    psql -h localhost -p 5432 -U pg_user -d target_db
    
  3. 在 Doris 中创建 JDBC Catalog:
    直接将 JDBC URL 指向本地转发端口,配置和普通 JDBC 连接一致:

    CREATE CATALOG pg_ssh_tunnel PROPERTIES (
        "type"="jdbc",
        "user"="pg_user",
        "password"="pg_password",
        "jdbc_url"="jdbc:postgresql://localhost:5432/target_db",
        "driver_url"="postgresql-42.6.0.jar",
        "driver_class"="org.postgresql.Driver"
    );
    

方法二:使用带 SSH 功能的自定义 JDBC 驱动

如果必须通过驱动内置的 SSH 隧道实现,可按以下步骤操作:

操作步骤:

  1. 下载目标 SSH JDBC 驱动及其所有依赖包,上传至 Doris FE 节点的 fe/lib 目录。
  2. 重启 Doris FE 节点,确保驱动包被加载到类路径中。
  3. 创建 JDBC Catalog 时,使用该驱动的专属 JDBC URL 和驱动类:
    CREATE CATALOG pg_ssh_jdbc PROPERTIES (
        "type"="jdbc",
        "user"="pg_user",
        "password"="pg_password",
        "jdbc_url"="jdbc:postgresql+ssh://<SSH用户名>:<SSH密码>@<SSH跳板机IP>:22/<PostgreSQL主机>:<PostgreSQL端口>/target_db",
        "driver_class"="org.postgresql.ssh.jdbc.SshDriver"
    );
    
    注意:不同 SSH JDBC 驱动的 URL 格式可能存在差异,请以对应驱动文档为准。

关键注意事项

  • 端口转发方案需确保:跳板机可同时访问 Doris 节点和 PostgreSQL 节点,且 Doris 节点能访问本地转发端口。
  • 自定义驱动方案需保证所有依赖包完整,FE 重启后驱动正常加载;生产环境需关注驱动版本兼容性。
  • 生产环境中,建议将 SSH 端口转发配置为持久化服务(如 systemd 单元),避免连接断开导致隧道失效。

内容的提问来源于stack exchange,提问作者Ezequiel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 14:10:08