跨数据源数据一致性校验工具。
Consilens 用于验证数据同步、迁移、ETL、回填后的结果是否一致,并输出行级、列级差异。
适合这类场景:
- MySQL → PostgreSQL / ClickHouse / StarRocks 迁移验收
- 数据同步链路校验
- ETL / 回填结果核对
- 双写 / 灰度切换对账
- 跨数据源比对,不要求两侧数据集在同一个实例
- 基于 connector/dataset 抽象,架构可扩展至 ES、MongoDB、HDFS 等非关系型数据源
- 大表优先走 checksum 收敛,差异可定位到主键和字段
- 支持多格式 sink 输出:控制台、JSON 文件、CSV 文件、结果表
- 基于 SPI 的连接器插件扩展
| 数据库 | 连接器模块 | 验证状态 |
|---|---|---|
| MySQL | consilens-connector-mysql |
已验证 |
| PostgreSQL | consilens-connector-postgresql |
已验证 |
| SQL Server | consilens-connector-sqlserver |
内置(待验证) |
| Oracle | consilens-connector-oracle |
内置(待验证) |
| ClickHouse | consilens-connector-clickhouse |
内置(待验证) |
| Doris | consilens-connector-doris |
内置(待验证) |
| StarRocks | consilens-connector-starrocks |
已验证 |
| Presto | consilens-connector-presto |
内置(待验证) |
| Trino | consilens-connector-trino |
内置(待验证) |
| TiDB | consilens-connector-tidb |
内置(待验证) |
说明:内置(待验证) 表示仓库里已有对应连接器模块,但 README 目前只把已完成端到端验证的数据库作为对外首推能力。
边界探测
↓
首轮分段
↓
checksum 比对
↓
一致段跳过
↓
差异段继续收敛
↓
小段本地精确比较
mvn clean package -DskipTests -Prelease./bin/consilens-cli.sh diff -c config.yamlsource:
type: mysql
connection:
url: jdbc:mysql://localhost:3306/source_db
username: ${env.MYSQL_USER}
password: ${env.MYSQL_PASSWORD}
resource:
type: table
name: orders
target:
type: postgresql
connection:
url: jdbc:postgresql://localhost:5432/target_db?currentSchema=public
username: ${env.PG_USER}
password: ${env.PG_PASSWORD}
resource:
type: table
name: orders
comparison:
keys:
source:
- order_id
target:
- order_id
fields:
source:
- order_id
- customer_id
- amount
- status
- created_at
target:
- order_id
- customer_id
- amount
- status
- created_at
strategy:
mode: checksum
algorithm: xor
bisectionFactor: 8
bisectionThreshold: 5000
batchSize: 1000
enableProfiling: false
result:
sinks:
- format: console
type: result
- format: json
type: diff-record
properties:
path: ./diff_results.json
pretty: true请将上面的用户名和密码替换成真实值。配置支持环境变量占位符,语法为 ${env.VAR_NAME} 或 ${env.VAR_NAME:默认值}。
| 策略 | 状态 | 说明 |
|---|---|---|
checksum |
已实现 | 推荐默认使用,支持跨数据源 |
join |
已实现 | 仅支持同一个 JDBC URL |
- 微信公众号,扫描二维码关注
- 添加时备注:Consilens

