为什么要自建实时计算平台
为什么要自建一个离线平台
- 可以优化资源利用率。
- 业务平台应该把精力放在业务上。
什么是实时计算
- 强调响应时间短(相对于离线计算):毫秒级、亚秒级、秒级。T+1 的报表都是离线计算。
- 数据的价值随着时间的流逝而迅速降低。
- 常见技术方案:
- 流计算 + 实时存储 or 消息队列
- 流计算 + 实现 OLAP
什么是流式计算
- 实时且无界。
- 数据驱动计算,事件触发。
- 有状态及持续集成。
- 流计算引擎:Spark Streaming、Flink Streaming、Storm/JStorm、Samza 等。
Spark Streaming 模型
- Micro-Batch 模式。看起来是流式处理的,实际上还是一小批一小批处理的。从批处理走到流处理。
- 最小延时:batch 的处理时间
- 最大延时:batch interval(通常2s-10s) + batch 处理时间。
- 使用场景:数据清洗(实时数据通道)、数据 ETL 等。
- 对于熟悉 Spark 批处理的 RD 非常容易上手。
Flink Streaming
- Native Streaming。
- 低延时,通常在毫秒级。
- 使用场景:事件驱动、实时风控、在线业务等。
- 比 Spark 更新。
Druid.io
- 实时数据存储及多维度聚合计算引擎。
- 服务于时间序列数据。
- 低延时数据写入(只写消费 kafka),实时数据可见。
- 快速交互式查询(99% 查询1秒内返回)。
- 支持 SQL 及 DSL 两种查询语言。
- 适用场景:实时报表、实时监控。
Presto 模型及服务
- 基于全内存计算的分布式 SQL 查询引擎。
- 针对响应时间 20S 以内的 OLAP 场景。
- 通过 Connector 支持多种数据源。
重流还是轻流
计算到底是在存储里 OLAP 里算出来,还是从存储里导出来,用流来计算的?
用调整算子并发的方式,可以提升性能瓶颈。
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.