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

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

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


相关实践学习
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
7月前
|
数据采集 存储 分布式计算
一文读懂数据中台架构,高效构建企业数据价值
在数字化时代,企业面临数据分散、难以统一管理的问题。数据中台架构通过整合、清洗和管理数据,打破信息孤岛,提升决策效率。本文详解其核心组成、搭建步骤及常见挑战,助力企业高效用数。
2222 24
|
9月前
|
数据可视化 大数据
Axure制作可视化大屏动态滚动列表教程
本文详细介绍了如何使用Axure制作动态滚动列表展示模块。首先,通过创建新项目和设置中继器列来准备数据;接着,设计列表项样式并添加示例数据。然后,利用动态面板实现列表的滚动效果,包括设置内部和外部面板交互逻辑。最后,预览调试以确保效果满意。此模块适用于可视化大屏,可根据需求调整样式与参数,达到理想展示效果。文中还提供了相关教程链接,助力Axure原型设计。
1581 137
|
消息中间件 Java Kafka
Java消息队列总结只需一篇解决ActiveMQ、RabbitMQ、ZeroMQ、Kafka
  一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。
3516 0
|
12月前
|
SQL 分布式计算 大数据
深度剖析数据中台架构图,铸造数字文明的基石
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
消息中间件 大数据 数据挖掘
深入浅出流批一体理论篇,数据架构的演进
这篇文章的主要内容包括:1、数据架构的演变历史与各种架构的优缺点。2、流批一体的价值。3、流批一体架构中流与批的关系。
51237 74
|
SQL 存储 数据库
【赵渝强老师】基于Flink的流批一体架构
本文介绍了Flink如何实现流批一体的系统架构,包括数据集成、数仓架构和数据湖的流批一体方案。Flink通过统一的开发规范和SQL支持,解决了传统架构中的多套技术栈、数据链路冗余和数据口径不一致等问题,提高了开发效率和数据一致性。
851 7
|
数据处理 API 数据库
揭秘Kotlin Flow:迈向响应式编程的黄金钥匙
【9月更文挑战第11天】在现代软件开发中,异步编程与数据处理对于构建高性能应用至关重要。Kotlin Flow作为协程库的一部分,提供了简洁高效的API来处理数据流。本文将通过实例引导你从零开始学习Kotlin Flow,掌握构建响应式应用的方法。Flow是一种冷流,仅在订阅时才开始执行,支持map、filter等操作符,简化数据处理。
254 8
|
JSON 前端开发 JavaScript
技术笔记:vmware之VMwareRemoteConsole(VMRC)SDK(二)
技术笔记:vmware之VMwareRemoteConsole(VMRC)SDK(二)
743 0
|
存储 SQL 算法
数据脱敏技术与应用
数据脱敏技术与应用
数据脱敏技术与应用
|
Kubernetes Cloud Native Apache
FFA 2023 专场解读:流批一体&平台建设&云原生
完整议程已公开,期待 12 月 8-9 日与你 Flink Forward Asia 2023 相会!
925 3
FFA 2023 专场解读:流批一体&平台建设&云原生

热门文章

最新文章