当前位置:   article > 正文

离线数仓和实时数仓区别

离线数仓和实时数仓
离线数仓和实时数仓

离线数仓是指基于批处理模式,按照一定的时间周期(如每天、每周、每月等)对数据进行采集、清洗、转换、加载等操作,形成面向分析的数据模型,供业务人员进行报表分析、数据挖掘等。离线数仓的优点是数据质量高、准确性强、可靠性好,适合处理历史数据和复杂的分析任务。离线数仓的缺点是数据时效性低、延迟性高,不能满足实时性要求高的业务场景。

实时数仓是指基于流处理模式,对数据进行实时或近实时的采集、清洗、转换、加载等操作,形成面向实时的数据模型,供业务人员进行实时监控、实时分析、实时决策等。实时数仓的优点是数据时效性高、延迟性低,能够快速响应业务变化和用户需求。实时数仓的缺点是数据质量低、准确性弱、可靠性差,不适合处理历史数据和复杂的分析任务。

离线数仓和实时数仓在架构上也有明显的区别。离线数仓通常采用传统的大数据架构,以Hadoop为核心,使用HDFS作为存储层,使用MapReduce、Hive、Spark等作为计算层,使用ODS、DWD、DWS、DM等作为数据层,使用OLAP、RDS、KV等作为服务层。

  1. Hadoop Distributed File System,简称 HDFS,是一个分布式文件系统。HDFS 有着高容错性(fault-tolerent)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS 放宽了(relax)POSIX 的要求(requirements)这样可以实现流的形式访问(streaming access)文件系统中的数据。HDFS 开始是为开源的 apache 项目 nutch 的基础结构而创建,HDFS 是 hadoop 项目的一部分,而 hadoop 又是 lucene 的一部分
  2. Mapreduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架。Mapreduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上
  3. Hive 是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行
  4. Spark是一种通用的大数据计算框架,是基于RDD(弹性分布式数据集)的一种计算模型。拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,而且比MapReduce平均快10倍以上的计算速度;因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

实时数仓通常采用Kappa架构或Lambda架构,以Kafka为核心,使用Kafka作为存储层和消息层,使用Flink、Storm、Spark Streaming等作为计算层,使用ODS、DWD、DWS等作为数据层,使用MQ、OLAP、RDS、KV等作为服务层。

  1. Flink ,Apache Flink是一个流处理引擎(stream processing engine),它被设计用于处理具有高吞吐量和低延迟需求的实时数据流处理应用程序
  2. Storm ,Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop,可以说是第一个实现了分布式实时计算框架,相比于Spark Streaming 的准实时,Storm是“真正意义上的实时”。Spark Streaming 并不是真正意义上的流处理框架
  3. Sparkstreaming是Spark的升级版本,在Sparkstreaming使用RDD模型将每次处理的数据转换成1个数据集进行处理,减少了每次ACK的开销,提高了效率

离线数仓和实时数仓在应用场景上也有不同的侧重点。离线数仓适合处理那些对数据质量要求高、对数据时效性要求低、对数据分析要求复杂的场景,如财务报表、用户画像、营销分析等。实时数仓适合处理那些对数据质量要求低、对数据时效性要求高、对数据分析要求简单的场景,如监控预警、推荐系统、风控系统等。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/396850?site
推荐阅读
相关标签
  

闽ICP备14008679号