Flink CDC 3.7 добавил AI-трансформации и источники

Flink CDC 3.7 добавил AI-трансформации и источники

 

Релиз Flink CDC 3.7.0 вводит pluggable API для AI-моделей и OpenAI-совместимый клиент прямо в YAML-пайплайны. Это позволяет выполнять генерацию текста, эмбеддинги и анализ изображений без отдельного сервиса. Инженерам стоит оценить обновление, если текущие потоки требуют обогащения данных на лету или обработки схем без остановки. Flink CDC — это инструмент для захвата изменений данных из баз в реальном времени и их доставки в аналитические хранилища. Pluggable API означает возможность подключать разные модели без перекомпиляции кода, что снижает затраты на интеграцию. Перед обновлением важно понять, нужны ли такие функции именно в вашем сценарии или достаточно существующих трансформаций.

 

Возможности AI в трансформациях

Pluggable модельный API и встроенные функции позволяют вызывать completion, classification, translation, summarization, sentiment analysis, information extraction и image understanding прямо в выражениях Transform. Модель можно выбирать динамически для каждой записи, что упрощает маршрутизацию по типу данных. Экспериментальный ordered asynchronous режим сохраняет порядок событий при параллельных вызовах, но добавляет накладные расходы на координацию. Completion генерирует текст по запросу, classification распределяет данные по категориям, translation переводит текст, summarization сжимает объём информации, sentiment analysis определяет тональность, information extraction извлекает факты, а image understanding анализирует изображения. Динамический выбор модели помогает обрабатывать разнородные потоки без дополнительных сервисов, однако ordered asynchronous режим требует оценки производительности: он гарантирует порядок, но увеличивает задержки и потребление ресурсов.

Inline Python UDF теперь описываются прямо в Pipeline YAML и работают в проекциях и фильтрах. Расширение набора предикатов, TRY_CAST, IFNULL, NULLIF, операций с датами и вложенными коллекциями даёт больше гибкости без Java-компиляции. При этом сохраняется приоритет операторов и поддержка DECIMAL до 38 знаков. Перед обновлением стоит проверить, хватает ли текущих YAML-выражений или требуется переписывать сложные фильтры. Python UDF расширяют возможности фильтрации и преобразования без отдельной разработки на Java, что ускоряет итерации, но требует наличия Python-интерпретатора в окружении Flink. Поддержка DECIMAL до 38 знаков важна для финансовых и точных расчётов, поэтому стоит убедиться, что новые операторы не изменят поведение существующих пайплайнов.

 

Новые коннекторы SQL Server и Fluss

Появился полноценный Pipeline source для SQL Server с инкрементальным снапшотом, синхронизацией схем, метаданными и несколькими режимами запуска. Коннектор умеет подхватывать новые таблицы после восстановления из чекпоинта. Это полезно командам, мигрирующим с legacy-систем на основе Microsoft. Инкрементальный снапшот позволяет читать исторические данные без блокировки источника, а синхронизация схем автоматически отслеживает изменения структуры таблиц. Возможность подхватывать новые таблицы после восстановления снижает простои при масштабировании, однако требует проверки прав доступа и сетевой связности с SQL Server.

Fluss source поддерживает primary-key и log таблицы, чтение снапшотов и логов, а также периодическое обнаружение таблиц. Добавлена динамическая отписка и повторная подписка на таблицы. Sink для Fluss получил forward-shuffle и сохраняет порядок вложенных полей. Обновление Fluss до 1.0.0 может потребовать проверки совместимости существующих схем. Primary-key таблицы обеспечивают уникальность записей, log таблицы хранят последовательность изменений, forward-shuffle оптимизирует распределение данных между задачами. Динамическая подписка полезна при часто меняющемся наборе таблиц, но увеличивает нагрузку на координатор и требует мониторинга.

 

Обработка схем и конфигурация пайплайнов

Paimon и Fluss sinks теперь проверяют существующую таблицу через CHECK, TRY_EXPAND или EXPAND. Режимы позволяют безопасно добавлять или расширять не-key колонки без риска потерять данные. Sink partitioning можно задать явно: по определению sink, primary key или table ID. При восстановлении из чекпоинта состояние schema coordinator сбрасывается корректно. CHECK проверяет совместимость, TRY_EXPAND пытается расширить схему без ошибок, EXPAND принудительно добавляет колонки. Явное задание partitioning помогает контролировать распределение данных и избежать перекосов, а корректный сброс состояния coordinator снижает риск несогласованности после перезапуска.

Pipeline YAML получил секцию pipeline.flink-conf, но аргументы CLI всё равно имеют высший приоритет. Исправлена маршрутизация таблиц с многоцифровыми суффиксами в именах. Эти изменения снижают вероятность ошибок при масштабировании и повторных запусках, однако требуют пересмотра существующих YAML-файлов. Секция pipeline.flink-conf централизует настройки Flink внутри описания пайплайна, но приоритет CLI позволяет переопределять их в скриптах запуска. Исправление маршрутизации важно для таблиц с именами вроде table_10 или table_2023, где раньше могли возникать конфликты.

 

Ограничения в российских контурах

AI-функции завязаны на внешние модели, поэтому доступ к OpenAI-совместимым endpoint может блокироваться или давать высокую задержку. В изолированных сетях придётся либо поднимать локальные модели, либо отключать AI-трансформации и использовать только классические YAML-выражения. Python UDF требуют наличия интерпретатора в контейнере Flink, что добавляет требований к образам и обновлению окружения. Высокая задержка и блокировки увеличивают время обработки записей, а локальные модели требуют дополнительных ресурсов на inference и обновление весов.

Новые источники SQL Server и Fluss полезны при наличии соответствующих систем, но Fluss 1.0.0 нужно проверять на совместимость с уже развёрнутыми кластерами. Исправления в Paimon, Hudi, Iceberg и Kafka снижают риск дубликатов и ошибок при схемных изменениях, поэтому обновление оправдано при активном использовании этих sink. Перед миграцией стоит протестировать YAML-пайплайны на staging с реальными объёмами и проверить поведение при восстановлении из чекпоинтов. Совместимость Fluss влияет на схемы и форматы хранения, а исправления в других sink уменьшают вероятность потери данных при эволюции схем.

 

Источник

Это краткий разбор материала Apache Flink. Полная версия с примерами кода, схемами и деталями реализации — в оригинале: Flink CDC 3.7 добавил AI-трансформации и источники.

Курс по теме — Каталог курсов Школы Больших Данных

 

Потоковая обработка данных с помощью Apache Flink

Код курса
FLINK
Ближайшая дата курса
22 декабря, 2026
Продолжительность
16 ак.часов
Стоимость обучения
51 200