需求背景:模板属性表数量巨大,每次全量更新都会新增许多垃圾数据,影响读取、更新性能
需求风险:影响AmazonListing刊登
目标用户:亚马逊平台运营中心
影响页面:需要类目模板的数据的页面或功能
详细描述:
模板主表(E_Amazon_ShelfTemplate)和模板属性表(E_Amazon_ShelfTemplateAttributes)、变体主题表(RB_Amazon_VariationThemeInfo)垃圾数据清理
一、统计现有数据量
模板主表:总量4381640、待删除量3652065 、优化后预估量 729575
属性表:总量 724481618、待删除量589118994、优化后预估量 135362624
变体主题表:总量 1383308、待删除937657 、优化后预估量445651
二、具体处理步骤
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<RB.DALExtend.E_Amazon_BrowseTree_Node_V2Extend>().GetAmazonBrowseTreeNodeV2(existModel.ID)(可从上下文移除)
②已存在的模板更新UpdateTime
③TemplatePath、LastTemplatePath订正
④移除日志,基本没有诊断的需要,hp1.GET<RB.DALExtend.E_Amazon_BrowseTree_LogExtend>().Add(log);
⑤写入模板属性时,增加超时重试机制,重试2次 hp.GET<RB.DALExtendV2.Generate.E_Amazon_ShelfTemplateAttributesExtendV2>().AddModelList(attributeList);
三、安全措施(重要)
a、删除主表前,备份主表E_Amazon_ShelfTemplate,保留1个月
b、模板属性表不直接删除,把有效数据导入到一个新表E_Amazon_ShelfTemplateAttributes_V2,新表完成后把表名改成正式表,旧表作为备份变更为E_Amazon_ShelfTemplateAttributes_Bak20230201,保留1个月
c、删除变体主题表前,备份主表RB_Amazon_VariationThemeInfo,保留1个月
d、切换前,一定要告知测试部、和系统部
四、关系重大,处理时需要谨慎调试下面功能是否正常
a、模板下载功能
b、人工导入模板功能
c、正常刊登功能