2019-07-05 10:00

大数据架构如何做到流批一体?

  阿里妹导读:大数据与现有!的科技手段结合,对大多数产业而言都能产生巨大的经济及社会价值。这也是当下许多企业,在大数据上深耕的原因。大数据分析场景需要解决哪些技术挑战?目前,有哪些主流大数据架构模式及其发展?今天,我们都会一一解读,并介绍如何结合云上存储、计算组件,实现更优的通用大数据架构模式,以及该模式可以涵盖的典型数据处理场景。

  现在已经有越来越多的行业和技术领域需求大数据分析系统,例如金融行业需要使用大数据系统结合 VaR(value at risk) 或者机器学习方案进行信贷风控,零售、餐饮行业需要大数据系统实现辅助销售决策,各种 IOT 场景需要大数据系统持续聚合和分析时序数据,各大科技公司需要建立大数据分析中台等等。

  Lambda 架构是目前影响最深刻的大数据处理架构,它的核心思想是将不可变的数据以追加的方式并行写到批和流处理系统内,随后将相同的计算逻辑分别在流和批系统中实现,并且在查询阶段合并流和批的计算视图并展示给用户。Lambda的提出者 Na、than Marz 还假定了批处理相对简单不易出现错误,而流处理相对不太可靠,因此流处理器可以使用近似算法,快速产生对视图的近似更新,而批处理系统会采用较慢的精确算法,产生相同视图的校正版本。

  Lambda 架构设计推广了在不可变的事件流上生成视图,并且可以在必要时重新处理事件的原则,该原则保证了系统随需求演进时,始终可以创建相应的新视图出来,切实可行地满足了不断变化的历史数据和实时数据分析需求。

  Lambda 架构非常复杂,在数据。写入、存储、对接计算组件以及展示层都有复杂的子课题需要优化:

  针对 Lambda 架构的问题3,计算逻辑需要分别在流批。框,架中实现和运行的问题,不少计算引擎已经开始往流批统一的。方向去发展,例如 Spark 和 Flink,从而简化lambda 架构中的计算部分。实现流批统一通常需要支持:

  2.支持 exactly once 语义,保证有无故障情况下计算结果完全相同;

  Kappa 架构由 Jay Kreps 提出,不同于 Lambda 同时计算流计算和批计算并合并视图,Kappa 只会通过流计算一条的数据链路计算并产生视图。Kappa 同样采用。了重新处理事件的原则,对于历史数据分析类的需求,Kappa 要求数据的长期存储能够以有序 log 流的方式重新流入流计算引擎,重新产生历史数据的视图。

  Kappa 方案通过精简链路解决了1数据写入和3计算逻辑复杂的问题,但它依然没有解决存储和展示的问题,特别是在存储上,使用类似 kafka 的消息队列存储长期日志数据,数据无法压缩,存储成本很大,绕过方案是使用支持数据分层存储的消息系统(如 Pulsar,支持将历史消息存储到云上存储系统),但是分层存储的历史日志数据仅能用于 Kappa backfill 作业,数据的利用率依,然很低。

  Kappa+是 Uber 提出流式数据处理架构,它的核心思想是让流计”算框架直读 HDFS类的数仓数据,一并实现实时计算和历史数据 backfill 计算,不需要为 back!fill 作业长期保存日志或者把数据拷贝回消息队列。Kappa+ 将数据任务;分为、无状态任务和时间窗口任务,无状态任务比较简单,根据吞吐速度合理并发扫描全量数据即可,时间窗口任务的原理是将数仓数据按照时间粒度进行分区存储,窗口任务按时间序一次计算一个 partition 的数据,partition 内乱序并发,所有分区文件全部!读取完毕后,所有 source 才进入下个 partition 消费并更新 watermark。事实上,Uber 开发了Apache hudi 框架来存储数仓数据,hudi 支持更新、删除已有 parquet。 数据,也支持增量消费数据更?新部分,从而系统性解决了问题2存储的问题。下图3是完整的Uber 大数据处理平台,其中 Hadoop - Spark - Analytical data user 涵盖了Kappa+ 数据处理架构。

  Lambda 和 Kappa 架构都还有展示层的困难点,结果视图如何支持 ad-hoc 查询分析,一个解决方案是在 Kappa 基础上衍生数据分析流程,如下图4,在基于使用Kafka + Flink 构建 Kappa 流计算数据架构,针对Kappa 架构分析能力不足的问题,再利用 Kafka 对接组!合 ElasticSearch 实时分析引擎,部分弥补其数据分析能力。但是 ElasticSearch 也只适合对合理数据量级的热数据进行索引,无法覆盖所有批处理相关的分析需求,这种混合架构某种意义上属于 Kappa 和 Lambda 间的折中方案。

  Lambda plus 是基于 Tablestore 和 Blink 打造的云上存在可以复用、简化的大数、据架构模式,架构方案全 serverless 即开即用,易搭建免运维。

  表格存储(Tablestore)是阿里云自研的 NoSQL 多模型数据库,提供 PB 级结构化数据存储、千万 TPS 以及毫秒级延迟的服务能力,表格存储提供了通道服务(TunnelService)支持用户以按序、流式地方式消费写入表格存储的存量数据和实时数据,同时表格存储还提供了多元索引功能,支持用户对结果视图进行实时查询和分析。

  Blink 是阿里云在 Apache Flink 基础上深度改进的实时计算平台,Blink 旨在将流处理和批处理统一,实现了,全新的 Flink SQL 技!术栈,在功能上,Blink 支持现在标准 SQL 几乎所有的语法和语义,在性能上,Blink 也比社区Flink更加强大。

  存储引擎的高并发、低延迟特性:表格存储面向在线业务提供高并发、低延迟的访问,并且 tps 按分区水平扩展,可以有效支持批处理和 Kappa backfill 的高吞吐数据扫描和流计算按分区粒度并发实时处理;

  使用通道服务精简?架构:Tablestore 数据通道支持用户以按序、流式?地方式消费写入表格存储的存量数据和实时数据,避免 Lambda 架构引入消息队列系统以及master dataset 和队列的数据一致性问题;

  二级索引和多元索引的灵活查询能力:存储在表格存储的 batch view 和 real-time view 可以使用多元索引和二级索引实现 ad-hoc 查询,使用多元索引进行聚合分析计算;同时展示层也可以利用二级索引和多元索引直接查询表格存储 master dataset,不强依赖引擎计算结果。

  基于 Tablestore 和 Blink 的 Lambda plus 架构,适用于基于分布式 NoSQL 数据库存储数据的大数据分析场景,如 IOT、时序数据、爬虫数据、用户行为日志数据存储等,数据量以 TB 级为主。典型的业务场景如:

      秒速时时彩,秒速时时彩网址

上一篇:科达股份2018营收142亿元技术+数据赋能智能营销时代

下一篇:中昌大数据股份有限公司关于对上海证券交易所2018年年度报告事后审核问询函回复的公告

 网站地图