一、服务端设计
1、数据为全部云主机数据,不做区分是否东师提供
2、架构设计
Year (每年1月1日早上0点执行,将去年的数据打包成zip,并清空所有Month下zip文件)
2014.zip 2015.zip 2015.zip 2016.zip
Month(每天晚1点 将本月的数据打包成zip,重新上传,替换本月已生成的zip,比如1月1日晚上1点,如果有数据,生成 1.zip,即,以前的月份,是完整的当月数据,当前月份,是从本月1日至昨天的最新数据)
1.zip 2.zip 3.zip 4.zip ... 11.zip 12.zip
* 人员的ID不能带下去,需要在查询生成CSV文件时,使用case when group_id then person_id=1 else person_id=-1 **
* 包括 t_resource_base t_resource_info t_resource_scheme t_resource_structure t_dm_subject等
二、客户端设计
每天早上3点,去OSS下载是否有未下载的更新包,如果有云上存在、本地也存在的,对比MD5,如果一致,不重复下载。如果不一致,下载,解压,导入,重建全量索引,并做指定时间范围内的数据缓存(不做全量缓存重建)。
注意要在导入数据时,设置set session sql_log_bin=0,防止因二进制日志读写太慢导致导入失败,在完成后设置:set session sql_log_bin=1
三、方案优势
(1)每天各地用户使用的都是前一天阿里云最新数据,极大提高资源更新速度。
(2)研发人员无需考虑复杂的更新办法,开发复杂的更新工具,造成人力浪费,而且效果非常差,工期太长。