前言
最近知识星球中有位小伙伴问了我一个问题:如何快速同步第三方平台数据?
他们有个业务需求是:需要同步全国34个省市,多个系统的8种业务数据,到他们公司的系统当中。
他们需求同步全量的数据
和增量的数据
。
全量的数据主要是针对多个系统的历史数据,大概有几千万数据,只需要初始化一次即可。
而增量的数据,是系统后续变更的数据。
这个需求其实不简单,至少有以下难点:
-
不能直接访问第三方数据库。
-
不能将历史数据导出到excel中,有泄露数据的风险。
-
如何快速同步历史数据?
-
增量数据如何处理?
-
接口需要做限流吗?
-
增量数据如何校验数据的一致性?
带着这些问题,开始今天的文章之旅。
1. 如何快速同步历史数据?
想要快速同步历史数据,第一个想到的可能是直接同步数据库中的数据。
但多个第三方系统为了数据安全考虑,不可能直接把他们的数据库访问地址和相关账号密码告诉你。
即使他们告诉你了,但有很多个系统,你一个个去连数据库查数据,也非常麻烦。
有些小伙伴可能会说:这好办,让第三方系统把他们的历史数据导出到excel中,我们写个程序解析去这些excel,就能将数据快速导入到我们的数据库中。
这是个好办法,但忽略了一点:这些数据是敏感数据,不能对外暴露。
因此导出excel的方案行不通。
那么,该如何快速同步历史数据呢?
答:使用SFTP
。
不知道你有没有跟银行对接过,SFTP在银行业务中经常会用到。
那么,如何用SFTP同步数据呢?
2. 如何使用SFTP?
说起SFTP
,就不得不说一说FTP
。
我们都知道,FTP
是用来传送文件的协议。使用FTP实现远程文件传输的同时,还可以保证数据传输的可靠性和高效性。
而SFTP
是一种可以安全传输文件的协议,它是一种基于SSH(Secure Shell)的文件传输协议,