计算能力 | 数据来源类型 | 数据处理方式 | 底层框架 | 时延性 |
---|---|---|---|---|
批计算 | 历史已存在数据 | 批处理 | MapReduce spark |
要求不高 |
流计算 | 源源不断的流式数据 | 微批处理&逐条出来 | Storm Flink Spark Streaming |
毫秒 |
在线查询 | 历史已存在数据 | 逐条处理/检索过滤 | Elasticsearch | 毫秒 |
即席分析 | 历史已存在数据 | 批处理/聚合 | Impala Kylim ClickHouse AnalyticDB |
毫秒/秒级延迟 |
批计算
主要用于批量数据的高延时处理场景,如离线数仓的加工、大规模数据的清洗和挖掘等。目前大多是利用MapReduce、Hive、Spark等计算框架进行处理,其特点是数据吞吐量大、延时高,适合人机交互少的场景。
传统的数据处理方式通常是将数据导入至专门的数据分析工 具中,这样会面临两个问题:
- 源数据非常大时,往往数据的移动就要花费较长时间。
- 传统的数据处理工具往往是单机的,或系统架构无法快速扩容,面对海量数据时,数据处理的时间也是一个很大的问题。
相比MapReduce,Spark 在以下几方面具有优势:
- 数据处理技术:Spark将执行模型抽象为通用的有向无环图 (DAG)执行计划,这可以将多个Stage串联或者并行执行,而无须将 Stage的中间结果输出到HDFS中。
- 数据格式和内存布局:Spark RDD能支持粗粒度写操作,而对于读 操作,RDD可以精确到每条记录,这使得RDD可以用来作为分布式索引
- 执行策略:MapReduce在数据Shuffle之前花费了大量的时间来排 序,Spark支持基于Hash的分布式聚合,调度中采用更为通用的任务执行DAG,每一轮的输出结果都可以缓存在内存中
流计算
也叫实时流计算,对于数据的加工处理和应用有较强的实效性要 求,常见于监控告警场景,例如实时分析网络事件,当有异常事件发生 时能够及时介入处理。例如,阿里巴巴“双11”的可视化大屏上的数据展 现是根据浏览、交易数据经过实时计算后展现在可视化大屏上的一种应 用。这类场景目前应用较多的计算框架主要有Flink、Spark Streaming和 Storm等
流计算的常见应用场景如下:
- 流式ETL:集成流计算现有的诸多数据通道和SQL灵活的加工能 力,对流式数据进行实时清洗、归并、结构化处理。同时,对离线数仓 进行有效补充和优化,为数据的实时传输提供可计算通道。
- 流式报表:实时采集、加工流式数据,实时监控和展现业务和客 户的各类指标,让数据化运营实时化。
- 监控预警:对系统和用户的行为进行实时检测和分析,实时监测 和发现危险行为。
- 在线系统:实时计算各类数据指标,并利用实时结果及时调整在 线系统的相关策略,在内容投放、无线智能推送等领域有大量的应用。
在线查询
主要用于数据结果的在线查询、条件过滤和筛选等,如数据检索、 条件过滤等。根据不同的场景也会有多种选择,如营销场景对响应延时 要求高的,一般会采集缓存型的存储计算,如Redis、Tair等;对响应延 时要求正常的,可以选择HBase和MySQL等;需要进行条件过滤、检索 的,可以选择Elasticsearch等。企业一般对在线查询的需求比较旺盛, 因此可能会有多套在线计算的能力提供服务
在线查询的常见应用场景
- 画像服务:根据对象标识提供具体的查询服务,如通过Redis可以 提供低延迟、高并发的查询服务能力;通过HBase可以提供大规模数据 的查询服务能力,征信查询就是类似的服务。
- 搜索的应用场景:提供搜索引擎的能力,为用户提供模糊匹配、 意图识别检索等能力,快速检索需要的内容,如常见的文档搜索、商品 搜索等。
- 圈人场景:通过一些特定的条件规则,可以快速筛选出业务所需 要的群体,为后续的运营、营销等工作的开展提供支撑。
即席分析
主要用于分析型场景和经验统计。一般而言,企业80%的数据处理 需求是在线查询和即席分析。针对不同维度的分析,有多种方式可以提 供,提前固定计算的维度、根据需求任意维度的交叉分析(ad-hoc)等 都是常见的场景。目前也有很多相应的产品、框架来支撑这方面的应 用,如Kylin、Impala、ClickHouse、Hawk等
即席分析的常见应用场景如下:
- 交互式数据分析:企业运营人员在日常工作中经常需要通过SQL 从各个维度对当前业务进行分析,提供分析结果以便开展后续工作。离 线计算的场景等待时间较久,用户体验不好,即席分析可以比较好地规 避这个问题。
- 群体对比分析场景:在业务中经常会有A/B测试场景,针对不同的 群体,从各个维度对比分析也是即席分析经常支撑的场景