SlideShare a Scribd company logo
唯品会大数据实践
zhuchao@gmail.com
2014-9
About VipShop
• #3 b2c电子商务公司
• #5 互联网公司市值排名
• ~1300+ 技术人员, fast expanding…
• 业务线:网站,移动,物流,财务,仓储,供
应商
• ~200+ offline /~100 online 计算集群
• 10点高峰一小时(2x 晚高峰流量)
• 电商大促(核心系统15x-30x 平时10点高峰)
• 移动 booming
19:50:05 2
Agenda
• 数据平台实践
– 离线计算分析平台演化
– 实时计算平台演化
– 一些技术选型和经验
• 数据应用实践
– 系统开发和运营
– 数据魔方,选品
– 恶意用户识别/风控系统
– 商品品牌推荐
– 个性化排序
19:50:05 3
数据平台的建设
• 离线计算分析平台选建设
– 混合平台:Hadoop+Greenplum
– 迁移策略和计划
– hive vs pig
– hbase vs MySQL
– daily job, hourly job, min job
• 实时计算平台的建设
– Binlog2Kafka
– MySQL2Kafka
– Spark vs Storm
– Redis Challenge
• 外部数据
• 碰到的问题
19:50:05 4
离线平台的演化
• 2012 年底:CDC调度+GP10节点 系统稳定
• 2013 Q1:CDC调度+ETL Gp + Query Gp, Tuning
• 2013 Q2:
– 自有调度平台开发 + 自有抽取系统+
– Hadoop 流量开始迁移 +
– GP交易数据 + Query GP
• 2013 Q3:
– 自有调度平台+抽取迁移
– Hadoop流量迁移结束(70), 交易数据迁移开始
– GP交易数据+Query GP
– 核心数据小时级ETL
• 2013 Q4
– 元数据管理系统,数据质量工具
– ETL Gp完整迁移开始
– Query GP扩容40节点
• 2014 Q1
– 全部ETL@Hadoop
– ~200 nodes cluster + 40 Ad-Hoc EDW
– Hybrid node configuration
19:50:05 5
离线混合平台
• Referene:
– Netflex, LinkedIn, eBay
• GreenPlum + Hadoop
– 保护现有投资
– Hadoop 海量数据分析
– ETL复杂计算
– 权限打通
• Greenplum:
– GP擅长adhoc query速度快,
– 分析师适应
– 不足够scalable
– 长期成本
• Hadoop
– Massive scalable,但是单个查询慢
– 海量ETL计算
– Web查询
19:50:05 6
Hive vs Spark/shark
• Impala/shark:
– 不成熟,无法和GP相比;
– Impala很多功能不支持;
– Shark很多跑不出来;80%的query 成功率;
– Shark 被SparkSQL替换掉
• Hive还是太慢;
– 在快速改进,速度,功能,权限
– 和当前基本都兼容
– Keep an eye on SparkSQL
19:50:05 7
Hive vs Pig
• There were debate whether pig or hive
• Why Hive
– 开发人员适应性
– ETL和分析师统一方案
– 国内主流公司解决方案
– 持续升级
– 社区
• Hive升级
– 0.10 0.110.13
19:50:05 8
Hbase vs MySQL
• 背景:
– 离线应用分析出来的结果,需要被在线应用用到
– 数据量非常大,以后会更大
– 应用场景复杂
– 参考JD,TB,Hbase 更加多采用
– 大批量数据访问,低QPS
• 看上去Hbase更加合适,
– 但是我们选择了MySQL ,Why?
– MySQL 开发管理有丰富经验,Hbase当时无
– 产品需要很快出来,需要对外服务
– 开发速度更快,更加稳定
– 128G RAM+Flash卡
– 现在在部分往Hbase迁移
19:50:05 9
Hbase vs Redis
• 背景:
– 个性化user profile, high QPS, very time sensitive
– 用户信用体系user profile ,low QPS, non-critical
– 用户实时浏览,订单历史,high tps, high qps
– 都是海量数据
– 看上去Hbase更加合适, 但是不放心
• 选择:
– Critical 的Redis
– Non-critical 的Hbase
– 积累经验,逐渐往Hbase dual write
– 其实Hbase也不便宜,就是scale不动系统
– Redis某种程度上也可以实现
19:50:05 10
Other tips
• Agent 模式 vs 直接抽取模式
– 跨机房网络问题
• Online 规范
– DB: dictionary, ddl, delete
– Log: location, format ,URL规范
• 调度系统,一个很大的话题
• Yarn
– 究竟现阶段是不是需要?
19:50:05 11
Solr/ES
• 场景:
– 离线和在线的根据tag检索
– 实时和daily更新
– 海量更新
• 问题
– 迁移hive的job到storm 逻辑过于复杂
– Peak 更新ES跟不上(200k msg/s@peak)
– 投入不足
19:50:05 12
Experimental Platform
• Good vision
– 统一AB测试框架和报表
– 灵活的多维度支持,各种分流方法
– 大公司都是这么干的
• Problem:
– Too complex design
– Not necessary requirement at this moment
– Too Heavy
– 每个模块都想自己控制跑的更快
• Result
– 只是根据Cookie/MID 随机分流
– 各个AB场景自己做AB测试
19:50:05 13
Pain Points
• 开发环境和生产环境的隔离
• 数据安全/开发者权限
• 数据质量
19:50:05 14
实时计算平台的建设
• 架构和组件
– Flume/Binlog
– Kafka
– storm/spark/Impala
– Redis
– Hbase
19:50:05 15
Yarn ?
• 真正价值?
• 离线计算 vs RealTime 计算共享集群?
19:50:05 16
RealTime
• How realtime is realtime?
• Storm vs Impala vs Spark
– Min data, impala to replace storm
– Min data, spark to replace storm(complexity/cost)
*storm mini-batch 未使用
19:50:05 17
Redis
• Storm计算用redis保存中间和结果数据
– 流量一直增加
– 大促流量狂涨
– 计算复杂度一直增加
– 不停拆分。。。
– 每次改代码
• 怎么办?
– 逐个模块拆分
– 一开始就按模块写不同instance
– 一开始就Shard
– Twemproxy
– 优化数据结构
– 不求100%准确hll log
19:50:05 18
Binlog
• Value:
– 除了日志数据之外的重要数据来源, Source of truth
• Approach:
– Binlog2kafka
– Mysql2kafka
• Consumers
– FDS
– User Profile Builder
– Cache update
– Search index/Stock API update
• Management Console/Dictionary(WIP)
*Reference databus@linkedin
19:50:05 19
应用实践
• 业务应用
– 运营分析
– 帮助公司买
– 帮助公司卖
• 技术开发和运营
– Telescope 业务监控
– Logview 服务监控
– Application logging
– CDN日志分析
– Site speed分析
– 安全审计分析
19:50:05 20
19:50:05 21
应用于唯品会
全面客户关系管理
大数据对于技术运营
19:50:05 22
实时业务监控
7
 现有平台
访问地址:xxxx.vipshop.com
商品展示
登录注册
订单信息
代金券信息
支付模块
商品展示
购物车
登录注册
订单信息
代金券信息
支付模块
FDS
探索号
CDN
Nginx域
B2C 移动端
用户增加数
移动端下单数
整体下单数
订单总金额
购物车增加数
购物车内货品
数量
业务集合
域流量集合
登录热力地图
注册热力地图
订单热力地图
购物车访问热
力地图
日志数据 WTW HeatMap 大屏幕
19:50:05 23
实时页面加载时间监控
19:50:05 24
实时PV分布监控
19:50:05 25
全网Pool健康度(logview)
19:50:05 26
• 进去可以看到每个pool,每个服务器,每个url的请求次数,响应时间,错误率,在过
去两周的各个维度的统计数据和曲线;
• 可以看到pool之间的互相调用关系;
• 全无入侵,应用上线即插即用;(比如图片的服务质量)
现在在开发下一版本的logview ,发现应用之间的调用关系和调用连,以及和db/Cache 之间
的调用数据;
短期改版
19:50:05 27
商业CDN质量分析
19:50:05 28
大数据在网站个性化
19:50:05 29
总体个性化成果
19:50:05 30
PC端
– 推荐:
• 10%~12% PC销售占比
– 首页个性化排序
• ~4%销售金额提升
移动端
– 首页个性化排序
• ~4%销售金额提升
– 列表页排序优化
• ~8%销售金额提升
Infrastructure
19:50:05 31
• Platform :
– Hadoop platform
– 实时计算平台
– Experiment platform
– 运营后台(Debug平台)
– ML platform
– Large Redis Cluster
– DashBoard
• Data & API
– User profile
– Item Profile
– Brand Profile
PC用户 移动用户
Adapter Adapter
算法模
型1
算法模
型2
算法模
型3
算法模
型4
stockd bmsd
Flume-
>kafka
Binlog-
>kafka
Storm/C++
Profile redis
Item redis
Training Data
Business Rule
EP
Debug Platform
hadoop
19:50:05 32
系统架构
底层数据
19:50:05 33
品牌
– 历史和实时销售数据
– 价格,品类,颜色尺码风格,季节
– 品牌相似性
商品
– 商品profile的长期开发
– 历史和实时商品信息(库存,销售,转化)
用户
– 用户点击浏览,购物车,购买,收藏行为
– 按品类,风格,价位,性别,尺码
– 用户实时行为路径
我们走过的路
19:50:05 34
• 2013Q4-2014Q1:基于人群分组和人工排序的个性化
运营尝试
– 人群划分
– 首页人工排序
– 列表页人工规则自动排序
– 无效果。。。
• 2014Q2:开始有机会在小流量新版首页尝试技术主导
– 机器学习+业务规则
– 首页动态生成个性化推荐模块
– 首页动态生成个性化排序页面
– 提高了首页到列表页转化率,降低了跳出率,提高了
销售
我们走过的路
19:50:05 35
• 2014 Q3-Now: 首页和列表页的个性化排序
– 机器学习train model
– Hadoop 生成 user profile/brand profile
– Storm 计算实时转化销售数据,用户实时行为和意
图
– 实时排序首页和列表页
• 下一步
– 更多引入个性化因子(feature)
– 细化user/brand profile ,更多数据
– 引入更多其他算法,做到算法可以灵活替代
– 不但个性化排序和推荐,还可以有更多
一些想法
19:50:05 36
产品方向决定项目成败
– 方向都错了,还怎么成功?
– 所以技术都希望可以把控产品
– 责权结合,不能有责无权
– 快速迭代,小流量测试
– 在小流程小流量出来一些不错的数据之后,才有机会在主流程上面尝试
技术要和产品和业务在一起紧密协作:
– 业务有什么痛点,技术有什么手段可以解决这些痛点
– 和业务的沟通不够,产品部门自己也没概念,应该怎么做推荐和个性化
– 模块丢给你,就是你的事情了,那就是技术自己玩了
BI/DW不分家
– 总会提出无穷多的需要,
– 容易互相complain和竞争
基础要扎实,但是要短时间出成就
– DW层,到现在还没有全部统一到同样底层数据
– 离线Dataplatform,5年不用做大的重构
– 实时计算一直会快速演进
一些小结
19:50:05 37
• 技术选型:
– 业界标准best practice
– 成熟技术: 技术本身的成熟度,和我们队这个技术的把控力
– reference customer/implementation
– 用最合适的技术,而不是最先进的技术
• Don’t reinvent the wheel
 框架
 算法
• 基础架构/数据很重要
– 模块化
– 通用化
• Things Change
半年前不用,可能现在用;
Spark,Hbase
Q&A

More Related Content

PDF
X program-within-a-month
PDF
No sql@vip new
PDF
自助工具助Dba提升效率
PPTX
大型电商的数据服务的要点和难点
PPTX
数据架构方面的一些探讨
PPTX
中大型规模的网站架构运维 Saac
PPTX
Mesos-based Data Infrastructure @ Douban
PDF
艺龙旅行网架构案例分享-Qcon2011
X program-within-a-month
No sql@vip new
自助工具助Dba提升效率
大型电商的数据服务的要点和难点
数据架构方面的一些探讨
中大型规模的网站架构运维 Saac
Mesos-based Data Infrastructure @ Douban
艺龙旅行网架构案例分享-Qcon2011

What's hot (20)

PPTX
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
PDF
豆瓣数据架构实践
PDF
Big Data Taiwan 2014 Track1-3: Big Data, Big Challenge — Splunk 幫你解決 Big Data...
PDF
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
PDF
2016-07-12 Introduction to Big Data Platform Security
PPTX
阿里自研数据库 Ocean base实践
PDF
Hadoop大数据实践经验
PDF
翟艳堂:腾讯大规模Hadoop集群实践
PPTX
大數據
PDF
Introduction to K8S Big Data SIG
PDF
罗李:构建一个跨机房的Hadoop集群
PDF
Bigdata introduction
PDF
Big Data Projet Management the Body of Knowledge (BDPMBOK)
PPTX
Feed服务架构-新浪微博新员工培训议题
PPTX
淘宝Hadoop数据分析实践
PDF
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731
PDF
Life of Big Data Technologies
PDF
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
PPTX
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
PDF
新浪微博Feed服务架构
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
豆瓣数据架构实践
Big Data Taiwan 2014 Track1-3: Big Data, Big Challenge — Splunk 幫你解決 Big Data...
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
2016-07-12 Introduction to Big Data Platform Security
阿里自研数据库 Ocean base实践
Hadoop大数据实践经验
翟艳堂:腾讯大规模Hadoop集群实践
大數據
Introduction to K8S Big Data SIG
罗李:构建一个跨机房的Hadoop集群
Bigdata introduction
Big Data Projet Management the Body of Knowledge (BDPMBOK)
Feed服务架构-新浪微博新员工培训议题
淘宝Hadoop数据分析实践
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731
Life of Big Data Technologies
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
新浪微博Feed服务架构
Ad

Viewers also liked (11)

PDF
可靠分布式系统基础 Paxos的直观解释
PDF
Cephfs架构解读和测试分析
PDF
GLOA:A New Job Scheduling Algorithm for Grid Computing
PPTX
電子商務資料分析 上課投影片
PPTX
(Slides) Task scheduling algorithm for multicore processor system for minimiz...
PDF
淺談系統監控與 AWS CloudWatch 的應用
PPTX
Introduction to YARN and MapReduce 2
PPTX
The Impala Cookbook
PDF
Hadoop, the Apple of Our Eyes (這些年,我們一起追的 Hadoop)
PDF
Micro service
PDF
Track B-3 解構大數據架構 - 大數據系統的伺服器與網路資源規劃
可靠分布式系统基础 Paxos的直观解释
Cephfs架构解读和测试分析
GLOA:A New Job Scheduling Algorithm for Grid Computing
電子商務資料分析 上課投影片
(Slides) Task scheduling algorithm for multicore processor system for minimiz...
淺談系統監控與 AWS CloudWatch 的應用
Introduction to YARN and MapReduce 2
The Impala Cookbook
Hadoop, the Apple of Our Eyes (這些年,我們一起追的 Hadoop)
Micro service
Track B-3 解構大數據架構 - 大數據系統的伺服器與網路資源規劃
Ad

Similar to 唯品会大数据实践 Sacc pub (20)

PPT
Java@taobao
PPTX
05 杨志丰
PPT
淘宝网架构变迁和挑战(Oracle架构师日)
PPT
自下而上的数据仓库构建方法
PDF
基于 MySQL 的B2C电商系统前端数据层架构
PDF
链家网大数据平台枢纽——工具链,吕毅
PDF
Greenplum技术
PPTX
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
PPT
Infoship业务集成平台简介
PDF
09 赵昆
PPT
数据采集中间件技术交流
PDF
Top100summit 当当网打造个性化推荐 精准营销生态系统傅强
PDF
企业系统商务智能设计
PPT
大规模网站架构
PPTX
罗旭祥 基于数据挖掘的产品设计
PDF
Dtcc ibm big data platform 2012-final_cn
PDF
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
PPTX
淘宝双11双12案例分享
PPTX
Ocean base 千亿级海量数据库-日照
PDF
Zh120226techparty velocity2011-review
Java@taobao
05 杨志丰
淘宝网架构变迁和挑战(Oracle架构师日)
自下而上的数据仓库构建方法
基于 MySQL 的B2C电商系统前端数据层架构
链家网大数据平台枢纽——工具链,吕毅
Greenplum技术
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
Infoship业务集成平台简介
09 赵昆
数据采集中间件技术交流
Top100summit 当当网打造个性化推荐 精准营销生态系统傅强
企业系统商务智能设计
大规模网站架构
罗旭祥 基于数据挖掘的产品设计
Dtcc ibm big data platform 2012-final_cn
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
淘宝双11双12案例分享
Ocean base 千亿级海量数据库-日照
Zh120226techparty velocity2011-review

唯品会大数据实践 Sacc pub