请教各位大佬一个关于MySQL的问题

1.需求:要从第三方获取到数据做数据统计。
2.第三方考虑到安全问题,不让我们直接连他们的数据库,只能通过一台跳板机(windows的)去连接。
3.跳板机会通过navicate的自动运行功能每天凌晨同步第三方的最新数据。
4.我们再连接跳板机的数据库,通过laravel的任务调度脚本(schedule)将数据同步到自己的数据库。因为要做数据统计,脚本中拉取的数据表结构可能不同,所以不能直接用跳板机的数据库。就有点麻烦。

目前有个问题就是,比如第一天的时候 第三方客户表中有3条数据,跳板机中会同步到3条数据,然后我们也会拉取到3条数据。第二天的时候,新增了3条,同时修改了之前的3条数据,跳板机中因为是每天清空表重新拉取一次数据肯定会维持最新的。而我们只拉取新增的,修改的数据不会执行更新。该如何解决?

问题可以简化一下就是:从数据库A拉取数据到数据库B,因为数据量比较大,数据B每天只拉取数据库A中新增的数据,那么数据库A如果有数据更新 怎么在数据库B中进行更新?因为要做报表、数据统计的功能,所以表结构会有点差异,也没法修改别人的数据库配置,无法做成主从数据库同步的那种。所以请教大家,我该咋办。。如果每天都清空表重新拉取一遍就太慢了

@ZLSN
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

同步更新时间在前一天范围内的数据不就行了

3年前 评论
pigzzz (作者) 3年前
ZLSN (楼主) 3年前
ZLSN (楼主) 3年前
讨论数量: 5

同步更新时间在前一天范围内的数据不就行了

3年前 评论
pigzzz (作者) 3年前
ZLSN (楼主) 3年前
ZLSN (楼主) 3年前

在自己数据库中冗余一份和远端数据库相同的表数据作为初始数据,再去做数据统计,这个可行么?

3年前 评论
ZLSN (楼主) 3年前

如果第三方的每张表都准确记录了更新时间,只要判断更新时间就知道距离上一次更新后的增量添加和更新的数据了,如果没有那就只能全量更新了,因为根本没法确认增量数据是哪些。

3年前 评论

新增的?用最后一条的id判断?

还有数据统计的字段用新表啊 放在旧表的意义是什么

3年前 评论
ZLSN (楼主) 3年前

有这个情况的表,如果你可以让他们执行下这个语句

alter table {table_name} add column created_at timestamp default current_timestamp;
alter table {table_name} add column updated_at timestamp null on update current_timestamp;

你就只需要新增 created_at 在你同步之后的数据,更新 updated_at 在你更新之后的数据了。 或者你在跳板机器上整个副本

3年前 评论
夜晚的雨 (作者) 3年前
ZLSN (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!