论文部分内容阅读
Stock-Keeping Unit(简称SKU)是库存控制的最小可用单位。库存单位指的是包含特定物理属性与社会属性的一类商品。物流中心使用SKU系统的追踪库存与商品。Multi-SKU (简称MSKU)是亿贝网站上的一种零售方式,卖家可以通过这个功能在刊登一件商品的时候包含多种子商品,不同的子商品可以具有不同的属性。本文通过对亿贝数据仓库中现有的库存分类系统进行改进,实现了系统对MSKU的支持。全文深入浅出,详细阐述了整个项目的商业背景、设计与实现,使读者对现有的库存分类系统及基于系统的改进有了全面认识。库存分类系统是亿贝数据处理中重要的一环,它从需求、库存、价格三个方面出发,对亿贝线上商品信息做出了诠释,用户可以从不同角度发现商机。库存分类系统不仅服务于商业用户,帮助他们做出商务决策;同时也对亿贝线上的目录分类进行数据反馈,以优化网站的商品分类系统。现有的库存分类系统不能识别MSKU商品中的子商品,导致了商品分类不够精确的问题。本项目对现有系统进行了纵向扩展,改善了系统对MSKU商品的支持,使其能够精确定位MSKU中每个子商品的专有属性,使系统的分类更科学,生成的报表数据更精准。MSKU库存分类系统的设计主要分为两部分:处理MSKU商品的新流程以及对现有系统的重构。对于新流程来说,主要任务是抓取每天新上线的MSKU商品,并获取其商品属性,经过数据清洗,建立商品与SKU的映射关系,最终对商品数据进行统计;对于现有流程来说,重构主要是增加其兼容性,使新老流程生成的数据能够合并,并在前台报表中正确显示。整个库存分类系统主要的三个模块:Merge Namespace (简称MNS)、Scoring、Metric串行执行。MNS模块获取新上线的商品及其属性信息,并对属性进行标准化与过滤;Scoring模块对属性进行进一步处理,并根据商品不同的属性组合建立商品与SKU的映射关系;Metric模块则根据分类情况对商品数据进行聚合,以备前台报表使用。这三部分相互关联,前后依赖,串行执行。库存分类系统属于亿贝数据仓库的一部分,使用了Teradata数据仓库解决方案,采用了Teradata+Solaris+UC4的环境架构,以Solaris作为平台,使用Shell脚本调用Teradata的BTEQ应用模块执行SQL脚本,实现数据的处理与存储,并使用UC4进行任务规划与调度。库存分类系统每天处理数亿行记录,数据增量高达数千万行。库存分类系统不仅支持着美国、英国、德国的库存商业报表,同时也为数据仓库的其它系统数据服务。作者在MSKU库存分类系统的整个开发过程中,从项目的需求出发,开发了新的库存分类处理流程,并对现有流程进行了一定重构使之能与新流程兼容,两条流程能够在并行为商品进行库存分类。在新的库存分类系统发布之后,商业用户可以对MSKU类型商品将有一个更详细的认识,有助于商业用户做出更精确的商务决策。