- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
100亿数据1万属性数据架构设计
100亿数据1万属性数据架构设计
于version + ext⽅案,还是有很多朋友质疑“线上不可能这么⽤” 。本篇将讲述⼀下58同
城 核⼼的数据“帖⼦”的架构实现技术细节,说明不仅不是“不可能这么⽤” ,⽽是⼤
数据,可变属性,⾼吞吐场景下的“常⽤⼿段” 。
⼀、背景描述及业务介绍
问:什么是数据库扩展的version + ext⽅ ?
使⽤ext来承载不同业务需求的个性化属性,使⽤version来标识ext⾥各个字段的含
义。
例如上述user表:
verion=0表⽰ext⾥是passwd/nick
version= 1表⽰ext⾥是passwd/nick/age/sex
优点?
(1)可以随时动态扩展属性,扩展性好
(2 )新旧两种数据可以同时存在,兼容性好
不⾜?
(1)ext⾥的字段⽆法建⽴索引
(2 )ext⾥的key值有⼤量冗余,建议key短⼀些
问:什么是58 同城最核⼼的数据?
58同城是⼀个信息平台,有很多垂直品类:招聘、房产、⼆⼿物品、⼆⼿车、黄页等
等,每个品类又有很多⼦品类,不管哪个品类, 核⼼的数据都是“帖⼦信息” (业务
像⼀个⼤论坛?)。
问:帖⼦信息有什么特点?
⼤家去58同城的⾸页上看看就知道了:
(1)每个品类的属性千差万别,招聘帖⼦和⼆⼿帖⼦属性完全不同,⼆⼿⼿机和⼆
⼿家电的属性又完全不同,⽬前恐怕有近万个属性
(2 )帖⼦量很⼤,100亿级别
(3 )每个属性上都有查询需求 (各组合属性上都可能有组合查询需求),招聘要查
职位/经验/薪酬范围,⼆⼿⼿机要查颜⾊/价格/型号,⼆⼿要查冰箱/洗⾐机/空调
(4 )查询量很⼤,每秒⼏10万级别
如何解决100亿数据量,1万属性,多属性组合查询,10万并发查询的技术难题,是今
天要讨论的内容。
⼆、最容易想到的⽅
每个公司的发展都是⼀个从⼩到⼤的过程,撇开并发量和数据量不谈,先看看
(1)如何实现属性扩展性需求
(2 )多属性组合查询需求
开始,可能只有⼀个招聘品类,那帖⼦表可能是这么设计的:
tie i(tid ,uid , c 1, c2, c3)
那如何满⾜各属性之间的组合查询需求呢?
容易想到的是通过组合索引:
index_ 1(c 1,c2) index_2(c2, c3) index_3(c 1, c3)
随着业务的发展,又新增了⼀个房产类别,新增了若⼲属性,新增了若⼲组合查询,
于是帖⼦表变成了:
tie i(tid ,uid , c 1, c2, c3, c 10 , c 11, c 12, c 13)
其中c 1,c2,c3是招聘类别属性,c 10 ,c 11,c 12,c 13是房产类别属性,这两块属性⼀般没有
组合查询需求
但为了满⾜房产类别的查询需求,又要建⽴了若⼲组合索引 (不敢想有多少个索引能
覆盖所有两属性查询,三属性查询)
是不是发现玩不下去了?
三、友商的玩法
新增属性是⼀种扩展⽅式,新增表也是⼀种⽅式,有友商是这么玩的,按照业务进⾏
垂直拆分:
tie i_ haopin(tid ,uid , c 1, c2, c3)
tie i_fangchan(tid ,uid , c 10 , c 11, c 12, c 13)
这些表,这些服务维护在不同的部门,不同的研发同学⼿⾥,看上去各业务线灵活性
强,这恰恰是悲剧的开始:
(1)tid如何规范?
(2 )属性如何规范?
(3 )按照uid来查询怎么办 (查询⾃⼰发布的所有帖⼦)?
(4 )按照时间来查询怎么办 ( 新发布的帖⼦)?
(5 )跨品类查询怎么办 (例如⾸页有哪些信誉好的足球投注网站框)?
(6 )技术范围的扩散,有的⽤mongo存储,有的⽤mysql存储,有的⾃研存储
(7 )重复开发了不少组件
(8 )维护成本过⾼
(9 )…
想想看,电商的商品表,不可能⼀个类⽬⼀个表的。
四、58 同城的玩法
【统⼀帖⼦中⼼服务】
平台型创业型公司,可能有多个品类,例如58同城的招聘房产⼆⼿,很多异构数据的
存储需求,到底是分还是合,⽆需纠结:基础数据基础服务的统⼀,⽆疑是58同城技
术路线发展roadmap上 正确的决策之⼀,把这个⽅针坚持下来,@⽼崔 @晓飞 这些
⾼瞻远瞩的先贤功不可没,业务线会有“扩展性”“灵活性”上的微词,后⽂看看先贤们
如何通过⼀些巧妙的技术⽅案来解决的。
如何将不同品类,异构的数据统⼀存储起来,采⽤的就是类似version+ext的⽅式
您可能关注的文档
最近下载
- 上海工程技术大学2020-2021学年度第1学期《概率论与数理统计》期末考试试卷(A卷)及参考答案.docx
- 大理石项目可行性研究报告(参考).docx
- 斜拉桥特大桥监理细则.pptx
- 短视频制作项目教程 课件全套 徐鉴 项目1--7 全面认识短视频 ---原创短视频制作.pptx
- 盆底重建术后护理查房.pptx VIP
- 1.医院社区卫生服务中心全员安全生产责任制(范本).pdf VIP
- 血液灌流采用甲磺酸萘莫司他的抗凝使用.docx VIP
- 原料物性表原料物性表.pdf VIP
- 1.社区卫生服务中心全员安全生产责任清单(完整版).pdf
- AWS_D10.10_管道焊接局部加热推荐规程.pdf VIP
文档评论(0)