Последнее обновление
Flink Doris Connector
Flink Doris Connector читает данные из кластера Doris и записывает их в него через Flink, а благодаря интеграции с Flink CDC позволяет удобно синхронизировать целые базы данных из исходных систем, таких как MySQL.
Возможности
| Возможность | Описание | Типичные сценарии |
|---|---|---|
| Чтение данных из Doris | Параллельно читает данные с узлов BE, не передавая их через FE; поддерживает протоколы Thrift и Arrow Flight SQL | Использование таблицы Doris в качестве источника данных для задания Flink, массовый экспорт |
| Инкрементальное чтение с Doris Changelog | Непрерывно считывает изменения строк таблицы (вставки, обновления, удаления), при необходимости начиная со снимка; требуется Connector 26.4.0+ и Doris 5.0.0+ | Синхронизация изменений таблицы Doris с целевыми системами в реальном времени |
| Запись данных в Doris | Объединяет данные в пакеты во Flink и записывает их через Stream Load; поддерживает потоковую запись (на основе Checkpoint, с гарантией Exactly-Once), пакетную запись и запись через S3 TVF | Загрузка данных в реальном времени, применение изменений CDC, частичное обновление столбцов |
| Lookup Join | Объединяет записи из источника в пакеты и асинхронно запрашивает таблицу измерений Doris | Обогащение потоков данными измерений |
| Синхронизация всей базы данных | Благодаря интеграции с Flink CDC синхронизирует целую базу данных MySQL, Oracle, PostgreSQL, SQLServer, DB2 или MongoDB одной командой, автоматически создавая таблицы и синхронизируя DDL | Синхронизация баз данных бизнес-приложений с Doris в реальном времени |
Все возможности доступны через FlinkSQL; чтение и запись также доступны через DataStream API. Настройки подключения описаны в разделе Параметры подключения и TLS, а соответствие типов Doris и Flink приведено в разделе Сопоставление типов данных.
Принцип работы

- Чтение: Connector получает от FE сведения о Tablet из плана запроса, а затем читает данные напрямую с узлов BE параллельно. Данные не проходят через FE, что устраняет узкое место, возникающее при последовательном чтении и записи через JDBC на одном узле FE. См. Принцип чтения.
- Запись: Данные объединяются в пакеты в памяти Flink, а затем массово загружаются в Doris через Stream Load. По умолчанию запись выполняется в соответствии с Flink Checkpoints и использует двухфазную фиксацию для обеспечения гарантии Exactly-Once; также доступен режим пакетной записи, который не зависит от Checkpoints. См. Режимы записи.
- Lookup Join: Записи из источника объединяются в пакеты, а запросы к таблице измерений Doris выполняются асинхронно, вместо отдельного точечного запроса для каждой записи.
- Синхронизация всей базы данных: Изменения считываются из исходной базы данных с помощью Flink CDC и записываются через Doris Sink, который автоматически создает целевые таблицы и синхронизирует изменения схемы (Schema Changes).
Совместимость версий
| Версия Connector | Версия Flink | Версия Doris | Версия Java | Версия Scala |
|---|---|---|---|---|
| 1.0.3 | 1.11,1.12,1.13,1.14 | 0.15+ | 8 | 2.11,2.12 |
| 1.1.1 | 1.14 | 1.0+ | 8 | 2.11,2.12 |
| 1.2.1 | 1.15 | 1.0+ | 8 | - |
| 1.3.0 | 1.16 | 1.0+ | 8 | - |
| 1.4.0 | 1.15 - 1.17 | 1.0+ | 8 | - |
| 1.5.2 | 1.15 - 1.18 | 1.0+ | 8 | - |
| 1.6.1 | 1.15 - 1.19 | 1.0+ | 8 | - |
| 24.0.1 | 1.15 - 1.20 | 1.0+ | 8 | - |
| 24.1.0 | 1.15 - 1.20 | 1.0+ | 8 | - |
| 25.0.0 | 1.15 - 1.20 | 1.0+ | 8 | - |
| 25.1.0 | 1.15 - 1.20 | 1.0+ | 8 | - |
| 26.0.0 | 1.15 - 1.20,2.0 - 2.2 | 1.0+ | 8(1.x),17(2.x) | - |
| 26.1.1 | 1.15 - 1.20,2.0 - 2.2 | 1.0+ | 8(1.x),17(2.x) | - |
| 26.2.0 | 1.15 - 1.20,2.0 - 2.2 | 1.0+ | 8(1.x),17(2.x) | - |
| 26.3.0 | 1.15 - 1.20,2.0 - 2.3 | 1.0+ | 8(1.x),17(2.x) | - |
Установка
Поддерживается установка как с помощью Jar-пакета, так и через зависимость Maven.
Установка с помощью Jar-пакета
Скачайте Jar-пакет Flink Doris Connector нужной версии со страницы загрузок Doris и скопируйте его в classpath Flink:
- Режим Standalone: Поместите Jar-файл в каталог
lib/. - Кластерный режим Yarn: Поместите Jar-файл в пакет, подготавливаемый перед развертыванием.
Установка через зависимость Maven
Добавьте следующую зависимость в pom.xml проекта:
<dependency>
<groupId>org.apache.doris</groupId>
<artifactId>flink-doris-connector-${flink.version}</artifactId>
<version>${connector.version}</version>
</dependency>
Например:
<dependency>
<groupId>org.apache.doris</groupId>
<artifactId>flink-doris-connector-1.16</artifactId>
<version>26.3.0</version>
</dependency>
Следующие шаги
- Следуйте руководству Быстрый старт, чтобы читать данные из таблицы Doris и записывать их в нее с помощью FlinkSQL.
- При возникновении ошибки сначала загляните в раздел Часто задаваемые вопросы.