SuperAPI AI 工具集

sql-server-table-reconciliation

数据与分析

查看项目

更新于 10-15 23:46

技能介绍

用途:对比两个 SQL Server 实例中的同名表,用于跨实例表比较、数据迁移验证、ETL 校验、行不匹配检测与架构漂移检查,并生成对账报告。

主要能力:自动或手动指定主键/复合键,检测架构差异,通过 Apache Arrow 高效列式抽取数据,逐行逐列比较,输出缺失行、多余行、列不匹配等结果。大数据量时可用哈希预检(HASHBYTES SHA2_256)减少传输,仅拉取哈希不匹配的完整行。

使用方式:需先安装依赖并运行自带脚本。

pip install mssql-python pyarrow pandas

python scripts/reconcile.py
--source-server <source_server>
--source-database <source_database>
--target-server <target_server>
--target-database <target_database>
--tables "<table_spec>"
--auth <sql|entra>
--chunk-size <chunk_size>
--output <console|csv|json>

可选参数 --primary-key 与 --columns。表名支持 schema.table 或 schema.* 通配,认证支持 sql 与 entra,输出支持 console、csv、json。比较时需归一化类型、NULL 视为相等、按主键关联而不按位置比较。

适用场景:迁移前后数据一致性核对、ETL 结果验证、多环境数据比对、大表分块或哈希比对。

限制:必须使用 mssql-python 驱动,数据抽取须用 cursor.arrow();连接须用连接字符串而非关键字参数;必须先确定主键,自动检测失败需询问用户;不得硬编码凭据,应使用 MSSQL_USER、MSSQL_PASSWORD 等环境变量;元数据查询须用参数化查询;需优雅处理连接失败与重试。

性能策略:小于 10 万行单次 Arrow 拉取内存比较;10 万至 100 万行分块流式比较;超过 100 万行先哈希预检。宽表可先比较主键与哈希,再针对不匹配列下钻。

报告格式:单表输出完整细节(架构漂移、示例行、不匹配),多表输出每表紧凑摘要,仅对失败表展开完整细节。

暂未提供:该技能的官方收费、价格、平台支持范围及安装以外的授权信息。