Перейти к основному содержимому
Руководство администратора
How To статьи
Установка и настройка
Компоненты
Руководство пользователя
Начало работы

Debizium SQL Server

Общее описание

Блок Debizium SQL Server подключается к SQL Server и отслеживает изменения в реальном времени (INSERT, UPDATE, DELETE). Использует Debezium для превращения логов транзакций в поток событий, пригодный для интеграции с другими системами.

Блок Debizium SQL Server может использоваться в качестве:

  • блока – получателя.

Настройка блока

В данном разделе описаны параметры блока Debizium SQL Server, которые необходимо заполнить при его настройке.

Базовые параметры

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
NamenameОбязательный параметр
Уникальное имя коннектора Debezium. Используется системой Bercut ESB для его идентификации и регистрации. Попытка зарегистрировать коннектор с уже существующим именем приведет к ошибке.
Строка
ConnectionconnectionПозволяет выбрать предсозданное подключение к серверу или создать новое с помощью визарда Connection Manager.Список
DescriptiondescriptionКраткое описание блока.Строка
Additional PropertiesadditionalPropertiesПозволяет задать свойства для компонента Debezium, которые нельзя установить напрямую в конфигурации системы.Строка
Internal Key ConverterinternalKeyConverterКласс конвертера для сериализации и десериализации ключевых данных смещений (offsets). Определяет формат хранения ключей в системе.org.apache.kafka.connect.json.JsonConverterСтрока
Internal Value ConverterinternalValueConverterКласс‑конвертер для сериализации и десериализации данных смещений (offsets). Определяет формат хранения служебной информации о позициях чтения в источнике данных.org.apache.kafka.connect.json.JsonConverterСтрока
Offset Commit PolicyoffsetCommitPolicyClassКласс Java, определяющий условия коммита офсетов (на основе количества обработанных событий и времени с последнего коммита). Должен реализовывать интерфейс OffsetCommitPolicy.Строка
Offset Commit Timeout MsoffsetCommitTimeoutМаксимальное время (в мс) ожидания фиксации записей и смещений разделов в хранилище смещений перед отменой операции и повторной попыткой в будущем5000Целое число
Offset Flush Interval MsoffsetCommitIntervalИнтервал попытки фиксации смещений (офсетов)60000Целое число
Offset StorageoffsetStorageКласс, отвечающий за хранение смещений (offsets) коннектора.org.apache.kafka.connect.storage.FileOffsetBackingStoreСтрока
Offset Storage File NameoffsetStorageFileNameПуть к файлу, в котором хранятся смещения (offsets), если используется файловое хранилище.Строка
Offset Storage PartitionsoffsetStoragePartitionsКоличество партиций для топика смещений, если используется KafkaOffsetBackingStore.Целое число
Offset Storage Replication FactoroffsetStorageReplicationFactorФактор репликации для топика смещений.Целое число
Offset Storage TopicoffsetStorageTopicИмя топика, используемого для хранения смещений.Строка
Binary Handling ModebinaryHandlingModeСпособ обработки бинарных данных (bytes — как массив байтов).bytesСтрока
Column Exclude ListcolumnExcludeListСписок столбцов (по шаблону), которые следует исключить из отслеживания изменений.Строка
Column Include ListcolumnIncludeListСписок столбцов (по шаблону), которые должны отслеживаться на изменения.Строка
Column Propagate Source TypecolumnPropagateSourceTypeУказывает, нужно ли передавать исходный тип данных столбца в схеме сообщения.Строка
ConvertersconvertersОпциональный список пользовательских конвертеров для преобразования данных (вместо стандартных).Строка
Custom Metric TagscustomMetricTagsПользовательские теги (ключ‑значение) для настройки имени MBean‑объекта (метрики).Строка
Database DbnamedatabaseDbnameИмя базы данных SQL Server, из которой фиксируются изменения.Строка
Database HostnamedatabaseHostnameХост (адрес) сервера SQL Server.Строка
Database InstancedatabaseInstanceИмя экземпляра Microsoft SQL Server, к которому выполняется подключение. Используется в сценариях, когда на одном сервере развернуто несколько экземпляров SQL Server (именованные экземпляры). . Если экземпляр стандартный (по умолчанию), поле можно оставить пустым — будет использовано подключение к экземпляру по умолчаниюСтрока
Database NamesdatabaseNamesИмена БД SQL Server, из которых коннектор должен захватывать изменения. Можно указать несколько имен через разделительСтрока
Database PassworddatabasePasswordОбязательный параметр
Пароль пользователя для подключения к SQL Server.
Строка
Database PortdatabasePortПорт сервера SQL Server.5432Целое число
Database Query Timeout MsdatabaseQueryTimeoutMsТайм‑аут (в мс) для SQL‑запросов к БД. Может задаваться в формате времени (например, 10m).10mСтрока
Database UserdatabaseUserИмя пользователя для подключения к серверу SQL Server.Строка
Data Query ModedataQueryModeОпределяет способ, которым Debezium SQL Server запрашивает данные из механизма Change Data Capture (CDC).
Возможные значения:
  • direct — коннектор напрямую обращается к таблицам изменений (change tables), созданным механизмом CDC. Наиболее простой и распространенный сценарий.
  • function — данные запрашиваются через специальную функцию SQL Server.
Позволяет добавить дополнительную логику фильтрации или преобразования данных на стороне БД перед их передачей коннектору. Выбор режима влияет на производительность и гибкость обработки изменений.
functionСтрока
Datatype Propagate Source TypedatatypePropagateSourceTypeПередача исходного типа и длины данных БД в схеме сообщения (для кастомных типов).Строка
Decimal Handling ModedecimalHandlingModeСпособ обработки десятичных чисел.
Возможные значения:
  • precise использует java.math.BigDecimal — сохраняет полную точность
  • string: представляет значения в виде строки
  • double: использует тип double (возможна потеря точности, но проще для потребителей данных).
preciseСтрока
Errors Max RetrieserrorsMaxRetriesМаксимальное число попыток повторной обработки ошибки ( "-1" — бесконечно).-1Целое число
Event Processing Failure Handling ModeeventProcessingFailureHandlingModeСтратегия обработки ошибок при обработке событий коннектором.
Возможные значения:
  • fail: остановка коннектора с исключением
  • warn: пропуск события с записью в лог
  • ignore: тихий пропуск события без логов.
failСтрока
Heartbeat Action QueryheartbeatActionQuerySQL‑запрос, выполняемый при отправке heartbeat-сигнала для поддержания активности соединения с СУБД и подтверждения работоспособности коннектора.Строка
Heartbeat Interval MsheartbeatIntervalMsОпределяет интервал в миллисекундах, с которым коннектор периодически отправляет сигналы «сердцебиения» (heartbeat) в специальный топик. Эти сигналы подтверждают активность коннектора, помогают отслеживать его состояние, а также предотвращают разрыв соединения из‑за бездействия. Зачение 0 отключает отправку heartbeat‑сигналов0msСтрока
Heartbeat Topics PrefixheartbeatTopicsPrefixЗадает префикс для префикс для темплейтов, связанных с heartbeat-событиями. Позволяет изолировать служебные сообщения от основных данных.__debezium-heartbeatСтрока
Include Schema ChangesincludeSchemaChangesОпределяет, должен ли Debezium Oracle Connector публиковать изменения схемы базы данных (DDL) в топик с именем, совпадающим с ID сервера БД. При включении (true) каждое изменение схемы записывается с ключом (имя БД) и значением (логическое описание новой схемы и, опционально, DDL‑операции). Параметр не влияет на внутреннее ведение истории схемы коннектором.TrueЛогическое значение
Include Schema CommentsincludeSchemaCommentsОпределяет, должен ли Debezium Oracle Connector извлекать комментарии к таблицам и колонкам и добавлять их в объекты метаданных.
Важно: включение (true) увеличивает потребление памяти, поскольку для каждой колонки создается дополнительный строковый объект.
FalseЛогическое значение
Incremental Snapshot Allow Schema ChangesincrementalSnapshotAllowSchemaChangesОпределяет, разрешены ли изменения схемы БД (DDL‑операции) во время выполнения инкрементального снимка. При включении (true) коннектор адаптируется к изменениям структуры таблиц (добавление/удаление колонок и т. д.) без остановки репликации. При отключении (false) — изменения схемы могут привести к ошибкам. FalseЛогическое значение
Incremental Snapshot Chunk SizeincrementalSnapshotChunkSizeЗадает количество строк в одном чанке (порции данных) при выполнении инкрементального снимка. Меньшие значения снижают нагрузку на БД и сеть, но увеличивают число запросов. Большие значения ускоряют обработку, но могут перегрузить систему. Пример: 1024 строк на чанк.1024Логическое значение
Incremental Snapshot Option RecompileincrementalSnapshotOptionRecompileУказывает, следует ли принудительно перекомпилировать запросы или объекты БД перед выполнением инкрементального снимка. Используется для устранения проблем с устаревшими планами выполнения запросов или кэшированными объектами.FalseЛогическое значение
Incremental Snapshot Watermarking StrategyincrementalSnapshotWatermarkingStrategyОпределяет стратегию установки водяных знаков (watermark) для отслеживания прогресса инкрементного снимка.
Возможные значения:
  • INSERT_INSERT
  • INSERT_UPDATE
  • UPDATE_UPDATE
INSERT_INSERTСтрока
Max Batch SizemaxBatchSizeМаксимальное количество записей из источника, обрабатываемых в одном пакете за итерацию. Увеличение значения может повысить пропускную способность, но увеличит нагрузку на память и задержку обработки. Уменьшение значения снижает нагрузку, но может снизить общую производительность.2048Целое число
Max Iteration TransactionsmaxIterationTransactionsОграничивает количество транзакций, обрабатываемых за одну итерацию при потоковой передаче изменений из нескольких таблиц БД. Позволяет снизить потребление памяти коннектором.500Целое число
Max Queue SizemaxQueueSizeМаксимальный размер очереди для событий изменений, прочитанных из журнала базы данных, но еще не записанных и не переданных дальше. Должен быть всегда больше максимального размера батча (maxBatchSize). Позволяет буферизовать данные при временных задержках в обработке или отправке.8192Целое число
Max Queue Size In BytesmaxQueueSizeInBytesМаксимальный объем очереди (в байтах) для событий изменений, прочитанных из журнала базы данных, но еще не записанных и не переданных дальше. Значение 0 означает, что ограничение по объему отключено — очередь может расти без жестких лимитов по размеру (ограничения могут накладываться другими механизмами). Позволяет контролировать потребление памяти и предотвращать переполнение при пиковых нагрузках.0Целое число
Message Key ColumnsmessageKeyColumnsСписок выражений (разделенных точкой с запятой), определяющих полные имена таблиц и колонок, которые будут использоваться в качестве ключа сообщения. Формат каждого выражения: DB_NAME.TABLE_NAME:COLUMN_NAME или SCHEMA_NAME.TABLE_NAME:COLUMN_NAME.Строка
Notification Enabled ChannelsnotificationEnabledChannelsСписок имен каналов уведомлений, которые активированы. Возможные значения зависят от реализации системы.Строка
Notification Sink Topic NamenotificationSinkTopicNameИмя топика, в который отправляются уведомления. Обязательно, если в списке включенных каналов (notificationEnabledChannels) присутствует значение sink.Строка
Poll Interval MspollIntervalMsВремя (в миллисекундах), которое коннектор ожидает появления новых событий изменений после того, как не получил ни одного события в предыдущем цикле опроса. Коннектор приостанавливается на указанный период перед следующим запросом к источнику данных.500msСтрока
Post ProcessorspostProcessorsОпциональный список пост‑процессоров. Процессоры определяются через параметр .type , настраиваются дополнительными опциями.Строка
Provide Transaction MetadataprovideTransactionMetadataВключает извлечение метаданных транзакции вместе с подсчетом событий.FalseЛогическое значение
Retriable Restart Connector Wait MsretriableRestartConnectorWaitMsВремя ожидания (в миллисекундах) перед перезапуском коннектора после возникновения повторяемой ошибки (retriable exception).10sСтрока
Schema History InternalschemaHistoryInternalИмя класса SchemaHistory, используемого Debezium для сохранения и восстановления изменений схемы БД.io.debezium.storage.kafka.history.KafkaSchemaHistoryСтрока
Schema History Internal File FilenameschemaIncludeListСписок схем, для которых должны захватываться события изменений. Используется для фильтрации по схемам — реплицируются только указанные схемы.Строка
Schema History Internal Skip Unparseable DdlschemaHistoryInternalSkipUnparseableDdlУправляет поведением коннектора Debezium при обнаружении в бинарном логе (binlog) DDL‑операции, которую коннектор не может распознать/распарсить. Если false, то при встрече с нераспознаваемой DDL‑операцией коннектор останавливает работу и переходит в состояние ошибки. Это гарантирует целостность метаданных, но требует ручного вмешательства для восстановления.FalseЛогическое значение
Schema History Internal Store Only Captured Databases DdlschemaHistoryInternalStoreOnlyCapturedDatabasesDdlУправляет тем, какие DDL‑операции Debezium будет сохранять в истории схемы базы данных. Если false, коннектор сохраняет все входящие DDL‑операции из бинарного лога (binlog), независимо от того, к какой базе данных или схеме они относятся. При true коннектор сохраняет только DDL‑операции, которые затрагивают таблицы из отслеживаемых (captured) баз данных/схем, настроенных в коннекторе.FalseЛогическое значение
Schema History Internal Store Only Captured Tables DdlschemaHistoryInternalStoreOnlyCapturedTablesDdlОпределяет, какие DDL‑операции Debezium сохраняет в истории схемы БД. При false: сохраняются все входящие DDL‑операции из binlog. Если true: сохраняются только DDL‑операции, затрагивающие отслеживаемые таблицы.FalseЛогическое значение
Schema Name Adjustment ModeschemaNameAdjustmentModeОпределяет способ корректировки имен схем для совместимости с конвертером сообщений.
Возможные значения:
  • avro — заменяет недопустимые символы в именах Avro на подчеркивание
  • avro_unicode — заменяет на Unicode‑последовательности (_uxxxx)
  • none — не применяет корректировок.
noneСтрока
Signal Data CollectionsignalDataCollectionИмя коллекции данных, используемой для отправки сигналов/команд в Debezium. Для многораздельных коннекторов можно указать несколько коллекций через запятую. При отсутствии значения сигнализация отключена.Строка
Signal Enabled ChannelssignalEnabledChannelsСписок имен каналов, через которые принимаются сигналы управления. Канал source включен по умолчанию.
Возможные значения:
  • source — основной канал (источник данных, включен по умолчанию)
  • heartbeat — канал сигналов «пульса» (периодические сообщения о работоспособности коннектора)
  • metrics — канал метрик (статистика и показатели работы коннектора)
  • error — канал ошибок (сообщения о сбоях и исключительных ситуациях)
  • пользовательские каналы — любые дополнительные именованные каналы, определенные в конфигурации системы. Значения указываются в виде массива строк
sourceСтрока
Signal Poll Interval MssignalPollIntervalMsИнтервал (в миллисекундах) для проверки новых сигналов в зарегистрированных каналах.5sСтрока
Skipped OperationsskippedOperationsСписок операций (через запятую), пропускаемых во время потоковой передачи.
Возможные значения:
  • c — вставки (create)
  • u — обновления
  • d — удаления
  • t — полная очистка таблицы без условия (truncate)
  • none — ничего не пропускать
По умолчанию пропускаются только t.
tСтрока
Snapshot Delay MssnapshotDelayMsЗадержка (в миллисекундах) перед началом снимка данных. Позволяет отложить старт репликации для подготовки окружения.0msСтрока
Snapshot Fetch SizesnapshotFetchSizeМаксимальное число записей, загружаемых в память при выполнении снимка данных (snapshot).Целое число
Snapshot Include Collection ListsnapshotIncludeCollectionListСписок таблиц/коллекций, для которых должен быть выполнен снимок данных при создании или перезапуске коннектора.Строка
Snapshot Isolation ModesnapshotIsolationModeОпределяет уровень изоляции транзакции и длительность блокировок таблиц при выполнении снапшота в SQL Server.
Возможные значения:
  • repeatable_read (по умолчанию) — использует уровень изоляции Repeatable Read; тип блокировки зависит от параметра snapshot.locking.mode.
  • exclusive — удерживает блокировку (заданную в snapshot.locking.mode) на все время снапшота, блокируя чтения и обновления.
  • snapshot — уровень изоляции SNAPSHOT: гарантирует консистентность снапшота без блокировок таблиц/строк.
  • read_committed — уровень READ COMMITTED: нет долговременных блокировок, но консистентность не гарантируется.
  • read_uncommitted — без блокировок; консистентность снапшота не гарантируется.
repeatable_readСтрока
Snapshot Lock Timeout MssnapshotLockTimeoutMsМаксимальное время (в миллисекундах) ожидания блокировок таблиц в начале снимка. Если блокировки не получены за это время, снимок прерывается.10sСтрока
Snapshot Max ThreadssnapshotMaxThreadsМаксимальное количество потоков, используемых для выполнения снимка данных.1Целое число
Snapshot ModesnapshotModeОпределяет условия запуска снимка при старте коннектора.
Возможные значения:
  • always — снимок при каждом запуске
  • initial — снимок при первом запуске
  • initial_only — только снимок, без последующей репликации
  • never — без снимка
  • custom — пользовательский режим.
initialСтрока
Snapshot Mode Configuration Based Snapshot DatasnapshotModeConfigurationBasedSnapshotDataУказывает, нужно ли снимать данные при режиме configuration_based.FalseЛогическое значение
Snapshot Mode Configuration Based Snapshot On Data ErrorsnapshotModeConfigurationBasedSnapshotOnDataErrorУказывает, нужно ли снимать данные в случае ошибки при режиме configuration_based.FalseЛогическое значение
Snapshot Mode Configuration Based Snapshot On Schema ErrorsnapshotModeConfigurationBasedSnapshotOnSchemaErrorУказывает, нужно ли снимать схему в случае ошибки при режиме configuration_based.FalseЛогическое значение
Snapshot Mode Configuration Based Snapshot SchemasnapshotModeConfigurationBasedSnapshotSchemaУказывает, нужно ли снимать схему при режиме configuration_based.FalseЛогическое значение
Snapshot Mode Configuration Based Start StreamsnapshotModeConfigurationBasedStartStreamУказывает, нужно ли запускать поток изменений после снимка при режиме configuration_based.FalseЛогическое значение
Snapshot Mode Custom NamesnapshotModeCustomNameИмя пользовательской реализации (реализует интерфейс Snapshotter), определяющей логику снимка (используется при snapshotMode=custom).Строка
Snapshot Select Statement OverridessnapshotSelectStatementOverridesСписок таблиц (через запятую) с переопределенными SELECT‑запросами для снимка. Позволяет задать кастомные запросы для отдельных таблиц. Формат: DB_NAME.TABLE_NAME или SCHEMA_NAME.TABLE_NAME.Строка
Snapshot Tables Order By Row CountsnapshotTablesOrderByRowCountОпределяет порядок обработки таблиц в начальном снимке по количеству строк.
Возможные значения:
  • ascending — по возрастанию
  • descending — по убыванию
  • disabled — без сортировки.
disabledСтрока
Sourceinfo Struct MakersourceinfoStructMakerИмя класса SourceInfoStructMaker, который возвращает схему и структуру SourceInfo для событий репликации.io.debezium.connector.sqlserver.SqlServerSourceInfoStructMakerСтрока
Streaming Delay MsstreamingDelayMsЗадержка (в миллисекундах) между завершением снимка данных и началом потоковой передачи изменений. Позволяет выполнить дополнительные подготовительные действия.0msСтрока
Table Exclude ListtableExcludeListСписок регулярных выражений (через запятую), сопоставляемых с полными именами таблиц, которые следует исключить из мониторинга. Позволяет фильтровать таблицы по шаблонам.Строка
Table Include ListtableIncludeListСписок таблиц, для которых должны захватываться изменения данных. Используется для точной настройки репликации — обрабатываются только указанные таблицы.Строка
Time Precision ModetimePrecisionModeОпределяет способ представления временных типов данных (TIME, DATE, TIMESTAMP).
Возможные значения:
  • adaptive — точность соответствует столбцу БД
  • adaptive_time_microseconds — TIME всегда в микросекундах
  • connect — фиксированная точность в миллисекундах (Kafka Connect).
adaptiveСтрока
Tombstones On DeletetombstonesOnDeleteУказывает, следует ли представлять операции удаления как два события: событие удаления и последующее «надгробие» (tombstone). Если true, система может полностью удалить все события с данным ключом после удаления записи в источнике.FalseЛогическое значение
Topic Naming StrategytopicNamingStrategyИмя класса, определяющего правила формирования имен топиков для разных типов событий (изменения данных, схемы, транзакции, heartbeat и т. д.).io.debezium.schema.SchemaTopicNamingStrategyСтрок
Topic PrefixtopicPrefixОбязательный параметр
Префикс топиков, идентифицирующий сервер/кластер БД. Должен быть уникальным для всех коннекторов. Используется как основа для имен топиков. Допустимы: буквы, цифры, дефисы, точки, подчеркивания.
Строка
Transaction Metadata FactorytransactionMetadataFactoryКласс, отвечающий за создание контекста транзакции и структур/схем транзакций. Определяет, как будут представлены транзакции в событиях репликации.io.debezium.pipeline.txmetadata.DefaultTransactionMetadataFactoryСтрока

Расширенные параметры

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
Bridge Error HandlerbridgeErrorHandlerОпределяет стратегию обработки ошибок на уровне интеграционного моста (bridge) в Bercut ESB. Отвечает за реакцию системы на сбои при передаче сообщений между компонентами. Может включать повторные попытки отправки, перенаправление в очередь ошибок, логирование и т. д. Функция доступна только для тех сторонних компонентов, которые позволяют системе получать уведомления о возникших исключениях. Некоторые компоненты обрабатывают ошибки внутри себя — в таких случаях использование bridgeErrorHandler невозможно.FalseЛогическое значение
Exception HandlerexceptionHandlerОпределяет стратегию обработки исключений на уровне компонента. По умолчанию используется стандартный обработчик org.apache.camel.spi.ExceptionHandler, который логирует ошибки на уровнях WARN или ERROR и игнорирует их. Позволяет настроить кастомную логику обработки (повторные попытки, перенаправление в очередь ошибок и т. д.).Строка
Exchange PatternexchangePatternЗадает шаблон взаимодействия между компонентами в интеграционном потоке. Определяет способ передачи сообщений и ожидания ответа.
Возможные значения:
  • InOnly (однонаправленный вызов: сообщение отправляется, ответ игнорируется).
  • InOut (двунаправленный вызов: ожидается ответ от хранимой процедуры, который будет передан дальше по потоку).
Выбор шаблона влияет на то, как компонент обрабатывает результат выполнения процедуры и передает его следующему шагу потока.
Строка