Class PostgresConnectorEmbeddedDebeziumConfiguration
- java.lang.Object
-
- org.apache.camel.component.debezium.configuration.EmbeddedDebeziumConfiguration
-
- org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration
-
- All Implemented Interfaces:
Cloneable
@UriParams public class PostgresConnectorEmbeddedDebeziumConfiguration extends org.apache.camel.component.debezium.configuration.EmbeddedDebeziumConfiguration
-
-
Constructor Summary
Constructors Constructor Description PostgresConnectorEmbeddedDebeziumConfiguration()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Class
configureConnectorClass()
protected io.debezium.config.Configuration
createConnectorConfiguration()
String
getBinaryHandlingMode()
String
getColumnBlacklist()
String
getColumnExcludeList()
String
getColumnIncludeList()
String
getColumnPropagateSourceType()
String
getColumnWhitelist()
String
getConnectorDatabaseType()
String
getConverters()
String
getDatabaseDbname()
String
getDatabaseHistoryFileFilename()
String
getDatabaseHostname()
String
getDatabaseInitialStatements()
String
getDatabasePassword()
int
getDatabasePort()
String
getDatabaseServerName()
String
getDatabaseSslcert()
String
getDatabaseSslfactory()
String
getDatabaseSslkey()
String
getDatabaseSslmode()
String
getDatabaseSslpassword()
String
getDatabaseSslrootcert()
String
getDatabaseUser()
String
getDatatypePropagateSourceType()
String
getDecimalHandlingMode()
String
getEventProcessingFailureHandlingMode()
String
getHeartbeatActionQuery()
int
getHeartbeatIntervalMs()
String
getHeartbeatTopicsPrefix()
String
getHstoreHandlingMode()
int
getIncrementalSnapshotChunkSize()
String
getIntervalHandlingMode()
int
getMaxBatchSize()
int
getMaxQueueSize()
long
getMaxQueueSizeInBytes()
String
getMessageKeyColumns()
String
getMessagePrefixExcludeList()
String
getMessagePrefixIncludeList()
String
getPluginName()
long
getPollIntervalMs()
String
getPublicationAutocreateMode()
String
getPublicationName()
int
getQueryFetchSize()
long
getRetriableRestartConnectorWaitMs()
String
getSchemaBlacklist()
String
getSchemaExcludeList()
String
getSchemaIncludeList()
String
getSchemaNameAdjustmentMode()
String
getSchemaRefreshMode()
String
getSchemaWhitelist()
String
getSignalDataCollection()
String
getSkippedOperations()
int
getSlotMaxRetries()
String
getSlotName()
long
getSlotRetryDelayMs()
String
getSlotStreamParams()
String
getSnapshotCustomClass()
long
getSnapshotDelayMs()
int
getSnapshotFetchSize()
String
getSnapshotIncludeCollectionList()
long
getSnapshotLockTimeoutMs()
int
getSnapshotMaxThreads()
String
getSnapshotMode()
String
getSnapshotSelectStatementOverrides()
String
getSourceStructVersion()
int
getStatusUpdateIntervalMs()
String
getTableBlacklist()
String
getTableExcludeList()
String
getTableIncludeList()
String
getTableWhitelist()
String
getTimePrecisionMode()
String
getTransactionTopic()
String
getUnavailableValuePlaceholder()
long
getXminFetchIntervalMs()
boolean
isDatabaseTcpkeepalive()
boolean
isIncludeSchemaComments()
boolean
isIncludeUnknownDatatypes()
boolean
isProvideTransactionMetadata()
boolean
isSanitizeFieldNames()
boolean
isSlotDropOnStop()
boolean
isTableIgnoreBuiltin()
boolean
isTombstonesOnDelete()
void
setBinaryHandlingMode(String binaryHandlingMode)
Specify how binary (blob, binary, etc.) columns should be represented in change events, including:'bytes' represents binary data as byte array (default)'base64' represents binary data as base64-encoded string'hex' represents binary data as hex-encoded (base16) stringvoid
setColumnBlacklist(String columnBlacklist)
Regular expressions matching columns to exclude from change events (deprecated, use "column.exclude.list" instead)void
setColumnExcludeList(String columnExcludeList)
Regular expressions matching columns to exclude from change eventsvoid
setColumnIncludeList(String columnIncludeList)
Regular expressions matching columns to include in change eventsvoid
setColumnPropagateSourceType(String columnPropagateSourceType)
A comma-separated list of regular expressions matching fully-qualified names of columns that adds the columns original type and original length as parameters to the corresponding field schemas in the emitted change records.void
setColumnWhitelist(String columnWhitelist)
Regular expressions matching columns to include in change events (deprecated, use "column.include.list" instead)void
setConverters(String converters)
Optional list of custom converters that would be used instead of default ones.void
setDatabaseDbname(String databaseDbname)
The name of the database from which the connector should capture changesvoid
setDatabaseHistoryFileFilename(String databaseHistoryFileFilename)
The path to the file that will be used to record the database historyvoid
setDatabaseHostname(String databaseHostname)
Resolvable hostname or IP address of the database server.void
setDatabaseInitialStatements(String databaseInitialStatements)
A semicolon separated list of SQL statements to be executed when a JDBC connection to the database is established.void
setDatabasePassword(String databasePassword)
Password of the database user to be used when connecting to the database.void
setDatabasePort(int databasePort)
Port of the database server.void
setDatabaseServerName(String databaseServerName)
Unique name that identifies the database server and all recorded offsets, and that is used as a prefix for all schemas and topics.void
setDatabaseSslcert(String databaseSslcert)
File containing the SSL Certificate for the client.void
setDatabaseSslfactory(String databaseSslfactory)
A name of class to that creates SSL Sockets.void
setDatabaseSslkey(String databaseSslkey)
File containing the SSL private key for the client.void
setDatabaseSslmode(String databaseSslmode)
Whether to use an encrypted connection to Postgres.void
setDatabaseSslpassword(String databaseSslpassword)
Password to access the client private key from the file specified by 'database.sslkey'.void
setDatabaseSslrootcert(String databaseSslrootcert)
File containing the root certificate(s) against which the server is validated.void
setDatabaseTcpkeepalive(boolean databaseTcpkeepalive)
Enable or disable TCP keep-alive probe to avoid dropping TCP connectionvoid
setDatabaseUser(String databaseUser)
Name of the database user to be used when connecting to the database.void
setDatatypePropagateSourceType(String datatypePropagateSourceType)
A comma-separated list of regular expressions matching the database-specific data type names that adds the data type's original type and original length as parameters to the corresponding field schemas in the emitted change records.void
setDecimalHandlingMode(String decimalHandlingMode)
Specify how DECIMAL and NUMERIC columns should be represented in change events, including:'precise' (the default) uses java.math.BigDecimal to represent values, which are encoded in the change events using a binary representation and Kafka Connect's 'org.apache.kafka.connect.data.Decimal' type; 'string' uses string to represent values; 'double' represents values using Java's 'double', which may not offer the precision but will be far easier to use in consumers.void
setEventProcessingFailureHandlingMode(String eventProcessingFailureHandlingMode)
Specify how failures during processing of events (i.e.void
setHeartbeatActionQuery(String heartbeatActionQuery)
The query executed with every heartbeat.void
setHeartbeatIntervalMs(int heartbeatIntervalMs)
Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic.void
setHeartbeatTopicsPrefix(String heartbeatTopicsPrefix)
The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat.void
setHstoreHandlingMode(String hstoreHandlingMode)
Specify how HSTORE columns should be represented in change events, including:'json' represents values as string-ified JSON (default)'map' represents values as a key/value mapvoid
setIncludeSchemaComments(boolean includeSchemaComments)
Whether the connector parse table and column's comment to metadata object.Note: Enable this option will bring the implications on memory usage.void
setIncludeUnknownDatatypes(boolean includeUnknownDatatypes)
Specify whether the fields of data type not supported by Debezium should be processed:'false' (the default) omits the fields; 'true' converts the field into an implementation dependent binary representation.void
setIncrementalSnapshotChunkSize(int incrementalSnapshotChunkSize)
The maximum size of chunk for incremental snapshottingvoid
setIntervalHandlingMode(String intervalHandlingMode)
Specify how INTERVAL columns should be represented in change events, including:'string' represents values as an exact ISO formatted string'numeric' (default) represents values using the inexact conversion into microsecondsvoid
setMaxBatchSize(int maxBatchSize)
Maximum size of each batch of source records.void
setMaxQueueSize(int maxQueueSize)
Maximum size of the queue for change events read from the database log but not yet recorded or forwarded.void
setMaxQueueSizeInBytes(long maxQueueSizeInBytes)
Maximum size of the queue in bytes for change events read from the database log but not yet recorded or forwarded.void
setMessageKeyColumns(String messageKeyColumns)
A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key.void
setMessagePrefixExcludeList(String messagePrefixExcludeList)
A comma-separated list of regular expressions that match the logical decoding message prefixes to be excluded from monitoring.void
setMessagePrefixIncludeList(String messagePrefixIncludeList)
A comma-separated list of regular expressions that match the logical decoding message prefixes to be monitored.void
setPluginName(String pluginName)
The name of the Postgres logical decoding plugin installed on the server.void
setPollIntervalMs(long pollIntervalMs)
Time to wait for new change events to appear after receiving no events, given in milliseconds.void
setProvideTransactionMetadata(boolean provideTransactionMetadata)
Enables transaction metadata extraction together with event countingvoid
setPublicationAutocreateMode(String publicationAutocreateMode)
Applies only when streaming changes using pgoutput.Determine how creation of a publication should work, the default is all_tables.DISABLED - The connector will not attempt to create a publication at all.void
setPublicationName(String publicationName)
The name of the Postgres 10+ publication used for streaming changes from a plugin.Defaults to 'dbz_publication'void
setQueryFetchSize(int queryFetchSize)
The maximum number of records that should be loaded into memory while streaming.void
setRetriableRestartConnectorWaitMs(long retriableRestartConnectorWaitMs)
Time to wait before restarting connector after retriable exception occurs.void
setSanitizeFieldNames(boolean sanitizeFieldNames)
Whether field names will be sanitized to Avro naming conventionsvoid
setSchemaBlacklist(String schemaBlacklist)
The schemas for which events must not be captured (deprecated, use "schema.exclude.list" instead)void
setSchemaExcludeList(String schemaExcludeList)
The schemas for which events must not be capturedvoid
setSchemaIncludeList(String schemaIncludeList)
The schemas for which events should be capturedvoid
setSchemaNameAdjustmentMode(String schemaNameAdjustmentMode)
Specify how schema names should be adjusted for compatibility with the message converter used by the connector, including:'avro' replaces the characters that cannot be used in the Avro type name with underscore (default)'none' does not apply any adjustmentvoid
setSchemaRefreshMode(String schemaRefreshMode)
Specify the conditions that trigger a refresh of the in-memory schema for a table.void
setSchemaWhitelist(String schemaWhitelist)
The schemas for which events should be captured (deprecated, use "schema.include.list" instead)void
setSignalDataCollection(String signalDataCollection)
The name of the data collection that is used to send signals/commands to Debezium.void
setSkippedOperations(String skippedOperations)
The comma-separated list of operations to skip during streaming, defined as: 'c' for inserts/create; 'u' for updates; 'd' for deletes, 't' for truncates, and 'none' to indicate nothing skipped.void
setSlotDropOnStop(boolean slotDropOnStop)
Whether or not to drop the logical replication slot when the connector finishes orderlyBy default the replication is kept so that on restart progress can resume from the last recorded locationvoid
setSlotMaxRetries(int slotMaxRetries)
How many times to retry connecting to a replication slot when an attempt fails.void
setSlotName(String slotName)
The name of the Postgres logical decoding slot created for streaming changes from a plugin.Defaults to 'debeziumvoid
setSlotRetryDelayMs(long slotRetryDelayMs)
Time to wait between retry attempts when the connector fails to connect to a replication slot, given in milliseconds.void
setSlotStreamParams(String slotStreamParams)
Any optional parameters used by logical decoding plugin.void
setSnapshotCustomClass(String snapshotCustomClass)
When 'snapshot.mode' is set as custom, this setting must be set to specify a fully qualified class name to load (via the default class loader).This class must implement the 'Snapshotter' interface and is called on each app boot to determine whether to do a snapshot and how to build queries.void
setSnapshotDelayMs(long snapshotDelayMs)
A delay period before a snapshot will begin, given in milliseconds.void
setSnapshotFetchSize(int snapshotFetchSize)
The maximum number of records that should be loaded into memory while performing a snapshotvoid
setSnapshotIncludeCollectionList(String snapshotIncludeCollectionList)
this setting must be set to specify a list of tables/collections whose snapshot must be taken on creating or restarting the connector.void
setSnapshotLockTimeoutMs(long snapshotLockTimeoutMs)
The maximum number of millis to wait for table locks at the beginning of a snapshot.void
setSnapshotMaxThreads(int snapshotMaxThreads)
The maximum number of threads used to perform the snapshot.void
setSnapshotMode(String snapshotMode)
The criteria for running a snapshot upon startup of the connector.void
setSnapshotSelectStatementOverrides(String snapshotSelectStatementOverrides)
This property contains a comma-separated list of fully-qualified tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on thespecific connectors.void
setSourceStructVersion(String sourceStructVersion)
A version of the format of the publicly visible source part in the messagevoid
setStatusUpdateIntervalMs(int statusUpdateIntervalMs)
Frequency for sending replication connection status updates to the server, given in milliseconds.void
setTableBlacklist(String tableBlacklist)
A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoring (deprecated, use "table.exclude.list" instead)void
setTableExcludeList(String tableExcludeList)
A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoringvoid
setTableIgnoreBuiltin(boolean tableIgnoreBuiltin)
Flag specifying whether built-in tables should be ignored.void
setTableIncludeList(String tableIncludeList)
The tables for which changes are to be capturedvoid
setTableWhitelist(String tableWhitelist)
The tables for which changes are to be captured (deprecated, use "table.include.list" instead)void
setTimePrecisionMode(String timePrecisionMode)
Time, date, and timestamps can be represented with different kinds of precisions, including:'adaptive' (the default) bases the precision of time, date, and timestamp values on the database column's precision; 'adaptive_time_microseconds' like 'adaptive' mode, but TIME fields always use microseconds precision;'connect' always represents time, date, and timestamp values using Kafka Connect's built-in representations for Time, Date, and Timestamp, which uses millisecond precision regardless of the database columns' precision .void
setTombstonesOnDelete(boolean tombstonesOnDelete)
Whether delete operations should be represented by a delete event and a subsquenttombstone event (true) or only by a delete event (false).void
setTransactionTopic(String transactionTopic)
The name of the transaction metadata topic.void
setUnavailableValuePlaceholder(String unavailableValuePlaceholder)
Specify the constant that will be provided by Debezium to indicate that the original value is a toasted value not provided by the database.void
setXminFetchIntervalMs(long xminFetchIntervalMs)
Specify how often (in ms) the xmin will be fetched from the replication slot.protected org.apache.camel.component.debezium.configuration.ConfigurationValidation
validateConnectorConfiguration()
-
Methods inherited from class org.apache.camel.component.debezium.configuration.EmbeddedDebeziumConfiguration
addPropertyIfNotNull, addPropertyIfNotNull, copy, createDebeziumConfiguration, getAdditionalProperties, getConnectorClass, getInternalKeyConverter, getInternalValueConverter, getName, getOffsetCommitPolicy, getOffsetCommitTimeoutMs, getOffsetFlushIntervalMs, getOffsetStorage, getOffsetStorageFileName, getOffsetStoragePartitions, getOffsetStorageReplicationFactor, getOffsetStorageTopic, isFieldValueNotSet, setAdditionalProperties, setConnectorClass, setInternalKeyConverter, setInternalValueConverter, setName, setOffsetCommitPolicy, setOffsetCommitTimeoutMs, setOffsetFlushIntervalMs, setOffsetStorage, setOffsetStorageFileName, setOffsetStoragePartitions, setOffsetStorageReplicationFactor, setOffsetStorageTopic, validateConfiguration
-
-
-
-
Method Detail
-
setMessageKeyColumns
public void setMessageKeyColumns(String messageKeyColumns)
A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key. Each expression must match the pattern ': ',where the table names could be defined as (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the specific connector,and the key columns are a comma-separated list of columns representing the custom key. For any table without an explicit key configuration the table's primary key column(s) will be used as message key.Example: dbserver1.inventory.orderlines:orderId,orderLineId;dbserver1.inventory.orders:id
-
getMessageKeyColumns
public String getMessageKeyColumns()
-
setQueryFetchSize
public void setQueryFetchSize(int queryFetchSize)
The maximum number of records that should be loaded into memory while streaming. A value of `0` uses the default JDBC fetch size.
-
getQueryFetchSize
public int getQueryFetchSize()
-
setPublicationName
public void setPublicationName(String publicationName)
The name of the Postgres 10+ publication used for streaming changes from a plugin.Defaults to 'dbz_publication'
-
getPublicationName
public String getPublicationName()
-
setColumnBlacklist
public void setColumnBlacklist(String columnBlacklist)
Regular expressions matching columns to exclude from change events (deprecated, use "column.exclude.list" instead)
-
getColumnBlacklist
public String getColumnBlacklist()
-
setSchemaIncludeList
public void setSchemaIncludeList(String schemaIncludeList)
The schemas for which events should be captured
-
getSchemaIncludeList
public String getSchemaIncludeList()
-
setTableBlacklist
public void setTableBlacklist(String tableBlacklist)
A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoring (deprecated, use "table.exclude.list" instead)
-
getTableBlacklist
public String getTableBlacklist()
-
setSchemaBlacklist
public void setSchemaBlacklist(String schemaBlacklist)
The schemas for which events must not be captured (deprecated, use "schema.exclude.list" instead)
-
getSchemaBlacklist
public String getSchemaBlacklist()
-
setSlotMaxRetries
public void setSlotMaxRetries(int slotMaxRetries)
How many times to retry connecting to a replication slot when an attempt fails.
-
getSlotMaxRetries
public int getSlotMaxRetries()
-
setSchemaRefreshMode
public void setSchemaRefreshMode(String schemaRefreshMode)
Specify the conditions that trigger a refresh of the in-memory schema for a table. 'columns_diff' (the default) is the safest mode, ensuring the in-memory schema stays in-sync with the database table's schema at all times. 'columns_diff_exclude_unchanged_toast' instructs the connector to refresh the in-memory schema cache if there is a discrepancy between it and the schema derived from the incoming message, unless unchanged TOASTable data fully accounts for the discrepancy. This setting can improve connector performance significantly if there are frequently-updated tables that have TOASTed data that are rarely part of these updates. However, it is possible for the in-memory schema to become outdated if TOASTable columns are dropped from the table.
-
getSchemaRefreshMode
public String getSchemaRefreshMode()
-
setDatabaseSslmode
public void setDatabaseSslmode(String databaseSslmode)
Whether to use an encrypted connection to Postgres. Options include'disable' (the default) to use an unencrypted connection; 'require' to use a secure (encrypted) connection, and fail if one cannot be established; 'verify-ca' like 'required' but additionally verify the server TLS certificate against the configured Certificate Authority (CA) certificates, or fail if no valid matching CA certificates are found; or'verify-full' like 'verify-ca' but additionally verify that the server certificate matches the host to which the connection is attempted.
-
getDatabaseSslmode
public String getDatabaseSslmode()
-
setUnavailableValuePlaceholder
public void setUnavailableValuePlaceholder(String unavailableValuePlaceholder)
Specify the constant that will be provided by Debezium to indicate that the original value is a toasted value not provided by the database. If starts with 'hex:' prefix it is expected that the rest of the string represents hexadecimal encoded octets.
-
getUnavailableValuePlaceholder
public String getUnavailableValuePlaceholder()
-
setHeartbeatActionQuery
public void setHeartbeatActionQuery(String heartbeatActionQuery)
The query executed with every heartbeat.
-
getHeartbeatActionQuery
public String getHeartbeatActionQuery()
-
setDatabaseSslcert
public void setDatabaseSslcert(String databaseSslcert)
File containing the SSL Certificate for the client. See the Postgres SSL docs for further information
-
getDatabaseSslcert
public String getDatabaseSslcert()
-
setPollIntervalMs
public void setPollIntervalMs(long pollIntervalMs)
Time to wait for new change events to appear after receiving no events, given in milliseconds. Defaults to 500 ms.
-
getPollIntervalMs
public long getPollIntervalMs()
-
setSignalDataCollection
public void setSignalDataCollection(String signalDataCollection)
The name of the data collection that is used to send signals/commands to Debezium. Signaling is disabled when not set.
-
getSignalDataCollection
public String getSignalDataCollection()
-
setDatabaseInitialStatements
public void setDatabaseInitialStatements(String databaseInitialStatements)
A semicolon separated list of SQL statements to be executed when a JDBC connection to the database is established. Note that the connector may establish JDBC connections at its own discretion, so this should typically be used for configurationof session parameters only, but not for executing DML statements. Use doubled semicolon (';;') to use a semicolon as a character and not as a delimiter.
-
getDatabaseInitialStatements
public String getDatabaseInitialStatements()
-
setIntervalHandlingMode
public void setIntervalHandlingMode(String intervalHandlingMode)
Specify how INTERVAL columns should be represented in change events, including:'string' represents values as an exact ISO formatted string'numeric' (default) represents values using the inexact conversion into microseconds
-
getIntervalHandlingMode
public String getIntervalHandlingMode()
-
setConverters
public void setConverters(String converters)
Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options ' .
-
getConverters
public String getConverters()
-
setHeartbeatTopicsPrefix
public void setHeartbeatTopicsPrefix(String heartbeatTopicsPrefix)
The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat.
-
getHeartbeatTopicsPrefix
public String getHeartbeatTopicsPrefix()
-
setDatabaseSslfactory
public void setDatabaseSslfactory(String databaseSslfactory)
A name of class to that creates SSL Sockets. Use org.postgresql.ssl.NonValidatingFactory to disable SSL validation in development environments
-
getDatabaseSslfactory
public String getDatabaseSslfactory()
-
setStatusUpdateIntervalMs
public void setStatusUpdateIntervalMs(int statusUpdateIntervalMs)
Frequency for sending replication connection status updates to the server, given in milliseconds. Defaults to 10 seconds (10,000 ms).
-
getStatusUpdateIntervalMs
public int getStatusUpdateIntervalMs()
-
setSnapshotFetchSize
public void setSnapshotFetchSize(int snapshotFetchSize)
The maximum number of records that should be loaded into memory while performing a snapshot
-
getSnapshotFetchSize
public int getSnapshotFetchSize()
-
setSnapshotLockTimeoutMs
public void setSnapshotLockTimeoutMs(long snapshotLockTimeoutMs)
The maximum number of millis to wait for table locks at the beginning of a snapshot. If locks cannot be acquired in this time frame, the snapshot will be aborted. Defaults to 10 seconds
-
getSnapshotLockTimeoutMs
public long getSnapshotLockTimeoutMs()
-
setDatabaseUser
public void setDatabaseUser(String databaseUser)
Name of the database user to be used when connecting to the database.
-
getDatabaseUser
public String getDatabaseUser()
-
setDatabaseDbname
public void setDatabaseDbname(String databaseDbname)
The name of the database from which the connector should capture changes
-
getDatabaseDbname
public String getDatabaseDbname()
-
setDatatypePropagateSourceType
public void setDatatypePropagateSourceType(String datatypePropagateSourceType)
A comma-separated list of regular expressions matching the database-specific data type names that adds the data type's original type and original length as parameters to the corresponding field schemas in the emitted change records.
-
getDatatypePropagateSourceType
public String getDatatypePropagateSourceType()
-
setDatabaseSslkey
public void setDatabaseSslkey(String databaseSslkey)
File containing the SSL private key for the client. See the Postgres SSL docs for further information
-
getDatabaseSslkey
public String getDatabaseSslkey()
-
setSanitizeFieldNames
public void setSanitizeFieldNames(boolean sanitizeFieldNames)
Whether field names will be sanitized to Avro naming conventions
-
isSanitizeFieldNames
public boolean isSanitizeFieldNames()
-
setSnapshotSelectStatementOverrides
public void setSnapshotSelectStatementOverrides(String snapshotSelectStatementOverrides)
This property contains a comma-separated list of fully-qualified tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on thespecific connectors. Select statements for the individual tables are specified in further configuration properties, one for each table, identified by the id 'snapshot.select.statement.overrides.[DB_NAME].[TABLE_NAME]' or 'snapshot.select.statement.overrides.[SCHEMA_NAME].[TABLE_NAME]', respectively. The value of those properties is the select statement to use when retrieving data from the specific table during snapshotting. A possible use case for large append-only tables is setting a specific point where to start (resume) snapshotting, in case a previous snapshotting was interrupted.
-
getSnapshotSelectStatementOverrides
public String getSnapshotSelectStatementOverrides()
-
setSourceStructVersion
public void setSourceStructVersion(String sourceStructVersion)
A version of the format of the publicly visible source part in the message
-
getSourceStructVersion
public String getSourceStructVersion()
-
setHeartbeatIntervalMs
public void setHeartbeatIntervalMs(int heartbeatIntervalMs)
Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default.
-
getHeartbeatIntervalMs
public int getHeartbeatIntervalMs()
-
setColumnWhitelist
public void setColumnWhitelist(String columnWhitelist)
Regular expressions matching columns to include in change events (deprecated, use "column.include.list" instead)
-
getColumnWhitelist
public String getColumnWhitelist()
-
setColumnIncludeList
public void setColumnIncludeList(String columnIncludeList)
Regular expressions matching columns to include in change events
-
getColumnIncludeList
public String getColumnIncludeList()
-
setPluginName
public void setPluginName(String pluginName)
The name of the Postgres logical decoding plugin installed on the server. Supported values are 'decoderbufs' and 'pgoutput'. Defaults to 'decoderbufs'.
-
getPluginName
public String getPluginName()
-
setDatabaseSslpassword
public void setDatabaseSslpassword(String databaseSslpassword)
Password to access the client private key from the file specified by 'database.sslkey'. See the Postgres SSL docs for further information
-
getDatabaseSslpassword
public String getDatabaseSslpassword()
-
setSchemaWhitelist
public void setSchemaWhitelist(String schemaWhitelist)
The schemas for which events should be captured (deprecated, use "schema.include.list" instead)
-
getSchemaWhitelist
public String getSchemaWhitelist()
-
setColumnPropagateSourceType
public void setColumnPropagateSourceType(String columnPropagateSourceType)
A comma-separated list of regular expressions matching fully-qualified names of columns that adds the columns original type and original length as parameters to the corresponding field schemas in the emitted change records.
-
getColumnPropagateSourceType
public String getColumnPropagateSourceType()
-
setTableExcludeList
public void setTableExcludeList(String tableExcludeList)
A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoring
-
getTableExcludeList
public String getTableExcludeList()
-
setDatabasePassword
public void setDatabasePassword(String databasePassword)
Password of the database user to be used when connecting to the database.
-
getDatabasePassword
public String getDatabasePassword()
-
setDatabaseSslrootcert
public void setDatabaseSslrootcert(String databaseSslrootcert)
File containing the root certificate(s) against which the server is validated. See the Postgres JDBC SSL docs for further information
-
getDatabaseSslrootcert
public String getDatabaseSslrootcert()
-
setSkippedOperations
public void setSkippedOperations(String skippedOperations)
The comma-separated list of operations to skip during streaming, defined as: 'c' for inserts/create; 'u' for updates; 'd' for deletes, 't' for truncates, and 'none' to indicate nothing skipped. By default, no operations will be skipped.
-
getSkippedOperations
public String getSkippedOperations()
-
setMaxBatchSize
public void setMaxBatchSize(int maxBatchSize)
Maximum size of each batch of source records. Defaults to 2048.
-
getMaxBatchSize
public int getMaxBatchSize()
-
setSnapshotMode
public void setSnapshotMode(String snapshotMode)
The criteria for running a snapshot upon startup of the connector. Options include: 'always' to specify that the connector run a snapshot each time it starts up; 'initial' (the default) to specify the connector can run a snapshot only when no offsets are available for the logical server name; 'initial_only' same as 'initial' except the connector should stop after completing the snapshot and before it would normally start emitting changes;'never' to specify the connector should never run a snapshot and that upon first startup the connector should read from the last position (LSN) recorded by the server; and'exported' deprecated, use 'initial' instead; 'custom' to specify a custom class with 'snapshot.custom_class' which will be loaded and used to determine the snapshot, see docs for more details.
-
getSnapshotMode
public String getSnapshotMode()
-
setMessagePrefixIncludeList
public void setMessagePrefixIncludeList(String messagePrefixIncludeList)
A comma-separated list of regular expressions that match the logical decoding message prefixes to be monitored. All prefixes are monitored by default.
-
getMessagePrefixIncludeList
public String getMessagePrefixIncludeList()
-
setMaxQueueSize
public void setMaxQueueSize(int maxQueueSize)
Maximum size of the queue for change events read from the database log but not yet recorded or forwarded. Defaults to 8192, and should always be larger than the maximum batch size.
-
getMaxQueueSize
public int getMaxQueueSize()
-
setSnapshotCustomClass
public void setSnapshotCustomClass(String snapshotCustomClass)
When 'snapshot.mode' is set as custom, this setting must be set to specify a fully qualified class name to load (via the default class loader).This class must implement the 'Snapshotter' interface and is called on each app boot to determine whether to do a snapshot and how to build queries.
-
getSnapshotCustomClass
public String getSnapshotCustomClass()
-
setSlotName
public void setSlotName(String slotName)
The name of the Postgres logical decoding slot created for streaming changes from a plugin.Defaults to 'debezium
-
getSlotName
public String getSlotName()
-
setIncrementalSnapshotChunkSize
public void setIncrementalSnapshotChunkSize(int incrementalSnapshotChunkSize)
The maximum size of chunk for incremental snapshotting
-
getIncrementalSnapshotChunkSize
public int getIncrementalSnapshotChunkSize()
-
setHstoreHandlingMode
public void setHstoreHandlingMode(String hstoreHandlingMode)
Specify how HSTORE columns should be represented in change events, including:'json' represents values as string-ified JSON (default)'map' represents values as a key/value map
-
getHstoreHandlingMode
public String getHstoreHandlingMode()
-
setRetriableRestartConnectorWaitMs
public void setRetriableRestartConnectorWaitMs(long retriableRestartConnectorWaitMs)
Time to wait before restarting connector after retriable exception occurs. Defaults to 10000ms.
-
getRetriableRestartConnectorWaitMs
public long getRetriableRestartConnectorWaitMs()
-
setSnapshotDelayMs
public void setSnapshotDelayMs(long snapshotDelayMs)
A delay period before a snapshot will begin, given in milliseconds. Defaults to 0 ms.
-
getSnapshotDelayMs
public long getSnapshotDelayMs()
-
setProvideTransactionMetadata
public void setProvideTransactionMetadata(boolean provideTransactionMetadata)
Enables transaction metadata extraction together with event counting
-
isProvideTransactionMetadata
public boolean isProvideTransactionMetadata()
-
setTableWhitelist
public void setTableWhitelist(String tableWhitelist)
The tables for which changes are to be captured (deprecated, use "table.include.list" instead)
-
getTableWhitelist
public String getTableWhitelist()
-
setTombstonesOnDelete
public void setTombstonesOnDelete(boolean tombstonesOnDelete)
Whether delete operations should be represented by a delete event and a subsquenttombstone event (true) or only by a delete event (false). Emitting the tombstone event (the default behavior) allows Kafka to completely delete all events pertaining to the given key once the source record got deleted.
-
isTombstonesOnDelete
public boolean isTombstonesOnDelete()
-
setSlotRetryDelayMs
public void setSlotRetryDelayMs(long slotRetryDelayMs)
Time to wait between retry attempts when the connector fails to connect to a replication slot, given in milliseconds. Defaults to 10 seconds (10,000 ms).
-
getSlotRetryDelayMs
public long getSlotRetryDelayMs()
-
setDecimalHandlingMode
public void setDecimalHandlingMode(String decimalHandlingMode)
Specify how DECIMAL and NUMERIC columns should be represented in change events, including:'precise' (the default) uses java.math.BigDecimal to represent values, which are encoded in the change events using a binary representation and Kafka Connect's 'org.apache.kafka.connect.data.Decimal' type; 'string' uses string to represent values; 'double' represents values using Java's 'double', which may not offer the precision but will be far easier to use in consumers.
-
getDecimalHandlingMode
public String getDecimalHandlingMode()
-
setBinaryHandlingMode
public void setBinaryHandlingMode(String binaryHandlingMode)
Specify how binary (blob, binary, etc.) columns should be represented in change events, including:'bytes' represents binary data as byte array (default)'base64' represents binary data as base64-encoded string'hex' represents binary data as hex-encoded (base16) string
-
getBinaryHandlingMode
public String getBinaryHandlingMode()
-
setIncludeSchemaComments
public void setIncludeSchemaComments(boolean includeSchemaComments)
Whether the connector parse table and column's comment to metadata object.Note: Enable this option will bring the implications on memory usage. The number and size of ColumnImpl objects is what largely impacts how much memory is consumed by the Debezium connectors, and adding a String to each of them can potentially be quite heavy. The default is 'false'.
-
isIncludeSchemaComments
public boolean isIncludeSchemaComments()
-
setTableIgnoreBuiltin
public void setTableIgnoreBuiltin(boolean tableIgnoreBuiltin)
Flag specifying whether built-in tables should be ignored.
-
isTableIgnoreBuiltin
public boolean isTableIgnoreBuiltin()
-
setDatabaseTcpkeepalive
public void setDatabaseTcpkeepalive(boolean databaseTcpkeepalive)
Enable or disable TCP keep-alive probe to avoid dropping TCP connection
-
isDatabaseTcpkeepalive
public boolean isDatabaseTcpkeepalive()
-
setSchemaExcludeList
public void setSchemaExcludeList(String schemaExcludeList)
The schemas for which events must not be captured
-
getSchemaExcludeList
public String getSchemaExcludeList()
-
setPublicationAutocreateMode
public void setPublicationAutocreateMode(String publicationAutocreateMode)
Applies only when streaming changes using pgoutput.Determine how creation of a publication should work, the default is all_tables.DISABLED - The connector will not attempt to create a publication at all. The expectation is that the user has created the publication up-front. If the publication isn't found to exist upon startup, the connector will throw an exception and stop.ALL_TABLES - If no publication exists, the connector will create a new publication for all tables. Note this requires that the configured user has access. If the publication already exists, it will be used. i.e CREATE PUBLICATIONFOR ALL TABLES;FILTERED - If no publication exists, the connector will create a new publication for all those tables matchingthe current filter configuration (see table/database include/exclude list properties). If the publication already exists, it will be used. i.e CREATE PUBLICATION FOR TABLE
-
getPublicationAutocreateMode
public String getPublicationAutocreateMode()
-
setSnapshotIncludeCollectionList
public void setSnapshotIncludeCollectionList(String snapshotIncludeCollectionList)
this setting must be set to specify a list of tables/collections whose snapshot must be taken on creating or restarting the connector.
-
getSnapshotIncludeCollectionList
public String getSnapshotIncludeCollectionList()
-
setDatabaseHistoryFileFilename
public void setDatabaseHistoryFileFilename(String databaseHistoryFileFilename)
The path to the file that will be used to record the database history
-
getDatabaseHistoryFileFilename
public String getDatabaseHistoryFileFilename()
-
setSlotDropOnStop
public void setSlotDropOnStop(boolean slotDropOnStop)
Whether or not to drop the logical replication slot when the connector finishes orderlyBy default the replication is kept so that on restart progress can resume from the last recorded location
-
isSlotDropOnStop
public boolean isSlotDropOnStop()
-
setMaxQueueSizeInBytes
public void setMaxQueueSizeInBytes(long maxQueueSizeInBytes)
Maximum size of the queue in bytes for change events read from the database log but not yet recorded or forwarded. Defaults to 0. Mean the feature is not enabled
-
getMaxQueueSizeInBytes
public long getMaxQueueSizeInBytes()
-
setTransactionTopic
public void setTransactionTopic(String transactionTopic)
The name of the transaction metadata topic. The placeholder ${database.server.name} can be used for referring to the connector's logical name; defaults to ${database.server.name}.transaction.
-
getTransactionTopic
public String getTransactionTopic()
-
setXminFetchIntervalMs
public void setXminFetchIntervalMs(long xminFetchIntervalMs)
Specify how often (in ms) the xmin will be fetched from the replication slot. This xmin value is exposed by the slot which gives a lower bound of where a new replication slot could start from. The lower the value, the more likely this value is to be the current 'true' value, but the bigger the performance cost. The bigger the value, the less likely this value is to be the current 'true' value, but the lower the performance penalty. The default is set to 0 ms, which disables tracking xmin.
-
getXminFetchIntervalMs
public long getXminFetchIntervalMs()
-
setTimePrecisionMode
public void setTimePrecisionMode(String timePrecisionMode)
Time, date, and timestamps can be represented with different kinds of precisions, including:'adaptive' (the default) bases the precision of time, date, and timestamp values on the database column's precision; 'adaptive_time_microseconds' like 'adaptive' mode, but TIME fields always use microseconds precision;'connect' always represents time, date, and timestamp values using Kafka Connect's built-in representations for Time, Date, and Timestamp, which uses millisecond precision regardless of the database columns' precision .
-
getTimePrecisionMode
public String getTimePrecisionMode()
-
setMessagePrefixExcludeList
public void setMessagePrefixExcludeList(String messagePrefixExcludeList)
A comma-separated list of regular expressions that match the logical decoding message prefixes to be excluded from monitoring.
-
getMessagePrefixExcludeList
public String getMessagePrefixExcludeList()
-
setDatabaseServerName
public void setDatabaseServerName(String databaseServerName)
Unique name that identifies the database server and all recorded offsets, and that is used as a prefix for all schemas and topics. Each distinct installation should have a separate namespace and be monitored by at most one Debezium connector.
-
getDatabaseServerName
public String getDatabaseServerName()
-
setEventProcessingFailureHandlingMode
public void setEventProcessingFailureHandlingMode(String eventProcessingFailureHandlingMode)
Specify how failures during processing of events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its position is raised, causing the connector to be stopped; 'warn' the problematic event and its position will be logged and the event will be skipped;'ignore' the problematic event will be skipped.
-
getEventProcessingFailureHandlingMode
public String getEventProcessingFailureHandlingMode()
-
setSnapshotMaxThreads
public void setSnapshotMaxThreads(int snapshotMaxThreads)
The maximum number of threads used to perform the snapshot. Defaults to 1.
-
getSnapshotMaxThreads
public int getSnapshotMaxThreads()
-
setDatabasePort
public void setDatabasePort(int databasePort)
Port of the database server.
-
getDatabasePort
public int getDatabasePort()
-
setColumnExcludeList
public void setColumnExcludeList(String columnExcludeList)
Regular expressions matching columns to exclude from change events
-
getColumnExcludeList
public String getColumnExcludeList()
-
setIncludeUnknownDatatypes
public void setIncludeUnknownDatatypes(boolean includeUnknownDatatypes)
Specify whether the fields of data type not supported by Debezium should be processed:'false' (the default) omits the fields; 'true' converts the field into an implementation dependent binary representation.
-
isIncludeUnknownDatatypes
public boolean isIncludeUnknownDatatypes()
-
setDatabaseHostname
public void setDatabaseHostname(String databaseHostname)
Resolvable hostname or IP address of the database server.
-
getDatabaseHostname
public String getDatabaseHostname()
-
setSchemaNameAdjustmentMode
public void setSchemaNameAdjustmentMode(String schemaNameAdjustmentMode)
Specify how schema names should be adjusted for compatibility with the message converter used by the connector, including:'avro' replaces the characters that cannot be used in the Avro type name with underscore (default)'none' does not apply any adjustment
-
getSchemaNameAdjustmentMode
public String getSchemaNameAdjustmentMode()
-
setTableIncludeList
public void setTableIncludeList(String tableIncludeList)
The tables for which changes are to be captured
-
getTableIncludeList
public String getTableIncludeList()
-
setSlotStreamParams
public void setSlotStreamParams(String slotStreamParams)
Any optional parameters used by logical decoding plugin. Semi-colon separated. E.g. 'add-tables=public.table,public.table2;include-lsn=true'
-
getSlotStreamParams
public String getSlotStreamParams()
-
createConnectorConfiguration
protected io.debezium.config.Configuration createConnectorConfiguration()
- Specified by:
createConnectorConfiguration
in classorg.apache.camel.component.debezium.configuration.EmbeddedDebeziumConfiguration
-
configureConnectorClass
protected Class configureConnectorClass()
- Specified by:
configureConnectorClass
in classorg.apache.camel.component.debezium.configuration.EmbeddedDebeziumConfiguration
-
validateConnectorConfiguration
protected org.apache.camel.component.debezium.configuration.ConfigurationValidation validateConnectorConfiguration()
- Specified by:
validateConnectorConfiguration
in classorg.apache.camel.component.debezium.configuration.EmbeddedDebeziumConfiguration
-
getConnectorDatabaseType
public String getConnectorDatabaseType()
- Specified by:
getConnectorDatabaseType
in classorg.apache.camel.component.debezium.configuration.EmbeddedDebeziumConfiguration
-
-