MySQL 到 Pulsar
| 功能 | 说明 |
|---|---|
Schema Migration | If the specified Topic after mapping does not exist in the Target, BladePipe will automatically create the Topic, allowing setting the number of partitions. |
Full Data Migration | Migrate data by sequentially scanning data in tables and writing it in batches to the message-oriented middleware. |
Incremental Data Sync | Sync of common DML like INSERT, UPDATE, DELETE is 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. |
Metadata Retrieval | Retrieve the target metadata with filtering conditions or target primary keys set from the source table. |
高级功能
| 功能 | 说明 |
|---|---|
消息格式 | 支持以下消息格式,文档:消息格式说明
|
Topic Mapping Rules | By default, Topic is mapped the same as that in the Source. Also, BladePipe supports the mapping rules, namely, converting the text to lowercase, converting the text to uppercase, truncating the name by "_digit" suffix, truncating the name by "_digit" suffix. concatenate in the format of SCHEMA_TABLE (metadata mirroring)、concatenate in the format of SCHEMA_TABLE (converting metadata to uppercase)、concatenate in the format of SCHEMA_TABLE (converting metadata to lowercase). |
Table-level Topic | Create Topics corresponding to the tables in the Source, and the table partitions can be obtained automatically. |
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. |
限制和注意点
| 限制项 | 说明 |
|---|---|
MySQL 存储引擎 | 支持 InnoDB, MySIAM, 阿里云 XEngine, 其他存储引擎暂未测试 |
MySQL 字符集 | 支持 utf8, utf8mb4, latin1, 其他编码暂未测试 |
前置条件
| 条件 | 说明 |
|---|---|
账号权限 | |
开启 Binlog | [mysqld] |
任务参数
| 参数名称 | 说明 |
|---|---|
parseBinlogParallel | 增量解析 Binlog 的并发数 |
parseBinlogBufferSize | 用于增量解析 Binlog 的环形队列大小 |
maxTransactionSize | 单事务最大数据条数,超过则分段刷出 |
limitThroughputMb | 限制增量 Binlog 流量 |
extraDDL | 兼容额外的 DDL 同步,包括 PT, GHOST, ALI_DMS, PT_GHOST |
fullDataSqlConditionEnabled | 将过滤条件拼入 SQL 中进行源端数据扫描,此参数只针对全量迁移有效 |
srcTimeZone | 源端时区,例如 +08:00, Asia/Shanghai, America/New_York 等 |
Tips: 通用参数配置请参考 通用参数及功能
任务参数
| 参数名称 | 说明 |
|---|---|
schemaFormat | 消息格式,文档:消息格式说明 |
batchWriteSize | 单条消息最大数据条数,超过则拆分消息 |
enableBatching | Pulsar 是否启用批量发送 |
batchingMaxBytes | Pulsar 批量发送最大字节数,单位为字节 |
connectionTimeoutMs | Pulsar Client 连接超时时间,单位为毫秒 |
compressionType | 设置 Pulsar 消息压缩算法,支持 LZ4, ZLIB, ZSTD, SNAPPY 算法 |
envelopSchemaInclude | 当 schemaFormat 设置为 DEBEZIUM_ENVELOP_JSON_FOR_MQ 时,消息体是否包含 schema 信息 |
Tips: 通用参数配置请参考 通用参数及功能