aws_dynamodb_cdc
Reads change data capture (CDC) events from DynamoDB Streams.
Stream item-level changes from DynamoDB tables using DynamoDB Streams. This input automatically manages shards, checkpoints progress for recovery, and processes multiple shards concurrently.
# Config fields, showing default values
input:
label: ""
aws_dynamodb_cdc:
tables: []
table_discovery_mode: single
table_discovery_interval: 5m
table_tag_filter: ""
checkpoint_table: redpanda_dynamodb_checkpoints
checkpoint_limit: 1000
batch_size: 1000
poll_interval: 1s
start_from: trim_horizon
max_tracked_shards: 10000
throttle_backoff: 100ms
snapshot_mode: none
snapshot_segments: 1
snapshot_batch_size: 100
snapshot_buffer_size: 100000
snapshot_throttle: 100ms
snapshot_deduplicate: true
region: ""
endpoint: ""
credentials:
profile: ""
id: ""
secret: ""
token: ""
from_ec2_role: false
role: ""
role_external_id: ""
tcp:
connect_timeout: ""
keep_alive:
count: 0
idle: ""
interval: ""
tcp_user_timeout: ""
Examples
- Stream a table
- Discover tables by tag
Stream change events from a single named table.
input:
aws_dynamodb_cdc:
tables:
- my-table
region: us-east-1
Automatically discover and stream from tables that match a tag filter, rescanning every five minutes.
input:
aws_dynamodb_cdc:
table_discovery_mode: tag
table_tag_filter: "stream-enabled:true"
table_discovery_interval: 5m
region: us-east-1
Fields
tables
A list of DynamoDB table names to stream change events from.
Type: array
Default: []
table_discovery_mode
How the tables to stream from are selected. single streams from the named tables, tag discovers tables that match table_tag_filter, and includelist streams from the explicit list provided in tables.
Type: string
Default: "single"
table_discovery_interval
The interval at which to rescan for and discover new tables.
Type: string
Default: "5m"
table_tag_filter
A multi-tag filter used to discover tables when table_discovery_mode is tag, in the format key1:v1,v2;key2:v3,v4.
Type: string
Default: ""
checkpoint_table
The DynamoDB table name used to store checkpoints. It will be created if it does not exist.
Type: string
Default: "redpanda_dynamodb_checkpoints"
checkpoint_limit
The maximum number of unacknowledged messages before forcing a checkpoint update.
Type: int
Default: 1000
batch_size
The maximum number of records to read per shard in a single request. Valid range: 1 to 1000.
Type: int
Default: 1000
poll_interval
The time to wait between polling attempts when no records are available.
Type: string
Default: "1s"
start_from
Where to begin reading a shard when no checkpoint exists. trim_horizon reads from the oldest available record and latest reads only new records.
Type: string
Default: "trim_horizon"
max_tracked_shards
The maximum number of shards to track simultaneously.
Type: int
Default: 10000
throttle_backoff
The time to wait when applying backpressure due to too many in-flight messages.
Type: string
Default: "100ms"
snapshot_mode
Controls whether an initial table snapshot is taken before streaming CDC events. none streams CDC events only, snapshot_only reads the current table contents once, and snapshot_and_cdc takes a snapshot and then continues streaming changes.
Type: string
Default: "none"
snapshot_segments
The number of parallel scan segments to use during a snapshot. Valid range: 1 to 10.
Type: int
Default: 1
snapshot_batch_size
The number of records to read per scan request during a snapshot. Maximum 1000.
Type: int
Default: 100
snapshot_buffer_size
The maximum number of CDC events to buffer for deduplication (roughly 100 bytes per entry).
Type: int
Default: 100000
snapshot_throttle
The minimum time between scan requests per segment during a snapshot.
Type: string
Default: "100ms"
snapshot_deduplicate
Whether to deduplicate records that appear in both the snapshot and the CDC stream.
Type: bool
Default: true
region
The AWS region to target.
Type: string
Default: ""
endpoint
Allows you to specify a custom endpoint for the AWS API.
Type: string
Default: ""
credentials
Optional manual configuration of AWS credentials to use. More information can be found in this document.
Type: object
credentials.profile
A profile from ~/.aws/credentials to use.
Type: string
Default: ""
credentials.id
The ID of credentials to use.
Type: string
Default: ""
credentials.secret
The secret for the credentials being used. :::warning Secret This field contains sensitive information that usually shouldn't be added to a config directly, read our secrets page for more info. :::
Type: string
Default: ""
credentials.token
The token for the credentials being used, required when using short term credentials.
Type: string
Default: ""
credentials.from_ec2_role
Use the credentials of a host EC2 machine configured to assume an IAM role associated with the instance.
Type: bool
Default: false
credentials.role
A role ARN to assume.
Type: string
Default: ""
credentials.role_external_id
An external ID to provide when assuming a role.
Type: string
Default: ""
tcp
Advanced options for the underlying TCP connection to the AWS API, including connection timeout and keep-alive settings.
Type: object
tcp.connect_timeout
The maximum time to wait when establishing the TCP connection to the AWS API.
Type: string
Default: ""
tcp.keep_alive
TCP keep-alive settings for the connection.
Type: object
tcp.keep_alive.count
The maximum number of keep-alive probes to send before dropping the connection.
Type: int
Default: 0
tcp.keep_alive.idle
The time a connection can remain idle before keep-alive probes are sent.
Type: string
Default: ""
tcp.keep_alive.interval
The interval between keep-alive probes.
Type: string
Default: ""
tcp.tcp_user_timeout
The maximum time transmitted data may remain unacknowledged before the connection is closed.
Type: string
Default: ""