跳到主要内容
最后 更新

连接配置与 TLS

本页列出 Flink Doris Connector 连接 Doris 时的通用配置项,并说明如何启用 TLS。这些配置对 Source、Sink 和 Lookup Join 均适用。

通用配置项

KeyDefault ValueRequiredComment
fenodes--YDoris FE http 地址,支持多个地址,使用逗号分隔
benodes--NDoris BE http 地址,支持多个地址,使用逗号分隔
jdbc-url--Njdbc 连接信息,如:jdbc:mysql://127.0.0.1:9030
table.identifier--YDoris 表名,如:db.tbl
username--Y访问 Doris 的用户名
password--Y访问 Doris 的密码
auto-redirectTRUEN是否重定向 Stream Load 请求。开启后 Stream Load 将通过 FE 写入,不再显示获取 BE 信息
doris.request.retries3N向 Doris 发送请求的重试次数
doris.request.connect.timeout30sN向 Doris 发送请求的连接超时时间
doris.request.read.timeout30sN向 Doris 发送请求的读取超时时间
doris.enable.tlsFALSEN是否为 Doris HTTP、MySQL/JDBC、BE Thrift 和 Arrow Flight SQL 连接启用 TLS
doris.tls.ca-certificate-path--NPEM CA 证书链的本地路径。为空时 Connector 不加载自定义 CA,使用对应客户端的默认信任库
doris.tls.skip-hostname-verificationFALSEN是否在保留 CA 校验的同时跳过服务端 hostname 校验
doris.tls.excluded-protocols--N启用 TLS 时仍使用明文的协议列表,逗号分隔。支持 httpmysqlthriftarrowflight

启用 TLS

Connector 可以对 Doris HTTP 和 Stream Load、MySQL/JDBC、BE Thrift 以及 Arrow Flight SQL 连接启用 TLS。TLS 默认关闭。Connector 会校验 Doris 服务端证书。

在 Doris Source、Sink 或 Catalog 配置中增加以下选项:

'doris.enable.tls' = 'true',
'doris.tls.ca-certificate-path' = '/etc/doris-tls/ca-chain.pem'

通过 doris.tls.ca-certificate-path 指定 CA 文件时,应使用 PEM 证书链,并确保所有需要连接 Doris 的 Flink 进程都能从本地文件系统读取该文件。未配置该路径时,Connector 不加载自定义 CA,使用对应客户端的默认信任库。生产环境应保持 hostname 校验开启。

如果 Doris 的某个协议有意保留明文连接,只排除该协议即可。支持的值为 httpmysqlthriftarrowflight

'doris.tls.excluded-protocols' = 'arrowflight'

Connector 不会探测协议,也不会在 TLS 失败后回退到明文连接。

启用 doris.enable.tls 后,Connector 会通过 JDBC 连接属性传入 TLS 配置,不会修改 jdbc-url。因此,jdbc-url 只需填写连接地址,无需添加 sslModeuseSSL 或 Trust Store 等 TLS 参数。

Arrow Flight SQL 支持 TLS,但不支持仅跳过 hostname 校验;如果将 doris.tls.skip-hostname-verification 设置为 true,需要通过 doris.tls.excluded-protocols 排除 arrowflight

根据 Flink 部署模式分发 CA 文件:

  • Standalone:将文件放在所有会连接 Doris 的 JobManager、TaskManager 和 SQL Gateway 主机上的相同路径。
  • YARN:通过 yarn.ship-files: /local/path/ca.pem 分发文件,并将 doris.tls.ca-certificate-path 设置为容器内文件名,例如 ca.pem
  • Kubernetes:通过 ConfigMap 或 Secret 将 CA 挂载到相关 JobManager 和 TaskManager Pod 的相同路径。