# dataConver **Repository Path**: ln_yubing/data-conver ## Basic Information - **Project Name**: dataConver - **Description**: 定时从SQLServer提取数据存至MYSql - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-28 - **Last Updated**: 2025-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SQLServer到MySQL数据同步项目 ## 项目简介 这是一个基于Spring Boot 3.5.0的数据同步项目,用于定时将SQLServer数据库中的数据同步到MySQL数据库。 ## 技术栈 - **Spring Boot**: 3.5.0 - **Java**: 17 - **数据库**: SQLServer 2016 + MySQL 8 - **连接池**: HikariCP - **定时任务**: Quartz - **构建工具**: Maven ## 功能特性 - ✅ 支持定时自动同步 - ✅ 支持手动按键同步 - ✅ 增量同步支持 - ✅ 关联数据同步 - ✅ 配置化管理 - ✅ 详细的同步日志 ## 快速开始 ### 1. 环境要求 - JDK 17+ - Maven 3.6+ - SQLServer 2016+ - MySQL 8+ ### 2. 配置数据库 编辑 `src/main/resources/application.yml` 文件,配置数据库连接信息: ```yaml # SQLServer配置 sqlserver: url: jdbc:sqlserver://your-server:port;databaseName=your-db username: your-username password: your-password # MySQL配置 mysql: url: jdbc:mysql://localhost:3306/your-db username: your-username password: your-password ``` ### 3. 启动方式 #### 方式一:Maven启动(开发环境) ```bash # 启动Spring Boot应用 mvn spring-boot:run # 或者使用启动脚本 start-spring.bat ``` #### 方式二:JAR包启动(生产环境) ```bash # 打包项目 mvn clean package -DskipTests # 运行JAR包 java -jar target/data-conver-1.0.0.jar ``` ### 4. 使用说明 启动后,项目会: - 自动启动定时同步服务 - 显示配置的同步时间 - 支持手动同步(按 's' 键) - 支持退出程序(按 'q' 键) ## 配置说明 ### 同步配置 ```yaml sync: cron: "0 0 8 * * ?" # 每天8点执行 batchSize: 1000 # 批处理大小 maxRetries: 3 # 最大重试次数 retryDelay: 5000 # 重试延迟(毫秒) scheduler: enabled: true # 启用定时同步 autoStart: true # 启动时自动开始 manualSync: true # 启用手动同步 ``` ### 表配置 ```yaml sync: table: wm_mulity_route: enabled: true source: MulityRoute key: imei strategy: upsert wm_mulity_route_his: enabled: true source: MulityRoute_His key: id strategy: incremental timestamp: systime wm_mulity_route_meter_data: enabled: true source: MulityRoutMeterData key: id strategy: related_incremental ``` ## 项目结构 ``` src/main/java/com/dataconver/ ├── config/ # 配置类 │ ├── DataSyncProperties.java │ ├── DatabaseProperties.java │ └── DataSyncConfiguration.java ├── db/ # 数据库管理 │ └── DatabaseManager.java ├── sync/ # 同步策略 │ ├── DataSynchronizer.java │ ├── IncrementalHisSyncStrategy.java │ └── RelatedMeterSyncStrategy.java ├── scheduler/ # 定时调度 │ └── SyncScheduler.java ├── service/ # 服务层 │ └── DataSyncInitializer.java └── DataConverApplication.java # Spring Boot主类 ``` ## 同步策略 ### 1. UPSERT同步 - 适用于:`wm_mulity_route` 表 - 策略:基于IMEI字段的插入或更新 ### 2. 增量同步 - 适用于:`wm_mulity_route_his` 表 - 策略:基于时间戳的增量数据同步 ### 3. 关联增量同步 - 适用于:`wm_mulity_route_meter_data` 表 - 策略:基于历史表ID的关联数据同步 ## 监控和日志 - 同步状态记录在 `wm_sync_status` 表中 - 详细日志输出到控制台和日志文件 - 支持Spring Boot Actuator监控端点 ## 故障排除 ### 常见问题 1. **数据库连接失败** - 检查数据库配置信息 - 确认网络连接和防火墙设置 2. **同步失败** - 查看日志文件获取详细错误信息 - 检查表结构和权限设置 3. **定时任务不执行** - 验证cron表达式格式 - 检查系统时间设置 ### 日志位置 - 控制台输出:实时查看 - 日志文件:`logs/sync.log` ## 开发说明 ### 添加新的同步策略 1. 实现 `SyncStrategy` 接口 2. 在 `DataSynchronizer` 中添加对应方法 3. 在配置文件中添加表配置 ### 修改同步配置 编辑 `application.yml` 文件,修改相应的配置项,重启应用即可生效。 ## 许可证 本项目采用 MIT 许可证。 ## 联系方式 如有问题或建议,请联系开发团队。