从零到一建设数据中台 - 数据处理之批流一体

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: 从零到一建设数据中台 - 数据处理之批流一体

image.png

一、离线计算

  • 离线计算:批量获取数据、批量传输数据、周期性批量计算数据、数据展示。
  • 代表技术:Sqoop 批量导入数据、HDFS 批量存储数据、MapReduce 批量计算数据、Hive 批量计算数据。
  • MapReduce:是一个分布式运算程序的编程框架,核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。

MapReduce无法像MySQL一样,在毫秒或者秒级内返回结果。流式计算的输入数据是动态的,而MapReduce的输入数据集是静态的,不能动态变化。这是因为MapReduce自身的设计特点决定了数据源必须是静态的。

MapReduce运算过程需要分成至少2个阶段:

  • 第一个阶段的MapTask并发实例,完全并行运行,互不相干。
  • 第二个阶段的ReduceTask并发实例互不相干,但是他们的数据依赖于上一个阶段的所有MapTask并发实例的输出。

MapReduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序,串行运行。

二、常见流式计算框架对比

  • 离线计算与实时计算最大的区别:实时收集、实时计算、实时展示。
  • 流式计算:数据实时产生、数据实时传输、数据实时计算、实时展示。
  • 代表技术:Flume 实时获取数据、Kafka 实时数据存储、Storm 实时数据计算、Spark实时数据计算、Flink实时数据计算、Redis 实时结果缓存、Mysql 持久化存储。

Storm

是一个免费开源的分布式实时计算系统。Storm 能轻松可靠地处理无界的数据流,就像 Hadoop 对数据进行批处理,Storm可以实时处理数据。

  • Storm:纯流式处理基于记录

专门为流式处理设计 数据传输模式更为简单,很多地方也更为高效 并不是不能做批处理,它也可以来做微批处理,来提高吞吐

  • Spark Streaming:微批处理

将RDD做的很小来用小的批处理来接近流式处理 基于内存和DAG可以把处理任务做的很快

Storm Spark Streaming
流式处理 微批处理
(毫)秒级 秒级
稳定 稳定性改进中
独立系统,专为流式计算设计 Spark核心智商的计算模型能与其他组件很好结合

Spark

并非真正意义上的流处理,而是微批处理,对数据流进行极小粒度的拆分,近似达到流处理的效果(微分原理),而Flink是大批量处理框架,既可以处理有界流也可以处理无界流。

  • Spark Core:实现了Spark 的基本功能,包含 RDD、任务调度、内存管理、错误恢复、与存储系统交互等模块。
  • Spark SQL:Spark用来操作结构化数据的程序包。通过 Spark SQL,我们可以使用 SQL 操作数据。
  • Spark Streaming:Spark 提供的对实时数据进行流式计算的组件。提供了用来操作数据流的 API。
  • Spark MLlib:提供常见的机器学习(ML)功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能。
  • GraphX(图计算) :Spark中用于图计算的 API,性能良好,拥有丰富的功能和运算符,能在海量数据上自如地运行复杂的图算法。
  • 集群管理器:Spark设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算。
  • Structured Streaming:处理结构化流,统一了离线和实时的 API。

image.png

Flink

Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。

它的最大亮点是流处理,是业界最顶级的开源流处理引擎。

Flink最适合的应用场景是低时延的数据处理(Data Processing)场景:高并发pipeline处理数据,时延毫秒级,且兼具可靠性。

Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。

此外,Flink的运行时本身也支持迭代算法的执行。

image.png

三、可视化ETL工具

ETL:元数据加工

数据抽取(extract)、转换(transform)、加载(load),跨表组织汇总与分析。图形化ETL视图配置,自主进行数据建模,跨表聚合视图可视化配置,对不同来源的源数据进行加工,自助式ETL,自由组合数据视图,数据建模分析。

image.png

主要功能有:

  • 数据源:提供多种数据源接入,关系型数据库,数据模型,Excel,Kafka消息流
  • 追加合并:拼接不同数据表数据及多张表的数据进行上下拼接
  • 字段设置:对输入字段进行显示、隐藏、排序、重命名、添加新的计算字段
  • 横向连接:两张表的数据左右拼接,内连接、左连接和右连接
  • 数据筛选:将数据表中不需要处理的数据过滤掉,只保留需要处理的数据
  • 整合运算:选择批处理或流处理处理引擎(Flink),进行数据处理运算
  • 输出源:输出节点用来存放最终处理完成的数据,kafka、ClickHouse、Hive

image.png


相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
7月前
|
存储 分布式计算 分布式数据库
实时湖仓技术选型,企业如何借实时湖仓赢在“数据驱动”时代
本文从技术的角度,为大家解析实时湖仓的存储原理以及生态选型,为企业建设实时湖仓给出参考意见,助力企业借实时湖仓赢在“数据驱动”时代。
126 0
|
存储 SQL 分布式计算
数据湖 VS 数据仓库之争?阿里提出大数据架构新概念:湖仓一体
随着近几年数据湖概念的兴起,业界对于数据仓库和数据湖的对比甚至争论就一直不断。有人说数据湖是下一代大数据平台,各大云厂商也在纷纷的提出自己的数据湖解决方案,一些云数仓产品也增加了和数据湖联动的特性。但是数据仓库和数据湖的区别到底是什么,是技术路线之争?是数据管理方式之争?二者是水火不容还是其实可以和谐共存,甚至互为补充?本文作者来自阿里巴巴计算平台部门,深度参与阿里巴巴大数据/数据中台领域建设,将从历史的角度对数据湖和数据仓库的来龙去脉进行深入剖析,来阐述两者融合演进的新方向——湖仓一体,并就基于阿里云MaxCompute/EMR DataLake的湖仓一体方案做一介绍。
28050 2
数据湖 VS 数据仓库之争?阿里提出大数据架构新概念:湖仓一体
|
5月前
|
数据采集 机器学习/深度学习 数据可视化
从零到一建设数据中台 - 数据服务开发
从零到一建设数据中台 - 数据服务开发
94 0
|
SQL 存储 运维
蚂蚁实时低代码研发和流批一体的应用实践
蚂蚁实时数仓架构师马年圣,在 Flink Forward Asia 2022 流批一体专场的分享。
9500 1
|
存储 消息中间件 分布式计算
湖仓一体方案有很多,为何偶数的实时湖仓脱颖而出?
湖仓一体方案有很多,为何偶数的实时湖仓脱颖而出?
142 0
|
SQL 存储 机器学习/深度学习
流批一体架构在快手的实践和思考
快手技术专家、Apache Flink & Apache Calcite Committer 张静,在 FFA 流批一体专场的分享。
流批一体架构在快手的实践和思考
|
SQL 存储 缓存
流批一体在京东的探索与实践
京东高级技术专家韩飞在 FFA 的演讲。
流批一体在京东的探索与实践
|
存储 SQL 自然语言处理
DataFunTalk:阿里建设一站式实时数仓的经验分享
本文内容整理于阿里资深技术专家姜伟华在DataFunTalk上的演讲,为大家介绍阿里巴巴基于一站式实时数仓Hologres建设实时数仓的经验和解决方案。
2015 5
DataFunTalk:阿里建设一站式实时数仓的经验分享
|
Cloud Native 大数据
《离线实时一体化数仓与湖仓一体—云原生大数据平台的持续演进》电子版地址
离线实时一体化数仓与湖仓一体—云原生大数据平台的持续演进.ppt
317 0
《离线实时一体化数仓与湖仓一体—云原生大数据平台的持续演进》电子版地址
|
存储 机器学习/深度学习 数据采集
万字详解数据仓库、数据湖、数据中台和湖仓一体 ​(二)
详解数据仓库、数据湖、数据中台和湖仓一体
1060 0
万字详解数据仓库、数据湖、数据中台和湖仓一体  ​(二)