Class CommonConnectorConfig

java.lang.Object
io.debezium.config.CommonConnectorConfig
Direct Known Subclasses:
RelationalDatabaseConnectorConfig

public abstract class CommonConnectorConfig extends Object
Configuration options common to all Debezium connectors.
Author:
Gunnar Morling
  • Field Details

    • TOPIC_NAME_PATTERN

      public static final Pattern TOPIC_NAME_PATTERN
    • MULTI_PARTITION_MODE

      public static final String MULTI_PARTITION_MODE
      See Also:
    • SNAPSHOT_MODE_PROPERTY_NAME

      public static final String SNAPSHOT_MODE_PROPERTY_NAME
      See Also:
    • SNAPSHOT_LOCKING_MODE_PROPERTY_NAME

      public static final String SNAPSHOT_LOCKING_MODE_PROPERTY_NAME
      See Also:
    • DEFAULT_QUEUE_PROVIDER_TYPE

      public static final String DEFAULT_QUEUE_PROVIDER_TYPE
      See Also:
    • LOGGER

      private static final org.slf4j.Logger LOGGER
    • CONNECTOR_CLASS

      public static final String CONNECTOR_CLASS
      See Also:
    • snapshotQueryMode

      protected CommonConnectorConfig.SnapshotQueryMode snapshotQueryMode
    • snapshotQueryModeCustomName

      protected String snapshotQueryModeCustomName
    • snapshotLockingModeCustomName

      protected String snapshotLockingModeCustomName
    • snapshotModeConfigurationBasedSnapshotData

      protected final boolean snapshotModeConfigurationBasedSnapshotData
    • snapshotModeConfigurationBasedSnapshotSchema

      protected final boolean snapshotModeConfigurationBasedSnapshotSchema
    • snapshotModeConfigurationBasedStream

      protected final boolean snapshotModeConfigurationBasedStream
    • snapshotModeConfigurationBasedSnapshotOnSchemaError

      protected final boolean snapshotModeConfigurationBasedSnapshotOnSchemaError
    • snapshotModeConfigurationBasedSnapshotOnDataError

      protected final boolean snapshotModeConfigurationBasedSnapshotOnDataError
    • isLogPositionCheckEnabled

      protected final boolean isLogPositionCheckEnabled
    • isAdvancedMetricsEnabled

      protected final boolean isAdvancedMetricsEnabled
    • isExtendedHeadersEnabled

      private final boolean isExtendedHeadersEnabled
    • guardrailCollectionsMax

      protected final int guardrailCollectionsMax
    • guardrailCollectionsLimitAction

      protected final CommonConnectorConfig.GuardrailCollectionsLimitAction guardrailCollectionsLimitAction
    • isStatisticsMetricsEnabled

      protected final boolean isStatisticsMetricsEnabled
    • CONFLUENT_AVRO_CONVERTER

      private static final String CONFLUENT_AVRO_CONVERTER
      See Also:
    • APICURIO_AVRO_CONVERTER

      private static final String APICURIO_AVRO_CONVERTER
      See Also:
    • DEFAULT_EXECUTOR_SHUTDOWN_TIMEOUT

      public static final Duration DEFAULT_EXECUTOR_SHUTDOWN_TIMEOUT
    • DEFAULT_MAX_QUEUE_SIZE

      public static final int DEFAULT_MAX_QUEUE_SIZE
      See Also:
    • DEFAULT_MAX_BATCH_SIZE

      public static final int DEFAULT_MAX_BATCH_SIZE
      See Also:
    • DEFAULT_QUERY_FETCH_SIZE

      public static final int DEFAULT_QUERY_FETCH_SIZE
      See Also:
    • DEFAULT_POLL_INTERVAL_MILLIS

      public static final long DEFAULT_POLL_INTERVAL_MILLIS
      See Also:
    • DATABASE_CONFIG_PREFIX

      public static final String DATABASE_CONFIG_PREFIX
      See Also:
    • DRIVER_CONFIG_PREFIX

      public static final String DRIVER_CONFIG_PREFIX
      See Also:
    • DEFAULT_RETRIABLE_RESTART_WAIT

      public static final long DEFAULT_RETRIABLE_RESTART_WAIT
      See Also:
    • DEFAULT_MAX_QUEUE_SIZE_IN_BYTES

      public static final long DEFAULT_MAX_QUEUE_SIZE_IN_BYTES
      See Also:
    • NOTIFICATION_CONFIGURATION_FIELD_PREFIX_STRING

      public static final String NOTIFICATION_CONFIGURATION_FIELD_PREFIX_STRING
      See Also:
    • DEFAULT_CONNECTION_VALIDATION_TIMEOUT_MS

      public static final long DEFAULT_CONNECTION_VALIDATION_TIMEOUT_MS
      See Also:
    • DEFAULT_MAX_RETRIES

      public static final int DEFAULT_MAX_RETRIES
      See Also:
    • ERRORS_MAX_RETRIES

      public static final String ERRORS_MAX_RETRIES
      See Also:
    • maxRetriesOnError

      private final int maxRetriesOnError
    • TOPIC_PREFIX

      public static final io.debezium.config.Field TOPIC_PREFIX
    • RETRIABLE_RESTART_WAIT

      public static final io.debezium.config.Field RETRIABLE_RESTART_WAIT
    • TOMBSTONES_ON_DELETE

      public static final io.debezium.config.Field TOMBSTONES_ON_DELETE
    • MAX_QUEUE_SIZE

      public static final io.debezium.config.Field MAX_QUEUE_SIZE
    • MAX_BATCH_SIZE

      public static final io.debezium.config.Field MAX_BATCH_SIZE
    • POLL_INTERVAL_MS

      public static final io.debezium.config.Field POLL_INTERVAL_MS
    • MAX_QUEUE_SIZE_IN_BYTES

      public static final io.debezium.config.Field MAX_QUEUE_SIZE_IN_BYTES
    • QUEUE_PROVIDER_TYPE

      public static final io.debezium.config.Field QUEUE_PROVIDER_TYPE
    • SNAPSHOT_DELAY_MS

      public static final io.debezium.config.Field SNAPSHOT_DELAY_MS
    • SNAPSHOT_FETCH_SIZE

      public static final io.debezium.config.Field SNAPSHOT_FETCH_SIZE
    • INCREMENTAL_SNAPSHOT_CHUNK_SIZE

      public static final io.debezium.config.Field INCREMENTAL_SNAPSHOT_CHUNK_SIZE
    • INCREMENTAL_SNAPSHOT_ALLOW_SCHEMA_CHANGES

      public static final io.debezium.config.Field INCREMENTAL_SNAPSHOT_ALLOW_SCHEMA_CHANGES
    • SNAPSHOT_MODE_TABLES

      public static final io.debezium.config.Field SNAPSHOT_MODE_TABLES
    • PROVIDE_TRANSACTION_METADATA

      public static final io.debezium.config.Field PROVIDE_TRANSACTION_METADATA
    • TRANSACTION_METADATA_FACTORY

      public static final io.debezium.config.Field TRANSACTION_METADATA_FACTORY
    • EVENT_PROCESSING_FAILURE_HANDLING_MODE

      public static final io.debezium.config.Field EVENT_PROCESSING_FAILURE_HANDLING_MODE
    • CUSTOM_CONVERTERS

      public static final io.debezium.config.Field CUSTOM_CONVERTERS
    • CUSTOM_POST_PROCESSORS

      public static final io.debezium.config.Field CUSTOM_POST_PROCESSORS
    • SKIPPED_OPERATIONS

      public static final io.debezium.config.Field SKIPPED_OPERATIONS
    • SKIP_MESSAGES_WITHOUT_CHANGE

      public static final io.debezium.config.Field SKIP_MESSAGES_WITHOUT_CHANGE
      Specifies whether to skip messages containing no updates in included columns
    • BINARY_HANDLING_MODE

      public static final io.debezium.config.Field BINARY_HANDLING_MODE
    • SCHEMA_NAME_ADJUSTMENT_MODE

      public static final io.debezium.config.Field SCHEMA_NAME_ADJUSTMENT_MODE
    • FIELD_NAME_ADJUSTMENT_MODE

      public static final io.debezium.config.Field FIELD_NAME_ADJUSTMENT_MODE
    • QUERY_FETCH_SIZE

      public static final io.debezium.config.Field QUERY_FETCH_SIZE
    • SNAPSHOT_MAX_THREADS

      public static final io.debezium.config.Field SNAPSHOT_MAX_THREADS
    • SNAPSHOT_MAX_THREADS_MULTIPLIER

      public static final io.debezium.config.Field SNAPSHOT_MAX_THREADS_MULTIPLIER
    • LEGACY_SNAPSHOT_MAX_THREADS

      public static final io.debezium.config.Field LEGACY_SNAPSHOT_MAX_THREADS
    • SIGNAL_DATA_COLLECTION

      public static final io.debezium.config.Field SIGNAL_DATA_COLLECTION
    • SIGNAL_POLL_INTERVAL_MS

      public static final io.debezium.config.Field SIGNAL_POLL_INTERVAL_MS
    • SIGNAL_ENABLED_CHANNELS

      public static final io.debezium.config.Field SIGNAL_ENABLED_CHANNELS
    • TOPIC_NAMING_STRATEGY

      public static final io.debezium.config.Field TOPIC_NAMING_STRATEGY
    • CUSTOM_RETRIABLE_EXCEPTION

      public static final io.debezium.config.Field CUSTOM_RETRIABLE_EXCEPTION
    • NOTIFICATION_ENABLED_CHANNELS

      public static final io.debezium.config.Field NOTIFICATION_ENABLED_CHANNELS
    • SOURCE_INFO_STRUCT_MAKER

      public static final io.debezium.config.Field SOURCE_INFO_STRUCT_MAKER
    • MAX_RETRIES_ON_ERROR

      public static final io.debezium.config.Field MAX_RETRIES_ON_ERROR
    • CUSTOM_METRIC_TAGS

      public static final io.debezium.config.Field CUSTOM_METRIC_TAGS
    • INCREMENTAL_SNAPSHOT_WATERMARKING_STRATEGY

      public static final io.debezium.config.Field INCREMENTAL_SNAPSHOT_WATERMARKING_STRATEGY
    • SNAPSHOT_MODE_CUSTOM_NAME

      public static final io.debezium.config.Field SNAPSHOT_MODE_CUSTOM_NAME
    • EVENT_CONVERTING_FAILURE_HANDLING_MODE

      public static final io.debezium.config.Field EVENT_CONVERTING_FAILURE_HANDLING_MODE
    • STREAMING_DELAY_MS

      public static final io.debezium.config.Field STREAMING_DELAY_MS
    • SNAPSHOT_LOCKING_MODE_CUSTOM_NAME

      public static final io.debezium.config.Field SNAPSHOT_LOCKING_MODE_CUSTOM_NAME
    • SNAPSHOT_QUERY_MODE

      public static final io.debezium.config.Field SNAPSHOT_QUERY_MODE
    • SNAPSHOT_QUERY_MODE_CUSTOM_NAME

      public static final io.debezium.config.Field SNAPSHOT_QUERY_MODE_CUSTOM_NAME
    • SNAPSHOT_MODE_CONFIGURATION_BASED_SNAPSHOT_DATA

      public static final io.debezium.config.Field SNAPSHOT_MODE_CONFIGURATION_BASED_SNAPSHOT_DATA
    • SNAPSHOT_MODE_CONFIGURATION_BASED_SNAPSHOT_SCHEMA

      public static final io.debezium.config.Field SNAPSHOT_MODE_CONFIGURATION_BASED_SNAPSHOT_SCHEMA
    • SNAPSHOT_MODE_CONFIGURATION_BASED_START_STREAM

      public static final io.debezium.config.Field SNAPSHOT_MODE_CONFIGURATION_BASED_START_STREAM
    • SNAPSHOT_MODE_CONFIGURATION_BASED_SNAPSHOT_ON_SCHEMA_ERROR

      public static final io.debezium.config.Field SNAPSHOT_MODE_CONFIGURATION_BASED_SNAPSHOT_ON_SCHEMA_ERROR
    • SNAPSHOT_MODE_CONFIGURATION_BASED_SNAPSHOT_ON_DATA_ERROR

      public static final io.debezium.config.Field SNAPSHOT_MODE_CONFIGURATION_BASED_SNAPSHOT_ON_DATA_ERROR
    • LOG_POSITION_CHECK_ENABLED

      public static final io.debezium.config.Field LOG_POSITION_CHECK_ENABLED
    • ADVANCED_METRICS_ENABLE

      public static final io.debezium.config.Field ADVANCED_METRICS_ENABLE
    • CONNECTION_VALIDATION_TIMEOUT_MS

      public static final io.debezium.config.Field CONNECTION_VALIDATION_TIMEOUT_MS
    • EXECUTOR_SHUTDOWN_TIMEOUT_MS

      public static final io.debezium.config.Field EXECUTOR_SHUTDOWN_TIMEOUT_MS
    • OPEN_LINEAGE_INTEGRATION_ENABLED

      public static io.debezium.config.Field OPEN_LINEAGE_INTEGRATION_ENABLED
      Configuration field to enable or disable OpenLineage integration.

      When enabled, Debezium will emit data lineage metadata through the OpenLineage API, providing visibility into data flows and transformations performed by the connector.

      Configuration key: openlineage.integration.enabled
      Type: Boolean
      Default: false
      Importance: Low

    • OPEN_LINEAGE_INTEGRATION_CONFIG_FILE_PATH

      public static io.debezium.config.Field OPEN_LINEAGE_INTEGRATION_CONFIG_FILE_PATH
      Configuration field specifying the path to the OpenLineage configuration file.

      This file contains OpenLineage client configuration settings such as transport configuration, backend settings, and other OpenLineage-specific options.

      Configuration key: openlineage.integration.config.file.path
      Type: String
      Default: ./openlineage.yml
      Importance: Low

      See Also:
    • OPEN_LINEAGE_INTEGRATION_JOB_NAMESPACE

      public static io.debezium.config.Field OPEN_LINEAGE_INTEGRATION_JOB_NAMESPACE
      Configuration field defining the namespace for the Debezium job in OpenLineage.

      The namespace is used to organize and categorize jobs within the OpenLineage metadata system. It helps in identifying and grouping related data pipeline jobs.

      Configuration key: openlineage.integration.job.namespace
      Type: String
      Default: None
      Importance: Low

    • OPEN_LINEAGE_INTEGRATION_JOB_DESCRIPTION

      public static io.debezium.config.Field OPEN_LINEAGE_INTEGRATION_JOB_DESCRIPTION
      Configuration field providing a human-readable description for the Debezium job.

      This description appears in OpenLineage metadata and helps users understand the purpose and function of the specific Debezium connector job.

      Configuration key: openlineage.integration.job.description
      Type: String
      Default: "Debezium change data capture job"
      Importance: Low

    • OPEN_LINEAGE_INTEGRATION_JOB_TAGS

      public static io.debezium.config.Field OPEN_LINEAGE_INTEGRATION_JOB_TAGS
      Configuration field for specifying tags associated with the Debezium job.

      Tags provide additional metadata and categorization for the job in OpenLineage. They are specified as a comma-separated list of key-value pairs.

      Configuration key: openlineage.integration.job.tags
      Type: List
      Format: Comma-separated key-value pairs (e.g., k1=v1,k2=v2)
      Default: None
      Importance: Low

      Example:

      
       openlineage.integration.job.tags=environment=production,team=data-engineering
       
    • OPEN_LINEAGE_INTEGRATION_JOB_OWNERS

      public static io.debezium.config.Field OPEN_LINEAGE_INTEGRATION_JOB_OWNERS
      Configuration field for specifying the owners of the Debezium job.

      Owners identify who is responsible for the job and can be used for contact information, governance, and accountability within the OpenLineage metadata system. They are specified as a comma-separated list of key-value pairs.

      Configuration key: openlineage.integration.job.owners
      Type: List
      Format: Comma-separated key-value pairs (e.g., k1=v1,k2=v2)
      Default: None
      Importance: Low

      Example:

      
       openlineage.integration.job.owners=email=team@company.com,slack=data-team
       
    • OPEN_LINEAGE_INTEGRATION_DATASET_KAFKA_BOOTSTRAP_SERVER

      public static io.debezium.config.Field OPEN_LINEAGE_INTEGRATION_DATASET_KAFKA_BOOTSTRAP_SERVER
      Configuration field for specifying the Kafka bootstrap server used in Kafka Connect deployment.

      This field defines the Kafka bootstrap server address that will be used as the input/output namespace for dataset lineage tracking in OpenLineage. The bootstrap server is essential for identifying the data source/destination in the lineage metadata.

      Configuration key: openlineage.integration.dataset.kafka.bootstrap.server
      Type: String
      Format: Host and port (e.g., host:port)
      Default: None
      Importance: Low

      Example:

      
       openlineage.integration.dataset.kafka.bootstrap.server=localhost:9092
       
    • CUSTOM_SANITIZE_PATTERN

      public static io.debezium.config.Field CUSTOM_SANITIZE_PATTERN
      Configuration field for overriding the default pattern used to mask sensitive configuration values.

      By default, Debezium masks values whose keys match the built-in password pattern (Configuration.PASSWORD_PATTERN). This setting allows users to provide a custom regular expression that replaces the default pattern. When set, only keys matching the custom pattern will be masked.

      Configuration key: Configuration.CUSTOM_SANITIZE_PATTERN_KEY
      Type: String
      Format: Regular expression
      Default: Configuration.PASSWORD_PATTERN
      Importance: Low

      Example:

      
       custom.sanitize.pattern=.*\.token$|.*\.credential$
       
    • EXTENDED_HEADERS_ENABLED

      public static io.debezium.config.Field EXTENDED_HEADERS_ENABLED
      Configuration field for enabling or disabling extended Debezium context headers.

      This field controls whether Debezium includes additional context headers in CDC events that provide essential metadata for tracking and identifying the source of change data capture events in downstream processing systems.

      Configuration Details:

      • Type: Boolean
      • Default: Not specified (implementation dependent)
      • Importance: Low
      • Group: Advanced (position 46)
      • Width: Short

      When enabled, this configuration adds metadata headers that can be used by downstream systems for:

      • Event source tracking and lineage
      • Identifying the origin of CDC events
      • Enhanced monitoring and debugging capabilities

      Usage Example:

      
       // Enable extended headers
       config.put("extended.headers.enabled", true);
      
       // Disable extended headers (default behavior may vary)
       config.put("extended.headers.enabled", false);
       
      Since:
      [3.2.1.Final, 3.3.0.Alpha1]
      See Also:
      • ConfigurationNames.EXTENDED_HEADERS_ENABLED
      • Field.Group.ADVANCED
    • GUARDRAIL_COLLECTIONS_MAX

      public static final io.debezium.config.Field GUARDRAIL_COLLECTIONS_MAX
    • GUARDRAIL_COLLECTIONS_LIMIT_ACTION

      public static final io.debezium.config.Field GUARDRAIL_COLLECTIONS_LIMIT_ACTION
    • STATISTICS_METRICS_ENABLED

      public static final io.debezium.config.Field STATISTICS_METRICS_ENABLED
    • CONFIG_DEFINITION

      protected static final io.debezium.config.ConfigDefinition CONFIG_DEFINITION
    • config

      private final io.debezium.config.Configuration config
    • emitTombstoneOnDelete

      private final boolean emitTombstoneOnDelete
    • maxQueueSize

      private final int maxQueueSize
    • maxBatchSize

      private final int maxBatchSize
    • maxQueueSizeInBytes

      private final long maxQueueSizeInBytes
    • queueProviderType

      private final String queueProviderType
    • pollInterval

      private final Duration pollInterval
    • logicalName

      protected final String logicalName
    • heartbeatTopicsPrefix

      private final String heartbeatTopicsPrefix
    • heartbeatInterval

      private Duration heartbeatInterval
    • snapshotDelay

      private final Duration snapshotDelay
    • streamingDelay

      private final Duration streamingDelay
    • retriableRestartWait

      private final Duration retriableRestartWait
    • snapshotFetchSize

      private final int snapshotFetchSize
    • incrementalSnapshotChunkSize

      private final int incrementalSnapshotChunkSize
    • incrementalSnapshotAllowSchemaChanges

      private final boolean incrementalSnapshotAllowSchemaChanges
    • snapshotMaxThreads

      private final int snapshotMaxThreads
    • snapshotMaxThreadsMultiplier

      private final int snapshotMaxThreadsMultiplier
    • legacySnapshotMaxThreads

      private final boolean legacySnapshotMaxThreads
    • snapshotModeCustomName

      private final String snapshotModeCustomName
    • queryFetchSize

      private final Integer queryFetchSize
    • sourceInfoStructMaker

      private final SourceInfoStructMaker<? extends AbstractSourceInfo> sourceInfoStructMaker
    • transactionMetadataFactory

      private final TransactionMetadataFactory transactionMetadataFactory
    • shouldProvideTransactionMetadata

      private final boolean shouldProvideTransactionMetadata
    • eventProcessingFailureHandlingMode

      private final CommonConnectorConfig.EventProcessingFailureHandlingMode eventProcessingFailureHandlingMode
    • binaryHandlingMode

      private final CommonConnectorConfig.BinaryHandlingMode binaryHandlingMode
    • schemaNameAdjustmentMode

      private final CommonConnectorConfig.SchemaNameAdjustmentMode schemaNameAdjustmentMode
    • fieldNameAdjustmentMode

      private final CommonConnectorConfig.FieldNameAdjustmentMode fieldNameAdjustmentMode
    • eventConvertingFailureHandlingMode

      private final CommonConnectorConfig.EventConvertingFailureHandlingMode eventConvertingFailureHandlingMode
    • signalingDataCollections

      private final List<String> signalingDataCollections
    • signalingDataCollectionIds

      private final List<TableId> signalingDataCollectionIds
    • signalPollInterval

      private final Duration signalPollInterval
    • signalEnabledChannels

      private final List<String> signalEnabledChannels
    • skippedOperations

      private final EnumSet<Envelope.Operation> skippedOperations
    • taskId

      private final String taskId
    • skipMessagesWithoutChange

      private final boolean skipMessagesWithoutChange
    • notificationTopicName

      private final String notificationTopicName
    • enabledNotificationChannels

      private final List<String> enabledNotificationChannels
    • customMetricTags

      private final Map<String,String> customMetricTags
    • incrementalSnapshotWatermarkingStrategy

      private CommonConnectorConfig.WatermarkStrategy incrementalSnapshotWatermarkingStrategy
    • beanRegistry

      protected final DefaultBeanRegistry beanRegistry
    • serviceRegistry

      protected final DefaultServiceRegistry serviceRegistry
  • Constructor Details

    • CommonConnectorConfig

      protected CommonConnectorConfig(io.debezium.config.Configuration config, int defaultSnapshotFetchSize)
  • Method Details

    • getSignalEnabledChannels

      private static List<String> getSignalEnabledChannels(io.debezium.config.Configuration config)
    • getSignalingDataCollections

      private static List<String> getSignalingDataCollections(io.debezium.config.Configuration config)
    • determineSkippedOperations

      private static EnumSet<Envelope.Operation> determineSkippedOperations(io.debezium.config.Configuration config)
    • getConfig

      @Deprecated public io.debezium.config.Configuration getConfig()
      Deprecated.
      Provides access to the "raw" config instance. In most cases, access via typed getters for individual properties on the connector config class should be preferred. TODO this should be protected in the future to force proper facade methods based access / encapsulation
    • getBeanRegistry

      public BeanRegistry getBeanRegistry()
    • getServiceRegistry

      public ServiceRegistry getServiceRegistry()
    • isEmitTombstoneOnDelete

      public boolean isEmitTombstoneOnDelete()
    • getMaxQueueSize

      public int getMaxQueueSize()
    • getMaxBatchSize

      public int getMaxBatchSize()
    • getMaxQueueSizeInBytes

      public long getMaxQueueSizeInBytes()
    • getQueueProviderType

      public String getQueueProviderType()
    • getPollInterval

      public Duration getPollInterval()
    • getLogicalName

      public String getLogicalName()
    • getContextName

      public abstract String getContextName()
    • getConnectorName

      public abstract String getConnectorName()
    • getSnapshotMode

      public abstract io.debezium.config.EnumeratedValue getSnapshotMode()
    • getSnapshotLockingMode

      public abstract Optional<? extends io.debezium.config.EnumeratedValue> getSnapshotLockingMode()
    • getHeartbeatTopicsPrefix

      public String getHeartbeatTopicsPrefix()
    • getHeartbeatInterval

      public Duration getHeartbeatInterval()
    • setHeartbeatInterval

      protected void setHeartbeatInterval(int heartbeatIntervalMs)
    • getSnapshotDelay

      public Duration getSnapshotDelay()
    • getStreamingDelay

      public Duration getStreamingDelay()
    • getSnapshotFetchSize

      public int getSnapshotFetchSize()
    • getSnapshotMaxThreads

      public int getSnapshotMaxThreads()
    • getSnapshotMaxThreadsMultiplier

      public int getSnapshotMaxThreadsMultiplier()
    • getSnapshotMaxThreadsTableMultiplierAsInteger

      public int getSnapshotMaxThreadsTableMultiplierAsInteger(TableId tableId)
    • getMaxSnapshotMaxThreadsMultiplier

      public int getMaxSnapshotMaxThreadsMultiplier()
    • isLegacySnapshotMaxThreads

      public boolean isLegacySnapshotMaxThreads()
    • getSnapshotModeCustomName

      public String getSnapshotModeCustomName()
    • getQueryFetchSize

      public int getQueryFetchSize()
    • getIncrementalSnapshotChunkSize

      public int getIncrementalSnapshotChunkSize()
    • getNotificationTopic

      public String getNotificationTopic()
    • getEnabledNotificationChannels

      public List<String> getEnabledNotificationChannels()
    • shouldProvideTransactionMetadata

      public boolean shouldProvideTransactionMetadata()
    • skipMessagesWithoutChange

      public boolean skipMessagesWithoutChange()
    • getGuardrailCollectionsMax

      public int getGuardrailCollectionsMax()
    • getGuardrailCollectionsLimitAction

      public CommonConnectorConfig.GuardrailCollectionsLimitAction getGuardrailCollectionsLimitAction()
    • validateGuardrailLimits

      public void validateGuardrailLimits(Collection<String> tableNames)
      Validates that the number of captured tables/collections does not exceed the configured guardrail limit. Takes the appropriate action (warn or fail) based on the guardrail configuration.
      Parameters:
      tableNames - the names of tables/collections for logging
      Throws:
      io.debezium.DebeziumException - if the guardrail limit is exceeded and the action is set to FAIL
    • validateGuardrailLimits

      public void validateGuardrailLimits(Collection<String> tableNames, boolean isHistorizedSchemaValidatingAllTables)
      Validates that the number of captured tables/collections does not exceed the configured guardrail limit. Takes the appropriate action (warn or fail) based on the guardrail configuration. This overload is for schema-history based connectors to provide enhanced error messages.
      Parameters:
      tableNames - the names of tables/collections for logging
      isHistorizedSchemaValidatingAllTables - true if this is a historized schema connector validating all tables (not just captured tables) due to store.only.captured.tables.ddl=false
      Throws:
      io.debezium.DebeziumException - if the guardrail limit is exceeded and the action is set to FAIL
    • getEventProcessingFailureHandlingMode

      public CommonConnectorConfig.EventProcessingFailureHandlingMode getEventProcessingFailureHandlingMode()
    • supportsOperationFiltering

      public boolean supportsOperationFiltering()
      Whether a particular connector supports an optimized way for implementing operation skipping, or not.
    • supportsSchemaChangesDuringIncrementalSnapshot

      protected boolean supportsSchemaChangesDuringIncrementalSnapshot()
    • isIncrementalSnapshotSchemaChangesEnabled

      public boolean isIncrementalSnapshotSchemaChangesEnabled()
    • getTopicNamingStrategy

      public io.debezium.spi.topic.TopicNamingStrategy getTopicNamingStrategy(io.debezium.config.Field topicNamingStrategyField)
    • getTopicNamingStrategy

      public io.debezium.spi.topic.TopicNamingStrategy getTopicNamingStrategy(io.debezium.config.Field topicNamingStrategyField, boolean multiPartitionMode)
    • getSourceInfoStructMaker

      public <T extends AbstractSourceInfo> SourceInfoStructMaker<T> getSourceInfoStructMaker()
    • getTransactionMetadataFactory

      public TransactionMetadataFactory getTransactionMetadataFactory()
    • getSkippedOperations

      public EnumSet<Envelope.Operation> getSkippedOperations()
    • getDataCollectionsToBeSnapshotted

      public List<String> getDataCollectionsToBeSnapshotted()
    • getCustomMetricTags

      public Map<String,String> getCustomMetricTags()
    • createCustomMetricTags

      public Map<String,String> createCustomMetricTags(io.debezium.config.Configuration config)
    • getIncrementalSnapshotWatermarkingStrategy

      public CommonConnectorConfig.WatermarkStrategy getIncrementalSnapshotWatermarkingStrategy()
    • getEventConvertingFailureHandlingMode

      public CommonConnectorConfig.EventConvertingFailureHandlingMode getEventConvertingFailureHandlingMode()
    • isSchemaChangesHistoryEnabled

      public boolean isSchemaChangesHistoryEnabled()
      Returns:
      true if the connector should emit messages about schema changes into a public facing topic.
    • isSchemaCommentsHistoryEnabled

      public boolean isSchemaCommentsHistoryEnabled()
      Returns:
      true if the connector should emit messages which include table and column comments.
    • validate

      public boolean validate(Iterable<io.debezium.config.Field> fields, io.debezium.config.Field.ValidationOutput problems)
      Validates the supplied fields in this configuration. Extra fields not described by the supplied fields parameter will not be validated.
      Parameters:
      fields - the fields
      problems - the consumer to eb called with each problem; never null
      Returns:
      true if the value is considered valid, or false if it is not valid
    • validateAndRecord

      public boolean validateAndRecord(Iterable<io.debezium.config.Field> fields, Consumer<String> problems)
      Validate the supplied fields in this configuration. Extra fields not described by the supplied fields parameter will not be validated.
      Parameters:
      fields - the fields
      problems - the consumer to be called with each problem; never null
      Returns:
      true if the value is considered valid, or false if it is not valid
    • validateMaxQueueSize

      private static int validateMaxQueueSize(io.debezium.config.Configuration config, io.debezium.config.Field field, io.debezium.config.Field.ValidationOutput problems)
    • validateSkippedOperation

      protected static int validateSkippedOperation(io.debezium.config.Configuration config, io.debezium.config.Field field, io.debezium.config.Field.ValidationOutput problems)
    • validateSignalDataCollection

      private static int validateSignalDataCollection(io.debezium.config.Configuration configuration, io.debezium.config.Field field, io.debezium.config.Field.ValidationOutput problems)
    • isUsingAvroConverter

      private static boolean isUsingAvroConverter(io.debezium.config.Configuration config)
    • getSnapshotMaxThreadsTableMultiplierAsInteger

      private static int getSnapshotMaxThreadsTableMultiplierAsInteger(io.debezium.config.Configuration config, String configKey)
    • snapshotLockingModeCustomName

      public String snapshotLockingModeCustomName()
    • snapshotModeConfigurationBasedSnapshotData

      public boolean snapshotModeConfigurationBasedSnapshotData()
    • snapshotModeConfigurationBasedSnapshotSchema

      public boolean snapshotModeConfigurationBasedSnapshotSchema()
    • snapshotModeConfigurationBasedStream

      public boolean snapshotModeConfigurationBasedStream()
    • snapshotModeConfigurationBasedSnapshotOnSchemaError

      public boolean snapshotModeConfigurationBasedSnapshotOnSchemaError()
    • snapshotModeConfigurationBasedSnapshotOnDataError

      public boolean snapshotModeConfigurationBasedSnapshotOnDataError()
    • isLogPositionCheckEnabled

      public boolean isLogPositionCheckEnabled()
    • isAdvancedMetricsEnabled

      public boolean isAdvancedMetricsEnabled()
    • isExtendedHeadersEnabled

      public boolean isExtendedHeadersEnabled()
    • getConnectionValidationTimeout

      public Duration getConnectionValidationTimeout()
    • getExecutorShutdownTimeout

      public Duration getExecutorShutdownTimeout()
    • snapshotQueryMode

      public io.debezium.config.EnumeratedValue snapshotQueryMode()
    • snapshotQueryModeCustomName

      public String snapshotQueryModeCustomName()
    • getSourceInfoStructMaker

      protected abstract SourceInfoStructMaker<?> getSourceInfoStructMaker(CommonConnectorConfig.Version version)
      Returns the connector-specific SourceInfoStructMaker based on the given configuration.
    • binaryHandlingMode

      public CommonConnectorConfig.BinaryHandlingMode binaryHandlingMode()
    • schemaNameAdjuster

      public SchemaNameAdjuster schemaNameAdjuster()
    • fieldNameAdjuster

      public SchemaNameAdjuster fieldNameAdjuster()
    • getSignalingDataCollectionIds

      public List<String> getSignalingDataCollectionIds()
    • getSignalingDataCollectionTableIds

      public List<TableId> getSignalingDataCollectionTableIds()
    • getSignalPollInterval

      public Duration getSignalPollInterval()
    • getEnabledChannels

      public List<String> getEnabledChannels()
    • parseSignallingMessage

      public Optional<String[]> parseSignallingMessage(org.apache.kafka.connect.data.Struct value, String fieldName)
    • isSignalDataCollection

      public boolean isSignalDataCollection(io.debezium.spi.schema.DataCollectionId dataCollectionId)
    • customRetriableException

      public Optional<String> customRetriableException()
    • getMaxRetriesOnError

      public int getMaxRetriesOnError()
    • getTaskId

      public String getTaskId()
    • isStatisticsMetricsEnabled

      public boolean isStatisticsMetricsEnabled()
    • createHeartbeat

      @Deprecated public Heartbeat createHeartbeat(io.debezium.spi.topic.TopicNamingStrategy topicNamingStrategy, SchemaNameAdjuster schemaNameAdjuster, HeartbeatConnectionProvider connectionProvider, HeartbeatErrorHandler errorHandler)
      Deprecated.
      Use HeartbeatFactory instead.
    • validateTopicName

      public static int validateTopicName(io.debezium.config.Configuration config, io.debezium.config.Field field, io.debezium.config.Field.ValidationOutput problems)
    • getSourceInfoStructMaker

      public <T extends AbstractSourceInfo> SourceInfoStructMaker<T> getSourceInfoStructMaker(io.debezium.config.Field sourceInfoStructMakerField, String connector, String version, CommonConnectorConfig connectorConfig)
    • getTransactionMetadataFactory

      public TransactionMetadataFactory getTransactionMetadataFactory(io.debezium.config.Field transactionMetadataFactoryField)