HBase在腾讯大数据的应用实践

前言随着腾讯产品与技术的发展,几乎任何一个与用户相关的在线业务的数据量都在亿级别,每日系统调用次数从亿到百亿,对海量数据的高效插入和快速读取变得越来越重要。而传统关系型数据库模式固定、强调参照完整性、数据的逻辑与物理形式相对独立等,比较适用于中小规模的数据,但对于数据的规模和并发读写方面进行大规模扩展时,RDBMS性能会大大降低,分布式更为困难。

为什么会选择HBase?

高可靠性。HBase是运行在Hadoop上的NoSQL数据库,它的数据由HDFS做了数据冗余,具有高可靠性。同时TDW(腾讯分布式数据仓库)五年的稳定运行,8800台的集群规模,证明了其服务于海量数据的能力。高并发读写。使用日志文件(HLOG)和内存存储来将随机写转换成顺序写,保证稳定的数据插入速率;读写独立,这两种操作没有冲突。优雅的伸缩性。HBase服务能力可以随服务器的增长而线性增长;HBase中表的数据表按Key 值范围自动分片,散布于不同的机器上,实现自动负载均衡;支持百亿行×百万列×上万个版本。低延迟。数据按列存储,数据即索引。低成本。历史数据不能轻易删除,数据量变得越来越多,尤其是对于日志类存储,写多读少。而HBase可构建在廉价的PC上,此外,HBase支持较多的压缩算法。本篇文章将对HBase在腾讯大数据的应用情况做一个介绍。HBase易用性建设

数据接入-方便、灵活

接入前台化、可配置化。只需在前台配置入库任务,按配置约定规范上报数据,即可实现将数据入库HBase,方便、简洁、快速。与腾讯大数据的各平台(TDBank、TDW、TRC)打通,数据流转方便。接入方式多样灵活。业务也可根据HBase提供的API自己编写代码,实现数据写入HBase。在写入量较大的情况下,业务侧还需要维护一批写入客户端,维护成本较高。一般不推荐使用这种方式。

数据查询-接口简单、易用

避免用户重复编码、方便业务查询HBase中的数据,我们封装并提供了两种查询接口:HTTP查询接口和TCP查询接口。同时支持点查询和范围查询两种查询方式。

HTTP查询接口:

通过发送HTTP POST请求方式查询数据。适用于轻量查询需求,例如客服业务受理查询,客户只要开发一个自己的界面就可以使用。返回的数据格式支持json、xml、text、idip(游戏业务定制的数据格式)四种。

TCP查询接口:通过发送TCP请求建立长连接来查询数据。适用于大并发查询需求,例如营销活动、用户画像类数据查询需求等。返回的数据格式只提供protobuf格式。安全建设权限控制。每个接入业务均分配一个用户ID、IP白名单机制,只有在开通了白名单的服务器上,使用用户ID才可以访问归属业务的HBase表,当多个业务共用一个HBase的情况下,权限控制尤其必要。针对敏感数据(如用户画像数据),权限进一步控制到列级别。即只有在开通了白名单的服务器上,使用用户ID才可以访问开通了权限的HBase表中的某些列。流量控制。控制单笔查询的数据量大小以及查询返回行数限制,同时监控大查询。在多个小业务公用一个HBase情况,可有效控制非必要场景下大量get数据业务间查询相互影响的问题。

业务应用情况

1. 游戏营销活动新渠道

数据的实时性对于营销活动的效果有着十分明显的影响,由于数据延迟而带来的不良用户体验会导致玩家丧失继续参与活动的耐心从而使活动效果大打折扣。HBase在近几次营销活动(如炫舞拉新活动、天天酷跑新版预热活动、英雄联盟3周年活动、天天酷跑周年活动、英雄联盟拉新活动)中,从几十亿甚至百亿条数据中实时拉取数据的毫秒级响应,成为营销活动的一个新渠道。

2. 广告日志处理

广告成为互联网公司的一个主要收入来源。我们现在每天通过HBase处理百亿级广告的请求和曝光日志,访问HBase的延迟,80%在20ms之内,保证了数据的秒级实时回流,实现检索、曝光、点击和效果日志百亿数据的实时关联,提供完整丰富的用户特征数据。精细的特征数据会带来更好的模型,产生更好的广告效果,进而提升广告收入。

3. 业务受理查询

业务受理系统受限于MySQL数据库容量与性能,仅能查询最近一段时间的日志,使游戏在核实客户投诉上较为被动。游戏业务受理系统由MySQL迁移到HBase后,用业务的评价来总结下MySQL迁移HBase的效果:“业务受理对客服的查询需求服务提升了一个档次”。

4. 此外,HBase在其他点击交互日志或监控日志系统上也有较多应用,如网络会话数据、秒级监控平台日志、微信支付日志等。结束语随着业务的发展以及HBase在腾讯的较多的成功应用案例与推广,HBase的应用还将继续增多以及向核心应用靠近的趋势。总的来说,我们的目标,降低接入使用门槛以及使用成本,使HBase能稳定地部署到更多的应用中去, 以助力业务更快发展。关于我们在HBase上做的一些改进与优化,敬请期待后续文章。

原文发布于微信公众号 - 腾讯大数据(tencentbigdata)

原文发表时间:2015-06-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术翻译

如何构建可扩展的应用程序

所以你有一个很棒的主意。而且你有来自大学的朋友可以帮助你开始构建你的应用程序。您也可以从早期采用者那里获得很好的反馈。所以你做任何人都会做的事。启动你的应用!

1532
来自专栏腾讯云技术沙龙

简单5步,从0开始搭建你的第一款小程序

以小程序开发实战为基准点,围绕小程序云上解决方案,serverless后端架构,小游戏底层设计和直播、电商小程序的开发实战五大主题内容。

10.5K71
来自专栏知晓程序

「大众点评点餐」小程序开发经验 07:发布与推广

李超,美团点评前端开发工程,2 年工作经验,主要负责「点评点餐」web 版、「点评点餐」微信小程序开发。

1133
来自专栏北京马哥教育

十分钟看懂时序数据库(I)-存储

2017年时序数据库忽然火了起来。开年2月Facebook开源了beringei时序数据库;到了4月基于PostgreSQL打造的时序数据库TimeScaleD...

51211
来自专栏FreeBuf

2016 黑客必备的Android应用都有哪些?

免责声明:本人所发布的此份清单仅供学习之用。我们不支持读者利用其中的任何工具进行任何不道德的恶意攻击行为。 ? 根据业界的一系列评测以及亲身经验,我们整理出了...

2098
来自专栏云计算D1net

如何应对混合云网络的复杂性?

在经过一番艰苦努力的之后,我最终调试解决了一个非常棘手的混合云网络问题。 虚拟私有云(VPC)提供了一个包含免费虚拟机(VM)使用时间的培训项目,学生可以跟随一...

3566
来自专栏PPV课数据科学社区

HBase在腾讯大数据的应用实践

前言 随着腾讯产品与技术的发展,几乎任何一个与用户相关的在线业务的数据量都在亿级别,每日系统调用次数从亿到百亿,对海量数据的高效插入和快速读取变得越来越重要。而...

39210
来自专栏大数据文摘

讲给普通人听的分布式数据存储

2479
来自专栏Linyb极客之路

初识分布式架构

集群 小饭店原来只有一个厨师,切菜洗菜备料炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,这两个厨师的关系是集群。

1021
来自专栏罗超频道

Chrome支持Android应用,浏览器正在成为操作系统?

Google 日前已决定将ARC开放给所有开发者,并且ARC在Chrome OS和Chrome浏览器中均可以运行。ARC全称是App Runtime for C...

3244

扫码关注云+社区