📦 Db Table Compare — 数据库表比较
v1.0.0对比两个数据库(MySQL vs ODPS)的表字段差异,生成 HiveSQL ALTER TABLE 和 DataX JSON 格式
运行时依赖
安装命令
点击复制技能文档
数据库表字段对比技能 功能
对比两个数据库的表结构差异,生成:
HiveSQL ALTER TABLE 语句 DataX JSON 格式(获取_json_object 提取字段) 触发词 "对比 [表名] 字段" "表结构差异" "MySQL vs ODPS [表名]" "生成 alter table" "生成 datax json" "字段差异" 支持的数据库 数据库 类型 连接方式 TH DataWorks ODPS/MaxCompute SSH + odpscmd PH DataWorks ODPS/MaxCompute SSH + odpscmd TH FIN MySQL Python pymysql TH FLE MySQL Python pymysql TH SAP MySQL Python pymysql 执行流程 确定数据源 - 解析表名和环境 查询表结构 - DESC / SHOW 创建 TABLE 对比字段 - 找出差异 生成输出 - ALTER TABLE + DataX JSON 输出格式
- ALTER TABLE(新增字段)
- DataX JSON(字段提取)
使用示例 示例:对比 TH FIN 表
用户: "对比 th-fin 的 ka_accounts_receivable_detAIl_c3 和 dwd_fin_ka_accounts_receivable_detAIl_c3_di"
执行:
# 1. 查 MySQL 字段 python3 -c " 导入 pymysql conn = pymysql.connect(host='core-dev-db.fex.pub', port=3306, user='th_dev_fin_rw', password='xxx', database='th_dev_fin') cursor = conn.cursor() cursor.执行('DESC ka_accounts_receivable_detAIl_c3') for r in cursor.fetchall(): print(r[0], r[1]) conn.close() "
# 2. 查 ODPS 字段 ssh datax "cd /mnt/www/添加r/th_odpscmd/bin && echo 'DESC dwd_fin_ka_accounts_receivable_detAIl_c3_di;' | ./odpscmd"
返回:
字段对比表 差异说明 ALTER TABLE 语句 DataX JSON 格式 智能处理
自动识别数据源
dwd_, ads_, dim_ 前缀 → ODPS 其他 → MySQL
自动选择环境
TH 相关 → TH DataWorks / TH MySQL PH 相关 → PH DataWorks / PH MySQL fin → th_dev_fin
字段匹配
不区分大小写 DataX JSON 格式说明
DataX 数据摄取时,ODPS 字段从 JSON 提取:
用途 格式 读取 JSON 获取_json_object(values, '$.字段名') 别名 as 字段名 完整行 获取_json_object(values, '$.字段名') as 字段名, 注意事项 只读查询 - 只执行 DESC/SHOW 创建 TABLE 不执行 DDL - 只生成语句,用户确认后再执行 密码保护 - 密码不输出 更新日志 2026-04-21 ✅ 创建技能 ✅ 支持 TH FIN vs TH DataWorks 对比 ✅ 支持生成 ALTER TABLE ✅ 支持生成 DataX JSON 格式(获取_json_object)