数据从业务端产生,到分析或者反哺业务使用,需要经过一系列的清洗、处理过程,这一个过程往往需要一定的时间窗口,这就是数据的时效性。
按照数据延迟的大小,可以将数据分为实时数据和离线数据。
一、离线数据
离线数据一般指T+1的日期,数据结果中,能够体现的业务数据最新的是前一天的数据。
离线数据处理也称为“批处理”,数据产生之后,不会立即进行处理,而是在固定的周期进行ETL,例如每天在凌晨12:00之后,处理前一天产生的数据。
离线数据处理技术比较成熟,常见的Hadoop,对大量数据进行分布式处理的软件框架。以一种可靠、高效、可伸缩的方式进行数据存储,MapReduce计算,Hive进行数仓建设或基于Hivesql进行数据查询。
优势:能够处理大量数据、数据更加准确。不足:时效性差,今天的数据明天才能看到。
二、实时数据
实时数据主要是指数据延迟小,例如毫秒、秒、分钟级的延迟,小时级的延迟称为“准实时数据”。
实时数据处理也称为“流处理”,数据产生后就立即被清洗处理。实时数据一般是业务端产生(水源),通过kafka等消息通道(水流管道)进行传输,利用storm或flink等实时组件进行消费处理。例如,双十一统计每秒的订单数。
优势:时效性强,实时获取直观数据。不足:需要不停计算数据,集群资源消耗大。数据周期短,没办法存储太长时间的数据,一般数据计算的周期限定在一周内。
三、实时数据与离线数据的特征对比
特征 | 实时数据 | 准实时数据 | 离线数据 |
时效性 | 低延迟(毫秒、秒) | 中延迟(小时) | 高延迟(天) |
计算模式 | 流处理 | 批处理 | 批处理 |
访问数据范围 | 窗口内数据 | 访问全部数据 | 访问全部数据 |
数据特征 | 动态、无边界 | 静态、有边界 | 静态、有边界 |
准确性 | 低 | 较高 | 高 |
开发周期 | 长 | 短 | 短 |
数据可回溯周期 | 短 | 短 | 长 |
应用场景 | 大屏可视化、推荐系统、实时数据监测 | 实时数据监测 | 离线报表、数据分析 |
四、实时数据和离线数据的应用场景
1.业务经营分析、财务分析对准确性的要求更高,倾向于离线数据
对于数据分析场景,业务经营和财务分析希望数据能更加准确的反应实际业务情况和盈亏情况,使用T+1数据可以接受。
2.预警监控类分析,强调时效性,倾向于实时数据
如果出现系统宕机、产品报错、客户投诉问题,没有及时处理,将带来较大的损失。因此,需要实时的数据分析模块,对业务核心指标、系统服务指标进行最小延迟的预警监控。
一般的数据可视化平台,有一个实时数据模块就可以了,其他的主题分析以离线为主。
3.个性化推荐,用户行为需要实时反馈
针对个性化推荐的场景,就要做到数据的最小延迟,如果等用户都退出app数据才计算完成更新,用户就流失了。
4.用户运营及营销场景
用户运营场景中,流失用户召回、会员运营活动等活动中,对数据时效性等要求不高,但是实时的场景触达需要实时数据。例如,客户打开app,需要及时判断是否是新客,发放新客礼包。
五、总结
无论离线数据还是实时数据,都是为了解决业务场景下的问题,在明确其背后的原理和差异后,再去选择实时数据或离线数据,合理调度资源来达成业务目标。
标签:场景,离线,实时,时效性,数据,延迟 From: https://www.cnblogs.com/qwb1997/p/17502488.html