BladePipe 1.7.0: Stronger alerts, Broader DB support, Faster KingbaseES scanning.
跳到主要内容

MongoDB to ClickHouse

BladePipe supports data replication from MongoDB to ClickHouse. View supported migration, sync, verification, and connector capabilities.

Target DataSource:

Connection

Basic Functions

FunctionDescription
Full Data Migration

Migrate data by sequentially scanning data in tables and writing it in batches to the target database. Supported _id types: ObjectId, Long, Integer.

Incremental Data Sync

Sync of INSERT, UPDATE, DELETE is supported.

Data Verification and Correction

Verify all existing data. Optionally, you can correct the inconsistent data based on verification results. Scheduled DataTasks are supported.
For more information, see Create Verification and Correction DataJob.

Subscription Modification

Add, delete, or modify the subscribed tables with support for historical data migration. For more information, see Modify Subscription.

Position Resetting

Reset positions by timestamp to consume the oplog in a past period again.

Supported Deployment

Support master-slave, replica set, sharded cluster.

Table Name Mapping

Support the mapping rules, namely, keeping the name the same as that in Source, converting the text to lowercase, converting the text to uppercase, truncating the name by "_digit" suffix.

Advanced Functions

FunctionDescription
Write in Append Mode

INSERT and UPDATE statements are written in batches in append mode, and DELETE statements are executed individually through ALTER statements.

Scheduled Table Optimization

By setting the parameter autoOptimizeThresholdSec, the tables are optimized regularly.

Custom Code

For more information, see Custom Code Processing, Debug Custom Code and Logging in Custom Code.

Adding Virtual Columns

Support adding custom virtual columns with fixed values, such as region, ID, etc.

Limits

LimitDescription
Oplog Size and Retention Settings

By default, the value of replication.oplogSizeMB or storage.oplogMinRetentionHours in MongoDB is too small. If data synchronization latency is significant, unconsumed oplogs may be removed. In this case, it is necessary to increase these parameters.

Parameter Configuration for MongoDB Master-Slave Architecture

For MongoDB master-slave architecture, set the Source parameter oplogCollection to oplog.$main.

ChangeStream Mode

MongoDB 3.6 and above support changeStream for capturing incremental data changes. Set the Source parameter captureMode to CHANGE_STREAM. For sharded clusters, use the MongoDB connection string for synchronization.

Oplog Mode

When using oplog mode for data synchronization from a MongoDB instance, ensure the access to the local database.

Special Operation

Too many DELETE operations (>50 records/second) significantly affect data synchronization performance.

Target Table Engine

Only the following table engines and corresponding source table types are supported:

  • MergeTree(tables without primary keys)
  • ReplacingMergeTree(tables with primary keys)
  • ReplicatedMergeTree(tables without primary keys)
  • ReplicatedReplacingMergeTree(tables with primary keys)

Source

Prerequisites

PrerequisiteDescription
Permissions for Account

See Permissions Required for MongoDB.

Parameters

ParameterDescription
captureMode

Configure the MongoDB incremental data sync mode, supporting OP_LOG and CHANGE_STREAM modes.

changeStreamBatchSize

Set the maximum number of change events per batch for MongoDB Change Stream.

oplogCollection

Specify the collection name for MongoDB oplog. The default name is oplog.rs.

timezone

Source time zone (the default time zone is UTC).

Tips: To modify the general parameters, see General Parameters and Functions.


Target

Prerequisites

PrerequisiteDescription
Permissions for Account

SELECT, INSERT and common DDL permissions.

Port Preparation

Allow the migration and sync node (Worker) to connect to the ClickHouse port (e.g., 8123).

Parameters

ParameterDescription
multiReplica

Whether there are multiple replicas in a cluster.

clusterName

Cluster name. When multiReplica is true, the ON CLUSTER clusterName clause is automatically added to DDL/DML.

ckTableEngine

The following table engines are currently supported:

  • MergeTree
  • ReplacingMergeTree
  • ReplicatedMergeTree
  • ReplicatedReplacingMergeTree
autoOptimizeThresholdSec

Interval of scheduled table optimization (optimize table final). If the value <=0, it means the feature is disabled.

enableTimeRangeClamping

Whether to enable time range clamping. Forces date and time values to be constrained within the valid ClickHouse JDBC range. Values outside this range will be clamped to the minimum or maximum values. Disabled by default (false).

Ranges after clamping(UTC):

  • Date:[1970-01-01, 2149-06-06]
  • Date32:[1925-01-01, 2283-11-11]
  • Timestamp:[1970-01-01 00:00:00, 2106-02-07 14:28:15]
  • Timestamp64:[1925-01-01 08:00:00.000, 2283-11-12 07:59:59.000]

Tips: To modify the general parameters, see General Parameters and Functions.