处理方案如下:
0、预估消费工时:16H
1、背景:模板属性表数量巨大,每次全量更新都会新增许多垃圾数据,影响读取、更新性能
2、统计现有数据量(2H)
a.模板主表总量、待删除量、优化后预估数量
b.属性表总量、待删除量、优化后预估数量
b.变体主题表总量、待删除量、优化后预估数量
3、具体思路。(12H)
a.处理数据前,暂停模板下载服务Task_Amazon_BrowseTreeTemplateDownload
b.主表只保留2023年的数据。由于类目改成从采集平台同步后,每次都是全量更新,所以模板也都是全量更新。如果模板总是不变,表示数据是无效的旧数据,即便大宽表有TemplateID引用也没用。(时间范围取值逻辑:如果UpdateTime有值,则用UpdateTime,如果为null则取AddTime,不能直接取AddTime,参考用法: isnull(updateTime,Addtime)>='2023-01-01 00:00:00')
c.主表去重,主表存在很多相同browsePathByID,但是模板ID不同的数据,只保留最新一条
d.属性表只保留有效数据,templateID能与主表ID关联上的,视为有效数据。
e.变体主题表只保留有效数据,templateID能与主表ID关联上的,视为有效数据。
f.程序优化:
①hp1.GET().GetAmazonBrowseTreeNodeV2(existModel.ID)(可从上下文移除)
②已存在的模板更新UpdateTime
③TemplatePath、LastTemplatePath订正
④移除日志,基本没有诊断的需要,hp1.GET().Add(log);
⑤写入模板属性时,增加超时重试机制,重试2次 hp.GET().AddModelList(attributeList);
4、安全措施:
a.删除主表前,备份主表E_Amazon_ShelfTemplate,保留1个月
b.模板属性表不直接删除,把有效数据导入到一个新表E_Amazon_ShelfTemplateAttributes_V2,新表完成后把表名改成正式表,旧表作为备份变更为E_Amazon_ShelfTemplateAttributes_Bak20230201,保留1个月
c.删除变体主题表前,备份主表RB_Amazon_VariationThemeInfo,保留1个月
d.切换前,一定要告知测试部、和系统部
5、关系重大,谨慎调试(2H)
a.模板下载功能
b.人工导入模板功能
c.正常刊登功能