2016美国QCon思考:通过Quora和Spotify案例,直击数据处理背后的魅影

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 通过Quora和Spotify的例子和大家一窥大数据的魅影,当然这两家数据量也都还算“可以”,不大不小,面临的问题也各不相同,但解决之道却是相通的,当我们手中有那么多演化缭乱的工具的时候,思考反而成了一种稀缺的能力

编者按:大数据的题目看起来好写,因为大家似乎都懂,但是其实也难写,因为太大了,没有具体的问题很难写出有营养的东西,所以今天选取两个QCon比较典型的例子来管中一窥大数据的魅影。

    有的同学很困惑米国人不看知乎怎么知道那么多知识呢?米国人当然看Quora啦,Quora是一个问答社交软件,问答社交的特点就是有各种各样的计数器,比如帖子的支持、反对、评论数量,用户的关注、粉丝数量等等,随着用户量的增加、帖子的增多、以及带来的互动的增长,Quora处理的数据也是爆炸式增长。Quora从第一天开始就长在云上(AWS),生产环境使用MySQL和HBase做存储,使用RefShift和Spark用来做数据分析,在这些组件的基础上Quora做了一个数据服务叫Quanta,Quanta的设计约束是:

A:数据更新之后不能丢失,要求持久化到disk

B:有billion级别的counter,单机放不下,所以需要分布式集群

C:每秒写>10W次,每秒读>100W次,只能用追加写

D:读写都要很快

E:资源和负载能够线性扩展,而且能够扩展到目前负载的50倍

F:成本越低越好

 

Quora还有很多基于时间序列数据计算,比如:

A:过去T时间内发生了什么,基于滑动窗口

B:过去Y时间内每隔X该事件发生了多少次,需要访问历史存储数据

C:X和Y可以是任意的

 

还有比较复杂的计算是关系图引入的多层聚合,如:

f50eafb985b9b514b566491b654a038868c93fff

对于图有两种计算方式,一种是lazy update,只更新单个节点,关联节点在有读操作发生时再触发,一种是eager update,每次update都触发整个关联图的更新,Quora最终采用的是eager update,理由是:每次读的时候都去做一次更新会加大延迟,不可接受;更新即使慢也没关系,因为是异步的;图更新比起读操作还是极少的。当然有向无环图DAG有多种形状,有线性的、菱形的,每种图上的counter更新算法也略有不同,不再赘述。

 

    整个Quora的架构大概是这样子的:

a73a883916800fd1ee0d3e931ba52a4807e30287

    客户端写日志到一个journal系统,数据处理Processor从journal系统不停pull数据然后分别更新图和counter存储服务,客户端从counter服务读数据,写操作是追加数据到journal服务,update操作是以thrift message的形式来封装的,所以可以支持各种各样的client;Processor是stateless的异步服务,可以批量读取数据并做处理;counter存储服务用的是HBase,理由是每个计数都可以利用column family字段来保存若干个时间窗口的数据,比如一天的、一周的等等,而且schema还可以随时改变,当设置TTL的时候数据还可以自动过期,吞吐量也足够大;图服务用的也是HBase,每一个row就是图的一个edge,column family存储的是入边和出边,而且通过设置bloom filter还可以实现negative查询,这些模型都比较适合图运算。

    目前存在的问题是当Processor处理update数据的时候可能会存在两个job处理同一个图的不同vertex的问题,Quora对这个问题的解法也比较巧妙,就是通过简单的算法将整个连通图隔离出来,这个子图中的所有节点都只会在一个job中去运算,这样就解决了冲突的问题。

    总结下来Quora将数据做了很好的model,主要分为两大类,有计数的、有图的,然后对两类数据分治处理,尤其是在处理图数据的时候通过将图分割来解除依赖,所以不需要加锁,极大提升了并行度;对系统也做了很好的设计,比如写和更新解耦、更新可弹性伸缩、存储采用HBase更为灵活,当然前提是要对业务有深度思考并对约束有清晰的判断。

 

    接下来的案例是Spotify,Spotify的问题是成长太快,在流量和用户快速增长的时候,系统服务依赖也成指数级别增长,由于整个架构缺乏体系的思考和设计,所以在服务多了之后就出了一系列的问题,如隔三差五的小故障、Hadoop挂掉、数据重复处理、很多数据流水线上的bug无法追查等等,针对这些问题,Spotify做了一系列的改造。

    首先是先暴露问题,做早期报警,然后做了一个有领域编程语言支持的监控工具Datamon,Datamon不仅仅做报警,更重要的是对数据的所有权进行了划分,这是一个比较大的进步,报警大家都会做,但是把报警发给谁是一个更有挑战的问题;针对调度和计算不好debug的问题做了一套叫Styx的服务,Styx的每一个job都用docker来做隔离,也暴露了更多的debug信息出来,易用性上也比之前有很大提升,具体实现细节没有多讲;最后一步为了实现弹性扩缩容利用Kubernetes做了一套系统叫GABO,不再赘述。

    从Spotify这个例子可以看出如果一个架构师或者CTO没有从体系上和整体架构上去思考问题,业务发展越快跪得越快,给飞机换轮子听着很英勇但是能避免的还是尽量提前避免。

    通过上面这两个例子我们也能看出无论目前有了什么样的工具、多么牛逼的产品,定义问题、提炼需求、确定问题边界反而比直接去写代码更有价值,这才是我们的核心竞争力,这些技能也就是我们平时所倡导的调研和思考,用在思考上的时间多了用在擦屁股上的时间也就少了,与君共勉。

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1月前
|
存储 分布式计算 大数据
惊了!大数据时代来袭,传统数据处理OUT了?创新应用让你眼界大开,看完这篇秒变专家!
【8月更文挑战第6天】在数据爆炸的时代,高效利用大数据成为关键挑战与机遇。传统数据处理手段难以胜任现今海量数据的需求。新兴的大数据技术,如HDFS、NoSQL及MapReduce、Spark等框架,为大规模数据存储与处理提供了高效解决方案。例如,Spark能通过分布式计算极大提升处理速度。这些技术不仅革新了数据处理方式,还在金融、电商等领域催生了风险识别、市场预测及个性化推荐等创新应用。
65 1
|
2月前
|
数据采集 人工智能 数据可视化
“会数据同学”首站走进雅戈尔,看老牌男装品牌如何用“数据+AI”华丽转身
“会数据同学”首站走进雅戈尔,看老牌男装品牌如何用“数据+AI”华丽转身
|
4月前
|
人工智能 自然语言处理 计算机视觉
TikTok引入前谷歌VideoPoet负责人蒋路,发力AI视频生成
【2月更文挑战第3天】TikTok引入前谷歌VideoPoet负责人蒋路,发力AI视频生成
71 1
TikTok引入前谷歌VideoPoet负责人蒋路,发力AI视频生成
|
人工智能 Cloud Native 安全
「开源人说」|大咖齐聚首,大数据&AI开源话题对碰
「开源人说」第四期——大数据& AI专场在今年云栖大会举办,阿里巴巴开源委员会大数据AI领域副主席王峰和阿里云AI开源项目EasyRec负责人施兴现场分享热门开源项目背后的故事。开源中国创始人&CTO红薯,白鲸开源联合创始人代立冬,浙大博导赵俊博,InfoQ总编辑王一鹏、Apache软件基金会成员李钰等嘉宾圆桌共话,对开源热点及痛点问题展开激烈讨论。
138865 5
「开源人说」|大咖齐聚首,大数据&AI开源话题对碰
|
机器学习/深度学习 人工智能 Rust
2021 年 Rust 生态版图调研报告 | 星辰大海(下篇)
2021 年 Rust 生态版图调研报告 | 星辰大海(下篇)
891 0
|
人工智能 开发者 知识图谱
独家下载!认知智能大咖观点最新出炉!带你揭秘强大技术背后的影响力!
我们正处在认知智能起步的阶段,还有很多未知的因素,也不知道未来往哪走,但是有一条,无非是要么从知识,要么图谱、要么融合,但是可以肯定地说前景是无限的。这里有很多的机会,把我们的认知智能,搜索、回答问题、推理这些东西用在工业界的很多场景里,认知智能技术蕴藏着巨大的前景。——周明 创新工场首席科学家、中国计算机学会副理事长
15462 2
独家下载!认知智能大咖观点最新出炉!带你揭秘强大技术背后的影响力!
|
机器学习/深度学习 人工智能 自动驾驶
公开下载 | 让刷剧更带感!“划时代”文娱体验背后有何技术较量?
AI弹幕、VR技术、5G超清......这在十年前可能都只是停留在人们想象中的文娱新体验,如今已经普及开来。如何让刷剧更“带感”?阿里巴巴文娱有答案!刷剧前下载,刷剧后阅读,8位阿里技术专家为你详解那些你不知道的智慧文娱关键技术!
18125 0
公开下载 | 让刷剧更带感!“划时代”文娱体验背后有何技术较量?
|
新零售 中间件 数据库
《麻省理工科技评论》是如何评价阿里云中间件技术的?
《MIT Technology Review》如何评价阿里云中间件技术?
11799 5
|
人工智能 算法 大数据
攀钢集团,钢铁是怎样用AI炼成的
未来,钢铁企业的核心竞争力不在拥有多少产能或是固定资产,而是在于掌握了多少行代码与核心算法。同时,大量能够真正解决业务痛点的工业SaaS与工业APP将有效激活钢铁工业互联网平台的流量与活跃度。围绕工业智能应用开发将形成一个包括数据开发商、软件开发商、算法开发商在内的工业大脑生态,驱动平台真正成为一个知识共享、知识共创与知识交易的钢铁行业的“淘宝”。
7387 0
|
新零售 人工智能 关系型数据库
4月10日云栖精选夜读:阿里巴巴高杰:3年风雨路,阿里巴巴自然语音交互的探索与经验教训
随着语音交互、自然语言处理、多模态等技术的发展,人机交互方式已经变得越来越简单,目前人机交互已经成为行业最热的研究方向之一。那么,未来人机交互的发展趋势什么呢?阿里巴巴智能语音交互专家高杰在《云栖大讲堂第三期|未来人机交互技术沙龙》上为大家分享了在阿里巴巴智能个人助理构建过程中所积累的经验和教训。
3015 0