SuperAPI AI 工具集

molt-verify

数据与分析

查看项目

更新于 10-15 19:50

技能介绍

用途:molt verify 用于在迁移(如 molt fetch)之后,对比源数据库与目标数据库的 schema(DDL)和行级数据一致性,确认迁移完整性。基本结构为 molt verify --source "<source-conn>" --target "<crdb-conn>" [options]。

主要能力:校验分两阶段。阶段一比较表是否存在、列、类型、NOT NULL 约束和主键结构;阶段二(默认 --rows=true)按主键顺序遍历源行并与目标对比,按分片报告缺失、多余和不匹配的行。模式包括全量(默认)和仅 schema(--rows=false,快速 DDL 检查,无数据 I/O)。

使用方式:默认按 CPU 数量并行处理表,每表 1 个分片,每批 2 万行。大表可用 --concurrency 1 --concurrency-per-table 8 --row-batch-size 50000 在单表内并行;限速可用 --rows-per-second 1000 --concurrency 2。分片按主键范围拆分,支持 INT、FLOAT、DECIMAL、UUID,其他类型回退为单次全表扫描。常用工作流包括迁移后完整性检查、仅 schema 的 CI 门禁(--rows=false --non-interactive --log-file stdout)、表过滤(--table-filter "customers|orders")和列排除(--transformations-file)。

输出与限制:每表按分片打印摘要,如 truth rows seen、success、missing、mismatch、extraneous;schema 问题以警告记录且不中断行校验。Prometheus 指标可通过 --metrics-listen-addr(默认 127.0.0.1:3030)获取。行校验要求源和目标表都有主键,无主键表跳过行比较。PostgreSQL 无特殊要求但不支持分区表;MySQL 仅查询当前数据库;Oracle 需 CGO 构建并配置 Instant Client,多租户用 --source-cdb,且不支持 --filter-path。迁移后 schema 变更不会自动协调,需先修复 schema 再重跑。--concurrency 超过 CPU 数 4 倍会告警并可能降低性能。日志含敏感查询数据,生产环境避免 --show-connection-logging。