背景
对于亿级规模的数据量,使用传统数据库分析会比较低效且耗时。
这时就引入了OLAP引擎,本文以impala和spark为主进行介绍。
OLAP典型技术组件
impala是MPP架构,即每个节点的 CPU、内存和存储等都是独立的,不存在共享,每个节点都是一个单独的数据库。
节点之间的信息和数据交互是通过网络实现,每次计算是所有节点都参与计算,容易导致短板效应。
Spark是批处理架构,并不需要所有的节点都参与运算,它在一个任务事件下发以后,控制节点会分配给一些集群中的节点,而这些节点各自完成自己的计算,然后把计算结果写到磁盘里,再交给下一个计算的节点去写入,每次不需要所有的节点去参与运算。
因为节点和它的任务是解耦的,控制节点可以调节分配任务,来减少短板。
使用场景
BI报表,是批处理+MPP组合的形式,其中对业务中的RT和QPS要求不高,重点在于需要支持非常复杂的分析,最好使用的方案其实是批处理+MPP,批处理这层主要是进行数据清洗初步的聚合
通过对业务的理解,将关键的数据保留,通过批处理预先建好DWS层的模式处理,然后使用impala对接BI类工具来支持我们的业务需求,满足复杂分析的要求。