Live CDC replication

Migrate Firestore to
ClickHouse

Migrate Firestore to ClickHouse with live CDC replication, automatic schema mapping, and zero downtime. Production-ready in minutes, not weeks.

Start migrating free →Read the docs

Firestore CDC

Listen to Firestore document changes in real time via Cloud Firestore triggers. Every create, update, and delete flows to SQL with low latency.

Real-time sync

Nested Collection Flattening

Firestore sub-collections are automatically detected and either flattened into their own tables or embedded as JSONB columns.

Sub-collection aware

Schema Discovery

Firestore documents within a collection can have different fields. NoSQLSync samples across all documents to build a complete schema covering every field.

Union schema

Type Mapping Engine

Firestore types map cleanly to SQL: string → TEXT, number → NUMERIC, boolean → BOOLEAN, timestamp → TIMESTAMPTZ, geopoint → POINT, array → JSONB.

Full type coverage

Security Rules Audit

Analyze Firestore security rules to understand data access patterns before migration. Import only documents your app logic actually reads.

Rules-aware

Zero Downtime Cutover

Dual-write mode keeps Firestore and SQL in sync. Validate, then cut over. Roll back instantly if needed.

Safe cutover
How it works

Three steps to ClickHouse

1
Connect your Firestore
Paste your Firestore connection string. NoSQLSync detects all collections/tables and samples documents/items to infer the full schema — including nested structures.
2
Review the schema & map columns
Our auto-mapper converts Firestore types to ClickHouse types. Review and adjust: rename columns, change types, flatten nested structures, or use JSON/JSONB for flexible fields.
3
Launch migration & monitor
Click launch. Watch records flow in real time with throughput charts, latency metrics, and error alerts. Enable live CDC to keep your SQL target in sync until cutover.

Type mapping: FirestoreClickHouse

ObjectId / String IDString / UUIDString or dedicated UUID type
StringStringNative ClickHouse String
Number / IntegerInt32 / Int64Signed integer types
Double / DecimalFloat64 / DecimalFloating or decimal precision
Date / TimestampDateTime64High-precision timestamp
BooleanBoolNative ClickHouse Bool
Array / ListArray(String) / JSONTyped array or JSON
Object / Map / Nested docJSON / NestedObject as JSON or Nested type
Binary / BytesStringBinary stored as String
Null / MissingNullable(type)Nullable column wrappers

Frequently asked questions

How are Firestore sub-collections handled?

Each sub-collection can become its own SQL table with a foreign key to the parent document, or be flattened into a JSONB column in the parent table.

What about Firestore real-time listeners?

CDC sync uses Firestore's built-in change streams. The listener captures all writes to any document in the collection and replays them to the SQL target.

How do you handle Firestore document references?

Document references are resolved to the target document's ID and stored as foreign keys. Circular references are detected and handled safely.

How long does a migration take?

A typical 100 GB dataset migrates in under 2 hours with bulk mode. With CDC enabled, ongoing writes sync in real time. Total time depends on data volume and network throughput.

Is my data secure during migration?

Yes. All data is encrypted in transit (TLS 1.3) and at rest (AES-256). Database credentials use short-lived tokens. Migration workers run in an isolated environment and never store data after the job completes.

Can I roll back if something goes wrong?

Yes. Dual-write mode keeps both databases in sync. If you detect issues after cutover, just reverse to the source in one click. Your original data is never modified.

Other migration paths from Firestore

FirestorePostgreSQLFirestoreMySQLFirestoreBigQueryFirestoreSnowflakeFirestoreRedshiftFirestoreSQL ServerFirestoreMariaDB

Ready to migrate to ClickHouse?

Connect your Firestore and ClickHouse instances. No credit card required.

Start free migration →View pricing