`

大数据即时计算产品的一般原理----技术纲要介绍

阅读更多

前言:

   在数据部门工作已经是第三个年头,做过很多的数据产品,也接触了很多的业务数据和业务数据的生产。我的工作经历也大致分为这样几个阶段:第一阶段就是做数据产品,主要的工作就是把生产好的数据根据具体的业务把数据搬到网页上;第二个阶段开始尝试做了数据产品的产品,以配置化和平台化的方式玩出数据产品的页面;第三个阶段开始尝试做了数据仓库的产品,直接基于数据仓库模型组织的明细粒度数据进行即席OLAP分析从而快速获取统计分析的结果数据,这其中随着当前业务数据的急速膨胀,我们必须要面对如何在千万级别、亿级别甚至是百亿级别的数据进行聚合统计计算的问题,大家都知道在做聚合计算一般都是比较耗费资源的,一台单机关系型数据库在面对百万级别数据做类似Group by计算时在一定的并发量下经常会遭遇CPU load严重吃紧从而导致服务不可用的情况,所幸,我们集团内有很多团队做了很多努力,陆续出来Higo、Garuda等等可直接基于大数据进行统计分析的分析型数据库产品,我本人也亲身体验和使用过这些产品,本着知其然知其所以然的技术精神,我对这些即时计算的产品原理做下大概的总结,才疏学浅,还望大牛们指正。

 

相关概念:

即时计算:针对只读数据进行即时数据的获取和计算。
即时计算的特点:海量数据、低延迟、计算准确、高可用、以及SQL访问。
聚合统计查询:一般查询形式为select count(xx),sum(xx),count(distinct xx),Avg(xx) where<过滤条件> group by XXX having<分组后过滤条件>

 

技术原理核心要点:

  • 列式存储:减少IO,更少扫描(只选择需要的列),分块存储顺序访问
  • 索引:利用lucene倒排索引、正排索引快速定位列存储位置
  • 分布式MPP架构计算:多节点并行计算充分发挥分布式本地计算能力
  • 压缩技术:内存压缩和磁盘压缩,降低内存IO、磁盘IO以及网络IO
  • 高效的内存计算:bitMap和bitSet
  • 缓存:列存储分块(Block)缓存、BitMap缓存等,LRU淘汰策略。
  • 多级Merge:多路归并计算合并,优化网络
  • 资源管理调度:自动failover机制保证可用性,表上下线管理

 

以上是海量数据即时计算的技术总纲,另外面对海量数据的计算处理还需要一定的硬件支持,比如应对随机访问需要SSD磁盘特性,而对于缓存和内存计算也需要一定容量的内存来支撑。接下来我会针对每个技术的要点来进行分期讲解,争取把原理都讲清楚。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics