Connectors

SQL Server

source
Available

Stream SQL Server changes by reading the transaction log directly.

DirectionSource
PlacementExternal
DeliveryOrdered change capture
CategoryCDC

What it does

SQL Server is a source connector. It reads the transaction log directly and streams every committed change as an ordered change row. It runs as an external connector, alongside your SQL Server.

How it works

  1. 1

    Reads the SQL Server transaction log directly from the path you provide.

  2. 2

    Decodes committed inserts, updates, and deletes into ordered change rows.

  3. 3

    Routes them to any sink you configure, ordered per key.

Use cases

  • Stream SQL Server changes into a warehouse, lake, or search index in near real time.
  • Bridge a legacy SQL Server system to a modern event and analytics stack.
  • Migrate off SQL Server with continuous change replication.

Highlights

Log-based capture

Reads the transaction log directly, with low overhead on the source.

Dual-endpoint aware

Point reads at an optional replica to spare the primary.

CDC-aware

Enable Change Data Capture for full before/after values on DECIMAL/MONEY columns.

Prerequisites

  • For accurate UPDATE values on DECIMAL/MONEY/NUMERIC columns, enable Change Data Capture (CDC) on those tables: it makes SQL Server log full before/after row images
  • Provide the transaction-log path and SQL Server connection details

Configure it

YAML
source:
  type: mssql
  placement: external
  config:
    ldf_path: /var/opt/mssql/data/orders.ldf
    sql_server:
      primary: { host: mssql-1, port: 1433, user: zipline }
      database: orders
    cdc: { mode: manage }
  secret_refs:
    - { field: sql_server.primary.password, ref: mssql_password }

source config

FieldTypeDefaultReqDescription
ldf_path path - req Path Zipline reads the SQL Server transaction log from.
state_dir path ./data/state opt Where this connector persists its local capture state.
sql_server.primary.host string - req Primary SQL Server host.
sql_server.primary.port int 1433 opt Primary SQL Server port.
sql_server.primary.user string - req Connecting user.
sql_server.primary.password string - req secret Connecting user’s password.
sql_server.replica.* object - opt Optional read replica, same shape as primary - point reads there to reduce load on the primary.
sql_server.database string - req Database name.
sql_server.schema string dbo opt Schema containing the tables to capture.
cdc.mode manage|external|disabled disabled opt How change capture is enabled: Zipline manages it, it’s managed externally, or it’s disabled.
cdc.tables list - opt Restrict capture to specific tables.
cdc.on_unavailable stop|mark stop opt What happens if change capture becomes unavailable mid-run: stop the route, or mark it and continue.
tlog_retention.warn_percent int 70 opt Transaction-log usage percent at which Zipline raises a warning.
tlog_retention.critical_percent int 90 opt Transaction-log usage percent at which Zipline raises a critical alert.

Start streaming with SQL Server

Follow the first-pipeline guide to wire SQL Server into a running pipeline, or jump to the full config reference above.