MySQL to ClickHouse
BladePipe supports data replication from MySQL to ClickHouse. View supported migration, sync, verification, and connector capabilities.
| Function | Description |
|---|---|
Schema Migration | If the target schema does not exist, BladePipe will automatically generate and execute CREATE statements based on the source metadata and the mapping rule. |
Full Data Migration | Migrate data by sequentially scanning data in tables and writing it in batches to the target database. |
Incremental Data Sync | Sync of common DML like INSERT, UPDATE, DELETE is supported. |
Data Verification | Verify all existing data. Scheduled DataTasks are supported. |
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 file position or timestamp. Allow re-consumption of incremental data logs in a past period or since a specific Binlog file and position. |
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. |
DDL Sync |
|
Metadata Retrieval | Retrieve the target metadata with filtering conditions or target primary keys set from the source table. |
Advanced Functions
| Function | Description |
|---|---|
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. |
Scheduled Full Data Migration | For more information, see Create Scheduled Full Data DataJob. |
Custom Code | For more information, see Custom Code Processing, Debug Custom Code and Logging in Custom Code. |
Data Filtering Conditions | Support data filtering using WHERE conditions, with SQL-92 as the SQL language. For more information, see Data Filtering. |
Setting Target Primary Key | Change the primary key to another field to facilitate data aggregation and other operations. |
Adding Virtual Columns | Support adding custom virtual columns with fixed values, such as region, ID, etc. |
Limits
| Limit | Description |
|---|---|
MySQL Storage Engine | Support InnoDB, MyISAM, AWS XEngine. Other storage engines have not been tested yet. |
MySQL Character Set | Support utf8, utf8mb4, latin1. Other encodings have not been tested yet. |
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:
|
FAQ
What to do when access to schema in MySQL Source is denied?
Tip: MySQL source-related FAQ also applies to MySQL-based DataSources.
Prerequisites
| Prerequisite | Description |
|---|---|
Permissions for Account | |
Enabling Binlog | [mysqld] |
Parameters
| Parameter | Description |
|---|---|
parseBinlogParallel | Number of threads for parallel parsing of Binlog in Incremental DataJobs. |
parseBinlogBufferSize | Size of the circular buffer for parsing Binlog in Incremental DataJobs. |
maxTransactionSize | Maximum number of data rows per transaction. If exceeded, the transaction will be split and flushed in parts. |
limitThroughputMb | Limit the throughput of incremental Binlogs. |
extraDDL | Support synchronization of additional DDL, including PT, GHOST, ALI_DMS, and PT_GHOST. |
needJsonEscape | Escape special characters in JSON to be written to the target database. |
fullDataSqlConditionEnabled | Add filtering conditions in SQL during source data scanning. It only works in Full Data migration. |
srcTimeZone | Source time zone, e.g., +08:00, Asia/Shanghai, America/New_York, etc. |
Tips: To modify the general parameters, see General Parameters and Functions.
Prerequisites
| Prerequisite | Description |
|---|---|
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
| Parameter | Description |
|---|---|
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:
|
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):
|
Tips: To modify the general parameters, see General Parameters and Functions.