All integrations
ClickHouse
+
Bruin

ClickHouse + Bruin

SourceDestination

Ingest data from ClickHouse or push enriched data back, with quality checks, lineage, and scheduling. Defined in YAML, version-controlled in Git.

For business teams

What you get

  • Real-time warehouse sync

    ClickHouse tables replicate to your warehouse continuously. Analytics teams work with fresh data, not yesterday's export.

  • Catch issues at the source

    Quality checks validate ClickHouse data as it replicates. Null IDs, duplicate records, and schema drift get caught early.

  • Multi-source joins

    Combine ClickHouse with SaaS data, APIs, and other databases in your warehouse. One Bruin pipeline handles it all.

  • No untracked scripts

    Replication is defined in YAML, reviewed in PRs, and deployed with CI/CD. No more mystery cron jobs.

For data & engineering teams

How it works

  • CDC with merge strategy

    Bruin handles change data capture from ClickHouse with deduplication. Schema changes are detected and handled automatically.

  • YAML-defined, Git-versioned

    Your ClickHouse replication is a YAML file. Review in PRs, deploy with CI/CD. No more untracked database scripts.

  • Row-level quality checks

    Validate primary keys, foreign keys, and referential integrity on every sync. Catch corruption at the source.

  • Multi-source pipelines

    Combine ClickHouse with SaaS APIs and other databases in one pipeline. Bruin resolves cross-source dependencies.

Before you start

ClickHouse server access
Database credentials

Step 1

Add your ClickHouse connection

Connect using ClickHouse credentials with TCP and HTTP port support. Add this to your Bruin environment file, credentials are stored securely and referenced by name in your pipeline YAML.

Parameters

  • usernameUsername for ClickHouse authentication
  • passwordPassword for ClickHouse authentication
  • hostHostname or IP address of ClickHouse server
  • portTCP port number for ClickHouse server
  • http_portHTTP port for ClickHouse server (default: 8443)
  • secureUse secure connection: 1 for HTTPS, 0 for HTTP (default: 1)
connections:
  clickhouse:
    type: clickhouse
    uri: "clickhouse://<username>:<password>@<host>:<port>?secure=<secure>&http_port=<http_port>"

Step 2

Create your pipeline

Define a YAML asset that tells Bruin what to pull from ClickHouse and where to land it. This file lives in your Git repo, reviewable, version-controlled, and deployable with CI/CD.

name: raw.clickhouse_data
type: ingestr

parameters:
  source_connection: clickhouse
  source_table: 'data'
  destination: bigquery

Step 3

Add quality checks

Add column-level and custom SQL checks to your ClickHouse data. If a check fails, the pipeline stops, bad data never reaches downstream models or dashboards.

Validate row counts are within expected range
Ensure primary keys are unique and not null
Catch schema drift with freshness checks
columns:
  - name: id
    checks:
      - name: not_null
      - name: unique
  - name: created_at
    checks:
      - name: not_null

custom_checks:
  - name: row count within expected range
    query: |
      SELECT COUNT(*) BETWEEN 1 AND 10000000
      FROM raw.clickhouse_data

Step 4

Run it

One command. Bruin connects to ClickHouse, pulls data incrementally, runs your quality checks, and lands clean data in your warehouse. If a check fails, the pipeline stops, bad data never reaches downstream.

Backfill historical data with --start-date
Schedule with cron or trigger from CI/CD
Full lineage from ClickHouse to your dashboards
$ bruin run .
Running pipeline...

  clickhouse_data
    ✓ Fetched 2,847 new records
    ✓ Quality: campaign_id not_null     PASSED
    ✓ Quality: spend not_null           PASSED
    ✓ Quality: no negative ad spend     PASSED
    ✓ Loaded into bigquery

  Completed in 12s

Ready to connect ClickHouse?

Start for free, or book a demo to see how Bruin handles ingestion, quality, lineage, and scheduling for your entire data stack.