平板电脑|实时BI(三)离线数据与实时数据处理的技术实现

平板电脑|实时BI(三)离线数据与实时数据处理的技术实现

文章图片

平板电脑|实时BI(三)离线数据与实时数据处理的技术实现

文章图片

平板电脑|实时BI(三)离线数据与实时数据处理的技术实现

文章图片


之前的文章讲到了商业智能BI对数据的同步处理机制主要是采用T+1的方式 , 这部分数据我们一般把它们叫做离线数据 , 这些数据来自于各个业务系统 。 从业务系统批量抽取过来的数据要经过一系列的清洗、转换计算 , 才能进入商业智能BI数仓 , 并在最后达到分析展现 , 这个过程是有时间周期的 , 存在一个时间窗口 , 所以是非实时的 。
商业智能BI的实时要求通常在商业智能BI项目里面 , 大部分的分析指标、数据是不要求做到实时的 , 特别是像企业的经营管理分析、财务分析等等 。 这些数据在商业智能BI项目中的准确性要求远远大于时效性 , 所以此类数据隔天看基本上是足以满足企业大部分的业务分析场景的 。

但在商业智能BI项目里面也有一些例外 , 比如像实时预警类的、监控类的一些数据指标 , 对这种数据的实时性要求就会比较高一些 , 数据延迟时间不能太长 , 要求达到秒级、分钟级以内 , 这类数据就需要进行商业智能BI实时处理 。 这两种不同形态的数据处理方式是不一样的 。
商业智能BI离线数据处理在以往的商业智能BI项目中 , 离线数据量不大的时候 , 比如TB级别以下 , 传统的数据仓库ETL架构大部分场景都可以满足 。 数据量大的时候比如TB、PB级别或以上的数据处理 , 底层就可以采用Hadoop分布式系统框架 , 通过集群的方式进行高速运算和存储 。 最底层的HDFS分布式文件系统存储数据 , MapReduce分布式计算框架对数据进行计算处理 。

Hadoop的数据仓库Hive通过HiveSQL就是HSQL转换成MapReduce作业任务执行数据查询 。 Hive清洗处理后的结果如果是面向海量数据随机查询的场景还可以存入HBase Hadoop Database中 。
HBase 是真正的数据库 , NoSQL数据库 , 目的主要是为了支持和弥补Hadoop对实时数据操作的瓶颈 。 Hive就是一个壳 , 但它简化了Hadoop的复杂性 , 不需要学JAVA就可以通过SQL操作MapReduce去访问HDFS , 即通过SQL语句像操作关系数据库一样操作HDFS系统中的目录和文件 。
上面讲到的就是传统的数据仓库模式下的离线数据处理和大数据架构下的离线数据处理 , 那么我们再来说下大数据技术下的实时数据仓库的数据处理架构 。
商业智能BI实时数据处理我们之前也研究过很多不同的框架 , 比如早期的Lambda架构 , 通过Kafaka、Flume组件对底层数据源数据进行收集 , 然后分两条线进行处理 , 一条处理实时数据指标 , 一条处理T+1数据 。

实时数据指标的计算主要是进入到流式计算平台 , 像Storm、Flink或者SparkStreaming;非实时的、大批量的数据就进入到批数据离线计算平台 , 就是前面提到的Hadoop、Mapreduce、Hive 数据仓库去处理非实时性的T+1的指标 。 这样的一种架构兼顾了小批量的实时性数据和大批量的非实时性数据处理 , 但运维成本很高 , 因为是两套分布式系统 , 维护的工作量很大 。
把Lambda架构做简化 , 去掉了离线批处理部分 , 就是Kappa架构 , 数据以流的方式被采集 , 就只关心流式计算 。 因为现在的Kafaka是可以支持数据持久化的 , 可以保存更长时间的历史数据 , 代替了Lambda架构中离线批处理的部分 。 但对于历史数据吞吐能力就会有所限制 , 只能通过增加计算资源来解决 。 包括数据的容错性 , 对有些场景也并不非常适合Kappa架构 。

相关经验推荐