web-scale OLAP系统应用解决方案

标签: 个性化推荐与搜索 | 发表时间:2012-09-17 15:15 | 作者:bicloud
出处:http://blog.sina.com.cn/bicloud

Avatara: OLAP for Webscale Analytics Products

OLAP:在线分析处理

OLAP is a well-suited solution for mining and analyzing this data. Providing insights derived from this analysis has become crucial for these websites to give members greater value.

为了支持linkedin在线应用“Who’s Viewed My Profile?” 和 “Who’s Viewed This Job?”等等。 构建OLAP 一个可伸缩和快速的serving system called Avatara to solve this many, small cubes problem。

      目前已有的解决方案存在一些问题,这些企业级解决方案支持离线分析和传统的数据仓库,不能有效的支持高吞吐,低延时和高可用性需求的访问量大的网站。在这些用例中,查询是预先设计好的,因为产品接口对用户进行限制,选择已经知道的查询的子集。这样,一些复杂的操作,譬如join,可以预先计算好。Additionally, queries span relatively few—usually tens to at most a hundred—dimensions. These queries, and consequently, the cubes, can be sharded across a primary dimension

OLAP系统模式会 影响系统的可用性。假设,一个拥有100个结点的集群,每30天每台机器可能会失败10分钟,那么系统的可用性是:(1 − MTTR/MTTF) n   ,其中MTTR表示系统恢复的平均时间,MTTF表示系统失败的平均时间,n表示满足查询所需要的结点数。在我们的例子中,一个查询的可用性为:(1 − 10/(30 · 24 · 60)) 100 = 0.977115,这个看起来是个可用性足够的系统;但是,假设一个用户每天访问页面某个产品3次查看状态信息,那么一年大约会看到25次“not available”错误,每个月可能会发现两个错误,这不是一个好的用户体验。如果查询可以在一个shard中进行cube操作,这样查询就可以在从一个单独的磁盘获取。这样,系统可用性为:1−10/(30·24·60) = 0.999768 ,那么一年大约会看到0.25次“not available”错误,这个可以满足实际需求。There are several assumptions and simplifications here, but this need forms the basis for highly-available key-value systems, such as Amazon’s Dynamo,采用KV存储。

Avatara, a fast, scalable OLAP system to handle the many, small cubes scenario we encounter with our various analytics features. 离线计算通过hadoop实现,kv存储使用voldemort。

             








 

系统架构:

 

 

Avatara主要有两个组件构成:离线批处理引擎和在线查询引擎。离线批处理引擎执行用户根据行为流数据,定义的join运算和聚合运算,生成cube。离线计算主要通过hadoop处理,结果存储在kv数据中。客户端用过类似sql语句执行在线查询计算,从kv存储中获取数据。

The system uses a hybrid offline/online strategy coupled with sharding into a keyvalue store by an application-specified primary dimension to support  OLAP queries at web scale.

 

Query latency CDF for a high-traffic day. 95% of queries can be served within 25 ms

总结:一些访问量大的网站,某些数据产品,可以借鉴这个模式实现。类似于linkedin的Who’s Viewed My Profile?, Who’s Viewed This Job? ,“Jobs You May Be Interested In”WVTJ shows the number of job views broken down by time, title, and company. OLAP is an ideal solution to handle these tasks.  这些任务通过cube配置文件和简单的sql就可以实现。

 

参考文献:Avatara: OLAP for Webscale Analytics Products


  青春就应该这样绽放   游戏测试:三国时期谁是你最好的兄弟!!   你不得不信的星座秘密

相关 [web scale olap] 推荐:

web-scale OLAP系统应用解决方案

- - 冰火岛
为了支持linkedin在线应用“Who’s Viewed My Profile?” 和 “Who’s Viewed This Job?”等等. 构建OLAP 一个可伸缩和快速的serving system called Avatara to solve this many, small cubes problem.

多维分析OLAP引擎Mondrian学习

- - Web前端 - ITeye博客
随着信息技术的飞速发展,在电力、电信、金融、大型制造等各个行业ERP、CRM、SCM、OA等越来越多的IT系统得以成功实施,这些分散建设的IT系统为各部门的运营效率提升发挥了很大的作用. 同时,为了满足业务管理和决策的报表系统(包括传统报表、数据仓库、OLAP等)也被创建出来,企业主管通过报表了解企业的总体运行状态.

Startup 需不需要一開始就注意 Scale 的問題?

- Ben - Blog.XDite.net
在 Inside 的 Facebook 看到這個他們的論壇上有這個問題,看了一下回覆,覺得算蠻有趣的議題. 剛剛朋友問我看法,簡單聊了一下,後來乾脆決定來這裡寫下我的想法. 還有,開始寫 projects 時,請將你的「注意 Scale」這個問題定義清楚. 在這個議題中,我覺得最容易混淆的點是:將 "Scalability" (擴充性)與 "Maintainability" (維護性)混在一起講.

Kylin:基于Hadoop的开源数据仓库OLAP分析引擎

- - 标点符
Kylin是一个开源、分布式的OLAP分析引擎,它由eBay公司开发,并且基于Hadoop提供了SQL接口和OLAP接口,能够支持TB到PB级别的数据量. OLAP即联机分析处理,它能够帮助分析人员、管理人员或执行人员从多角度快速、一致、交互地存取信息和更加深入的了解信息. OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求.

MySQL与OLAP:分析型SQL查询最佳实践探索

- - Web前端 - ITeye博客
搞点多维分析,糙快猛的解决方案就是使用ROLAP(关系型OLAP)了. 数据经维度建模后存储在MySQL,ROLAP引擎(比如开源的Mondrian)负责将OLAP请求转化为SQL语句提交给数据库. OLAP计算分析功能导致MySQL需要进行较多复杂SQL查询,性能调优必不可少,本文总结了一些实用原则.

唯品会海量实时OLAP分析技术升级之路

- - 运维派
本文根据谢麟炯老师在〖DAMS 2017中国数据资产管理峰会〗现场演讲内容整理而成. 谢麟炯,唯品会大数据平台高级技术架构经理,主要负责大数据自助多维分析平台,离线数据开发平台及分析引擎团队的开发和管理工作,加入唯品会以来还曾负责流量基础数据的采集和数据仓库建设以及移动流量分析等数据产品的工作. 海量数据实时OLAP场景的困境.

一个案例教包含优化OLAP超大型SQL的常用方法

- - CSDN博客推荐文章
环境: EXADATA V2 , 版本 11.2.0.2.0. 我的PM抱怨对我说,APEX上面有个SQL 要跑很久,最开始它跑3-5分钟,过了段时间,随着业务的变换,数据的增长,它要跑20分钟,随着数据的不断增长到现在它要跑1小时. PM说,这个SQL执行非常频繁,这里你想到了什么呢. 因为是11g,我们可以利用result cache去优化它,但是即使用了result cache,我们依然要面对一个事实--------第一次执行的时候它很慢,所以这个SQL必须优化.

一种可以避免数据迁移的分库分表scale-out扩容方式

- LightingMan - 淘宝JAVA中间件团队博客
一种可以避免数据迁移的分库分表scale-out扩容方式. 目前绝大多数应用采取的两种分库分表规则. dayofweek系列日期方式(所有星期1的数据在一个库/表,或所有?月份的数据在一个库表). 这两种方式有个本质的特点,就是离散性加周期性. 例如以一个表的主键对3取余数的方式分库或分表:. 那么随着数据量的增大,每个表或库的数据量都是各自增长.

分布式大数据多维分析(OLAP)引擎:Apache Kylin 在百度地图的实践

- - leejun2005的个人页面
百度地图开放平台业务部数据智能组主要负责百度地图内部相关业务的大数据计算分析,处理日常百亿级规模数据,为不同业务提供单条SQL毫秒级响应的OLAP多维分析查询服务. 对于Apache Kylin在实际生产环境中的应用,在国内,百度地图数据智能组是最早的一批实践者之一. Apache Kylin在2014年11月开源,当时,我们团队正需要搭建一套完整的大数据OLAP分析计算平台,用来提供百亿行级数据单条SQL毫秒到秒级的多维分析查询服务,在技术选型过程中,我们参考了Apache Drill、Presto、Impala、Spark SQL、Apache Kylin等.

Web未死

- Sinan - GeekPark 捕风捉影
App的极限已经浮现,而Web则是突破此极限,推动下一个数字时代革命的起点. 距离美国《连线》杂志发表《Web已死,互联网永生》这篇文章还不到一年的时间,业界为Web平反的声音渐起. 2010年1月,苹果发布iPad,紧随其后在6月又发布了iPhone4. 没有人质疑过苹果的iTunes+App的商业模式,App可谓如日中天.