大数据量业务 表实现的思考
最近闲(假)来(装)无(不)事(忙),不(周)用(末)带(娃)娃(奴),在夜阑人静之时总在考虑如何改进A系统的业务 表输出,最近也翻了好些相关书籍以作对比,故今天特刷篇 文当做读书笔记,同时用来记录对比过往的一些实现方式和对未来实现的一些想法,由于准(连)备(夜)充(赶)分(稿),如有出(纰)彩(漏)之处欢迎拍砖,在此万谢,哈哈!
- 数据的困扰
- Hive的引入
- Elasticsearch的引入
- 意淫的对象Apache Kylin
- Apache Kylin行业使用现状
- 未完待续
数据的困扰
A系统作为公式价格相关数据的载体,投入生产两年以来,积累了非常可观的历史数据,而如何分析和使用此些数据背后隐藏的宝藏便是源源不断的业务需求源泉,这也对A系统的分析 表提出了更高的技术需求。
A系统的数据2年以来累积了将近30亿数据左右,而为了更高效的管理和获取这些数据,从而提供亚毫秒级的极速响应,我们大量了采取了分库分表的策略。这种做法,针对A系统这种电商基础服务系统的而言无疑是合适的。然而却在业务数据分析时显得捉襟见肘了,尤其是那些需要多维度汇总统计的 表,此弱点尤为突出。
Hive的引入
由于A系统的数据存在大量的分库分表,做一些简单的查询时可以通过索引表的对付,但若涉及一些统计操作的需求时就无能为力了。因此得益于公司提供的大数据存储能力,我们将业务表的数据放到了大数据,然后引进Hive,通过Hive sql对其进行查询。
然而,Hive 查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,Hive 将用户的HiveQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上,Hadoop 监控作业执行过程,然后返回作业执行结果给用户。因此,Hive 并不适合那些需要低延迟的应用,Hive 并不能够在大规模数据集上实现低延迟快速的查询,例如,Hive 在几百MB 的数据集上执行查询一般有分钟级的时间延迟!
Elasticsearch的引入
Elasticsearch 是一个实时的分布式搜索分析引擎, 它能让你以一个之前从未有过的速度和规模,去探索你的数据。 它被用作全文检索、结构化搜索、分析以及这三个功能的组合 – 摘自ES官方文档
我们将数据实时的同步到了Elasticsearch,得益于Elasticsearch的强大功能,A系统的 表可以通过灵活的http接口实现对数据的检索。同时,Elasticsearch还提供了强大的聚合统计等功能,开发时非常实用方便。另外一个突出的有点就是,其响应非常迅速,相对于Hive分钟级的响应,Elasticsearch基本都是秒出。
然而,随着 表功能的深入开发,其自身设计和定位上的原因,使得Elasticsearch更适合做搜索相关的事情,而在呈现业务 表分析的某些事情上愈发显得有心无力,在这列举一二:
- 多分片下聚合数据的近似精确和不支持向后分页
这里可以通过 上的一个例子加以说明,参考文章:关于Elasticsearch里面聚合group的坑:
假设我们现在,我们有一份商品的索引数据,它有3个shard,每个shard的数据如下所示:
最后我们发现这个top5的结果,并不是100%精确的,只是一个近似精确的结果值:
- 数据立方
我们以B+树的结构建立了字段的索引,每个B+树结构的字段索引相当于一个数据平面,这样一个全局数据表与其多个重要字段的索引就组成了一个类似于立方体的数据组织结构,我们称之为“ [1] 数据立方(DataCube)”。 –摘自百度百科
- 为什么要引入Apache Kylin
其一“准”,相对于Elasticsearch的近似精准,ApacheKylin的新版本已经实现了精确去重计数,这是业务 表分析当中相当重要的一块。另外,多维度的存在,也为数据 表钻取等操作提供了大大的便利,查询效率更高。
其二“快”,Apache Kylin提供hadoop上超大数据规模( 百亿行级别的数据)的亚秒级SQL查询,相对于hive的离线分析的龟速,Apache Kylin可做到快速查询。
其三“全”,Apache Kylin提供了一整套组件,使用期管理后台可以简单快速的创建并提供查询服务;同时也提供了各种协议的查询接口。
-
Apache Kylin 接入步骤
应当说Apache Kylin的接入是相当的方便快捷,具体如下几步:
1 确定hadoop上一个星型模式的数据集。
2 构建数据立方体。
3 可通过ODBC, JDBC,RESTful API等接口在亚秒级的延迟内查询相关数据。
Apache Kylin行业使用现状
Apache Kylin的出现使得对大数据OLAP的能力得以大大的加强,环顾行业现状,已经有了可以借鉴,非常成功的现实案例,我搜集了一些,以供后面学习。。。
唯品会海量实时OLAP分析技术升级之
Apache Kylin在美团数十亿数据OLAP场景下的实践
来了,Apache Kylin在百度外卖流量分析平台的应用与实践~
参考文档
《架构师特刊:Apache Kylin实践(第二期)》 – infoQ
《基于Apache Kylin构建大数据分析平台》 – 清华大学出版
《大数据架构和算法实现之路-电商系统的技术实践》 – 机械工业出版
《分布式实时处理系统-原理、架构与实现》 – 机械工业出版
Apache内部解剖
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!