Параметры подключения и TLS
На этой странице перечислены общие параметры, которые Flink Doris Connector использует для подключения к Doris, и описано, как включить TLS. Эти параметры применяются к Source, Sink и Lookup Join.
Общие параметры
| Ключ | Значение по умолчанию | Обязательный | Описание |
|---|---|---|---|
| fenodes | -- | Да | http-адрес FE Doris; поддерживается несколько адресов, разделённых запятыми |
| benodes | -- | Нет | http-адрес BE Doris; поддерживается несколько адресов, разделённых запятыми |
| jdbc-url | -- | Нет | Параметры подключения по JDBC, например: jdbc:mysql://127.0.0.1:9030 |
| table.identifier | -- | Да | Имя таблицы Doris, например: db.tbl |
| username | -- | Да | Имя пользователя для доступа к Doris |
| password | -- | Да | Пароль для доступа к Doris |
| auto-redirect | TRUE | Нет | Перенаправлять ли запросы Stream Load. При включении запись данных через Stream Load выполняется через FE без явного получения информации о BE |
| doris.request.retries | 3 | Нет | Число повторных попыток отправки запросов в Doris |
| doris.request.connect.timeout | 30s | Нет | Время ожидания установления соединения при отправке запросов в Doris |
| doris.request.read.timeout | 30s | Нет | Время ожидания чтения при отправке запросов в Doris |
| doris.enable.tls | FALSE | Нет | Включать ли TLS для соединений с Doris по HTTP, MySQL/JDBC, BE Thrift и Arrow Flight SQL. |
| doris.tls.ca-certificate-path | -- | Нет | Локальный путь к цепочке сертификатов CA в формате PEM. Если путь не указан, коннектор не загружает пользовательский CA и использует стандартное хранилище доверенных сертификатов соответствующего клиента. |
| doris.tls.skip-hostname-verification | FALSE | Нет | Пропускать ли проверку имени хоста сервера, сохраняя проверку CA. |
| doris.tls.excluded-protocols | -- | Нет | Протоколы, перечисленные через запятую, для которых соединения остаются незашифрованными при включённом TLS. Поддерживаемые значения: http, mysql, thrift и arrowflight. |
Включение TLS
Коннектор позволяет включить TLS для соединений с Doris по HTTP и Stream Load, MySQL/JDBC, BE Thrift и Arrow Flight SQL. По умолчанию TLS отключён, а коннектор проверяет сертификат сервера Doris.
Добавьте следующие параметры в конфигурацию Doris Source, Sink или Catalog:
'doris.enable.tls' = 'true',
'doris.tls.ca-certificate-path' = '/etc/doris-tls/ca-chain.pem'
При указании файла CA в doris.tls.ca-certificate-path используйте цепочку сертификатов в формате PEM и убедитесь, что каждый процесс Flink, подключающийся к Doris, может прочитать этот файл из локальной файловой системы. Если этот путь не задан, коннектор не загружает пользовательский CA и использует стандартное хранилище доверенных сертификатов соответствующего клиента. В рабочей среде оставляйте проверку имени хоста включённой.
Если какой-либо протокол Doris намеренно используется без шифрования, исключите только этот протокол. Поддерживаемые значения: http, mysql, thrift и arrowflight:
'doris.tls.excluded-protocols' = 'arrowflight'
Коннектор не проверяет протоколы пробными подключениями и не переходит на незашифрованное соединение после ошибки TLS.
Когда doris.enable.tls включён, коннектор передаёт настройки TLS через свойства подключения JDBC, не изменяя jdbc-url. Поэтому в jdbc-url указывайте только адрес подключения; не добавляйте параметры TLS, такие как sslMode, useSSL, или настройки хранилища доверенных сертификатов.
Arrow Flight SQL поддерживает TLS, но не позволяет отключить только проверку имени хоста. Если doris.tls.skip-hostname-verification установлен в true, исключите arrowflight с помощью doris.tls.excluded-protocols.
Разместите файл CA в соответствии с режимом развёртывания Flink:
- Standalone: разместите файл по одному и тому же пути на всех хостах JobManager, TaskManager и SQL Gateway, которые подключаются к Doris.
- YARN: доставьте файл в контейнеры с помощью
yarn.ship-files: /local/path/ca.pemи задайте вdoris.tls.ca-certificate-pathимя файла внутри контейнера, напримерca.pem. - Kubernetes: смонтируйте ConfigMap или Secret по одному и тому же пути в соответствующих подах JobManager и TaskManager.