Debezium with SQL Server: Real-Time CDC Setup

Implementing Change Data Capture with Debezium and SQL Server opens up real-time data streaming possibilities. Here’s a complete setup guide.

Prerequisites

  • SQL Server 2017+ (Enterprise or Standard with CDC)
  • Kafka cluster
  • Kafka Connect

Enable CDC on SQL Server

-- Enable at database level
EXEC sys.sp_cdc_enable_db;

-- Enable for specific table
EXEC sys.sp_cdc_enable_table
    @source_schema = N'dbo',
    @source_name   = N'Orders',
    @role_name     = NULL;

Debezium Connector Config

{
  "name": "sqlserver-connector",
  "config": {
    "connector.class": "io.debezium.connector.sqlserver.SqlServerConnector",
    "database.hostname": "sqlserver",
    "database.port": "1433",
    "database.user": "sa",
    "database.password": "Password123",
    "database.dbname": "MyDatabase",
    "database.server.name": "myserver",
    "table.include.list": "dbo.Orders",
    "database.history.kafka.bootstrap.servers": "kafka:9092",
    "database.history.kafka.topic": "schema-changes"
  }
}

Message Format

Each change event includes before/after state, making it perfect for downstream processing.

References


Discover more from C4: Container, Code, Cloud & Context

Subscribe to get the latest posts sent to your email.

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.