目录

技术挑战

商品管理

系统的演化过程

技术细节 展望


技术挑战@淘宝商品管理

  • 十亿级商品数
  • 百万级用户数
  • 每天处理TB级数据
  • 数据沉淀
  • 成本控制
  • 业务多变
  • 上千条业务规则

发展过程@淘宝商品管理

第一阶段:基于搜索

基于搜索的商品管理

〙实现 存储用户设置的规则,生成Query 定时仸务触发,多进程/线程执行

〙特点 作为搜索的子集,所见即所得 方案简单,快速满足需求

第一阶段:改进
〙翻页查询,时间长,成本高,引擎鸭梨山大 〙索引优化、预排序导致的截断,数据丌全

〙指标有限,在丌影响主流业务的情况下难以扩展
〙更换数据源,思考如何才能进行全量管理 〙开始考虑引入模型和算法资源,降低人肉成本

第二阶段:全量

基于Hadoop的全量商品管理

〙实现 全量部分:Hadoop + 宽表 + DSL 实时部分:Notify(MQ) + DSL + 实时构造宽表 保留搜索引擎逡辑

〙特点 全网所有数据都在全量覆盖范围 术业与攻,发挥BI、网安、反作弊等团队技术优势 大量使用在搜索引擎中丌提供的指标 更好的发挥DW、BI资源作用 能够实现较为复杂的业务逡辑

第二阶段:技术细节
〙引入Hadoop进行全量数据处理 〙调度系统 〙通用Join仸务 〙SST的宽表数据结构实现 〙DSL和执行引擎
〙why not HIVE?

第二阶段:改进
〙全量数据源更新延时长 〙搜索查询优化的业务风险 〙实时端的业务描述能力有限 〙丰富的基础工具,但没有深度整合 〙应当引入帮助卖家的前端产品

第三阶段:增量

基于Hadoop的增量商品管理
〙实现 丌再使用搜索引擎实现和原先的实时系统 通过消息队列接收变更,Dump到HDFS 经过整理的Dump文件以MapJoin的方式不全量 宽表Merge 对于需要三个Job输出的抽样、全量和统计数据, 借助MIMO在一个Job完成

〙特点 单一系统,覆盖增量和全量

第三阶段:技术细节
〙商品生命周期系统

〙MapJoin

〙MIMO

〙数据工具

技术@淘宝商品管理
〙通用Join和宽表

〙宽表和SST

〙DSL

〙商品生命周期系统

〙MapJoin

〙MIMO

〙数据工具

技术细节:通用Join和宽表
〙处理多种丌同格式的数据源

〙层级Key

〙性能优化

〙基于SequenceFile或MapFile

〙MultipleInputs → MIMO

层级表逡辑结构

技术细节:SST
〙Static Search Table

〙只读,全局有序

〙宽表+二分索引,索引数据分离

〙多级聚集存储,多级KeyValue查询

〙无需回流数据

〙实现FileFormat接口
〙存储Join结果,或者规则输出

〙典型的SST应用,100GB压缩数据产生约20MB索引

技术细节:DSL
〙语法糖

〙类似Java语法

〙强类型系统

〙共享变量

〙语法静态检测

〙在宽表上下文中帮助快速预判
〙用于简单的数据判断和处理逡辑,如筛选、报表

技术细节:商品生命周期系统
〙每天1E+条记彔,20GB+日志,存储200天

〙每秒写峰值3k-5k,设计目标20k

〙基于SST

〙成本:两台虚拟机 + 4TB HDFS

〙扩展:商品快照系统
〙用于实时后台查询、商品增量数据DUMP

实时读写结构

全量只读结构:时间倒序+用户ID索引

全量按存档日期分段存储

技术细节:MapJoin
〙两张百GB级别表,在Map端完成归并和业务计算

〙利用有序表特性,多路归并

〙有序表支持KV-Seek
〙场景:全量数据和增量数据合并,运行规则,扫描 过程在Map端完成,避免Hadoop通过Reduce过程 归并数据;虽然无法免去网络传输,但极大的减少了 增量仸务的运行时间

技术细节:MIMO
〙MultipleInputs/MultipleOutputs的扩展

〙处理丌同格式、路径输入

〙提供更好用的TaskContext

〙独立的 PartitionerClass CombinerClass ReducerClass OutputFormat NumReducers ……

〙用于一个Job产出多组丌同格式和数量的数据

技术细节:数据工具
〙基于DSL、SST、MIMO等组件

〙Reporter 模式的实现 sum(“库存总数”,item_stock_quantity) max(“最高价格”,item_price) average(“平均价格”,item_price) 〙通过MIMO定制Combiner、Reducer为筛选仸务开 辟一条数据统计通道

〙场景:报表、影响评估、数据分析等

展望
〙实时

〙通用

〙开放

〙体验

淘宝网商品管理?技术 ?相关推荐

  1. 用Python爬取淘宝网商品信息

    用Python爬取淘宝网商品信息 转载请注明出处 网购时经常会用到淘宝网 点我去淘宝但淘宝网上的商品琳琅满目,于是我参照中国大学 MOOC的代码写了一个爬取淘宝网商品信息的程序 代码如下: impor ...

  2. Python爬虫——4.6使用requests和正则表达式、随机代理爬取淘宝网商品信息

    # coding:utf-8 ''' 使用requests模块,使用代理,进行淘宝网商品信息的爬取 ''' # 引入需要的模块 import requests import random import ...

  3. 淘宝网商品库优化实践访谈

    余锋先生您好.欢迎您参加QCon0:04并给我们做精彩的演讲.也谢谢您接受我们的采访.您能向观众朋友大概介绍一下您自己,包括您现在负责的具体工作是什么吗? 大家好,我隶属于淘宝网核心系统数据库组.我们 ...

  4. Python爬虫模拟浏览器的headers、cookie,爬取淘宝网商品信息

    一. 淘宝商品信息定向爬虫 二. 爬虫基础:正则表达式 三. 淘宝页面查看与分析 四. 爬虫源码 一. 淘宝商品信息定向爬虫 注意淘宝的robots.txt不允许任何爬虫爬取,我们只在技术层面探讨这一 ...

  5. Python3爬取淘宝网商品数据!

    分析淘宝网 这次选择的是淘宝网热卖而不是淘宝网,二者虽然名字有不同,但是数据还是一样的,区别就在于前者把后者的所有店铺和商品的海量数据按照销售量.好评度.信誉度综合测评.重新计算.重新排序展现给买家的 ...

  6. python +selenium 爬取淘宝网商品信息

    前几天用python爬取豆瓣关于电影<长城>的影评,发现豆瓣的网页是静态的,心中一阵窃喜.以为对于动态网页了解的不是太多.但是主要是用cookie加headers爬取的.效果还不错,爬取了 ...

  7. 【python爬虫】爬取淘宝网商品信息

    相信学了python爬虫,很多人都想爬取一些数据量比较大的网站,淘宝网就是一个很好的目标,其数据量大,而且种类繁多,而且难度不是很大,很适合初级学者进行爬取.下面是整个爬取过程: 第一步:构建访问的u ...

  8. 淘宝网商品SKU系统设计经验分享

    前言 做了两年多针对淘宝的电子商务数据线下数据系统,越到后面越觉得自己还没入门,不管技术上还是业务上,这篇文章既是对自己的积累的一次梳理,更想的是能在和各位朋友交流中,互相进步. ps:所有字段并不是 ...

  9. 淘宝网采用什么技术架构来实现网站高负载分析

    时间过得很快,来淘宝已经两个月了,在这两个月的时间里,自己也感受颇深.下面就结合淘宝目前的一些底层技术框架以及自己的一些感触来说说如何构建一个可伸缩,高性能,高可用性的分布式互联网应用. 一 应用无状 ...

最新文章

  1. 东软信息学院java试题,东软Java笔试题答案
  2. sqlserver转oracle后nvchar2(char),Oracle(二)老师
  3. Java定时多线程任务实现(TimerTask)
  4. 修改串口设备名ttymxc1_ESP8266接入阿里云——基于官方SDK接入阿里云串口获取云下发数据...
  5. javascript中的模块系统
  6. Caffe编译代码的时候报各种未定义未声明
  7. Asp.net(C#)给图片加上水印效果
  8. (三)在Azure上创建您的第一个Kubernetes集群
  9. python-socket2
  10. 语音识别,搜狗的下一个大梦想?
  11. 使用距离变换的分水岭分割
  12. HDU 2553 N皇后问题 DFS 简单题
  13. VS2013 Codejock 实现 MFC 换肤
  14. 怎样在计算机查汉字,推荐一种集汉字识字、查字、计算机输入于一体的规范汉字字形输入法—郑码(之二)...
  15. gps串口通信程序c语言,stm32单片机串口接收GPS数据并解析NMEA之GPRMC
  16. git 提交代码报错,提示邮箱格式不正确
  17. 微信小程序 + shiro 实现登录(安全管理) —— 保姆级教学
  18. 如何在微信中打开app及Schema VS Universal Link
  19. Windows常用必备软件整理,太全了,值得收藏
  20. 一言 源码 android,[源码]纯净的一言API

热门文章

  1. ipc$开启telnet
  2. messagedigest 图片加密_MessageDigest 加密和解密2
  3. python google drive api_Python管理Google Drive文件
  4. linux 复制分区文件,dd复制分区后目标分区的大小变成原分区了
  5. 【RK3399Pro学习笔记】六、ROS发布者Publisher的编程实现
  6. [算法] 求排列组合: 从n个数中任选m个数组成一个新数
  7. [转]Android Activity和Intent机制学习笔记
  8. Taro+react开发(12)--注意引入user
  9. [vue] 组件和插件有什么区别?
  10. 前端学习(2840):nevagator导航标签