工作需要,从第三方平台下载统计数据到公司内部数据库。
最好的路径应该是:
1、利用第三方OpenAPI直接获取数据;
2、和自己数据库中的数据比较,看哪些需要同步
3、有需要同步的,则同步过来

但是,咨询并查阅第三方OpenAPI后发现,没有统计数据可下载。
那就改变一下:
1、手工下载统计数据 — zip文件到本地
2、后续同步过程使用Go代码写的工具去实现
2.1、检查zip文件时间和本地数据库时间,如果大于数据库最新数据时间,则需要同步
2.2、如果需要同步,则解压zip文件,生成csv文件。
2.3、同步csv文件到本地数据库对应的表。但有个坑:csv文件title和行实际数据不一定一致。
需要每行检查并纠正。
2.4、数据库中有和csv文件对应的模板表,从模板表创建对应的数据表。
2.5、把csv对应的行数据insert into对应的表–中间表
3、检查本地数据库中间表,检查是否需要实际插入目标表。如果有则插入。
因为数据必须完整,故所有数据库操作采用事务方式处理。

本工具暂时只有处理最新zip文件,和最新中间表。并没有做到处理所导出数据zip文件,没有检查所有本地中间表文件。待优化,不过因为一周只需要执行一次,故暂时满足使用了。
主函数如图:

主程序

临时表到目标表
好了,以后不用手工同步数据了,只需要每周一次的手工下载统计文件。
也可以把工作交出去了。
很容易打包成exe文件。发布这这方面还是比Python方便一点。
工作中,好多手工都尽量工具化。提高工作效率。
我是【程序员黑洞】,一个程序员。正在学GoLang,用GO给自己写效率工具。
欢迎关注我,欢迎留言交流。