Back to Blog

Benchmarking SQL Server CDC to ClickHouse

Up to 7x faster than Fivetran and Airbyte.

Shubham Sinha, Co-Founder

Change Data Capture (CDC) from SQL Server to ClickHouse is one of the most common replication patterns we see at Supermetal. As more customers evaluate Supermetal for this workload, we benchmarked both snapshot and CDC at scale against Fivetran and Airbyte.


Overview

Supermetal is deployed as a single Rust binary. It uses Arrow-native primitives for performance and object storage for durability. No need to wrangle Kafka, Debezium, or other JVM-based tooling. Read more in the architecture docs.

SQL ServerSQL Server Source
  • Native CDC: Reads directly from SQL Server's internal change tables.

  • Parallel snapshots: Automatically split large tables on the primary key and read them concurrently across all available cores.

  • Broad edition support: SQL Server 2016+, including AWS RDS, Azure SQL Database, Azure SQL Managed Instance, and standard on-prem editions.

View SQL Server docs →

ClickHouseClickHouse Target
  • Native deduplication: Updates and deletes are handled natively using ClickHouse's ReplacingMergeTree engine. No manual merge logic or row-level mutations.

  • Zero-copy writes: Supermetal stages Parquet files on object storage (S3), and ClickHouse pulls directly. No extra network hop through the replication process.

View ClickHouse docs →


Benchmark Setup

We used the TPC-H dataset at scale factors 20 through 50 (31 GB to 77 GB) to measure performance across two scenarios:

  • Snapshot: Full replication of all 8 TPC-H tables from SQL Server to ClickHouse Cloud.
  • CDC: Sustained upsert rates from 1K to 30K ops/sec, held for 5-minute intervals.
  • Fivetran and Airbyte were tested using their cloud-managed services under default configurations.
SQL ServerSQL Server
RDS db.m5.2xlarge
8 vCPU, 32 GB
10K IOPS (io2)
us-west-2
SupermetalSupermetal
EC2 m8azn.xlarge
4 vCPU, 16 GB
us-west-2
ClickHouseClickHouse
ClickHouse Cloud
32 GiB × 3 replicas
us-west-2
SQL ServerSQL Server
RDS db.m5.2xlarge · 8 vCPU, 32 GB · 10K IOPS (io2) · us-west-2
SupermetalSupermetal
EC2 m8azn.xlarge · 4 vCPU, 16 GB · us-west-2
ClickHouseClickHouse
ClickHouse Cloud · 32 GiB × 3 replicas · us-west-2

Snapshot Performance

We ran a full snapshot (backfill) at scale factors 20 through 50 from SQL Server to ClickHouse Cloud, and tested Supermetal against Fivetran and Airbyte at each scale factor.

Sync Duration by Vendor
4–7x faster at every scale factor

The gap widens at every scale factor: up to 7x faster than Fivetran and 5x faster than Airbyte.

Cumulative Row Volume
433M rows in 12 minutes
Duration11m 42s
Rows433M
  • Throughput: Supermetal sustained ~1.25M rows/sec (~240 MB/s) from SQL Server, consistent across all scale factors.

  • Parallelism: Large tables are chunked and read concurrently. Smaller tables complete in minutes, but total sync time is gated by lineitem (~70% of the dataset).

  • Pipelining: Parquet is staged to S3 while reads are still running. By the time the source read finishes, >85% of data is already in ClickHouse Cloud.


CDC Performance

We tested CDC across sustained rates from 1K to 30K ops/sec. Fivetran and Airbyte use batched scheduling (typically 5–60 minute sync intervals), making their real-time CDC latency not directly comparable.

CDC Latency Under Load
End-to-end latency 2–3s up to 20K ops/sec
End-to-End Latency2–3s
Target Load
Throughput
Total Latency
  • Sustained latency: Supermetal maintains 2–3s end-to-end latency from 1K through 20K ops/sec.

  • Saturation: Throughput only drops off above 20K ops/sec, where SQL Server hits its own write limit (~23K ops/sec on this RDS configuration).

CDC Latency Breakdown
Read latency 1–2s up to 20K ops/sec · Write flat at ~100ms
Read Latency1–2s
Target Load
Throughput
Read Latency
Write Latency
  • Target Performance: ClickHouse Cloud write latency remains flat at ~100ms across all load tiers. Supermetal stages Parquet to S3 for ClickHouse Cloud to pull, so ingestion does not bottleneck the pipeline.

  • Latency drivers: Two primary factors determined end-to-end CDC latency in this benchmark:

    • SQL Server Polling (1s): The polling interval of the SQL Server CDC capture agent. This determines how quickly a committed transaction appears in the change tables for Supermetal to read.
    • Supermetal Flush (250ms): The interval at which Supermetal bundles data into Parquet and stages it to S3. The default is 5s, configurable via the UI or API.

Try Supermetal

Supermetal ships high-performance connectors for SQL Server and ClickHouse, deployed as a single binary on any machine. No Kafka, no JVM, no cluster. The trial includes 1,000 hours of free sync.

curl -fsSL https://trial.supermetal.io/install.sh | sh
iwr -useb https://trial.supermetal.io/install.ps1 | iex

Quickstart · SQL Server docs · ClickHouse docs · Architecture