数据中台之数据开发,数据开发概述与数据计算能力的类型

news2024/11/28 6:46:03

目录

一、数据开发概述

二、数据计算能力的类型

2.1 概述

2.2 批计算

2.2.1 概述

2.2.2 批计算模型

2.2.2.1 传统数据处理方案的问题

2.2.2.2 MapReduce模型

2.2.2.3 Spark框架

2.3 流计算

2.4 批流一体

2.5 在线查询

2.6 即席分析


一、数据开发概述

数据开发是数据资产内容建设的主战场,是数据价值生产过程中的核心环节,可以支撑大批量数据的离线处理、实时处理和数据挖掘等。

业务沉淀的数据就像原始的矿石或商品的原材料,数据开发这个环节就像是“商品”生产的流水线,通过这条流水线将数据转换成数据资产,让数据能根据业务的需求转换成新的形态,将原本看起来没有价值的数据变成对业务有价值的资产,为前端业务源源不断提供其所需要的“商品”。

数据开发涉及的产品能力主要包括3个部分,分别是离线开发、实时开发和算法开发,如下图所示:

  • ❑离线开发

主要包括离线数据的加工、发布、运维管理,以及数据分析、数据探索、在线查询和即席分析相关的工作。

  • ❑实时开发

主要涉及数据的实时接入和实时处理,简化流数据的加工处理过程。

  • ❑算法开发

主要提供简单易用的可视化拖曳方式和Notebook方式来实现数据价值的深度挖掘,并将产生的算法模型在数据开发中使用。

常见的加工场景有离线和实时数仓建设、算法模型训练、数据化运营分析、数据探索等。在这个过程中,通过数据开发套件对大数据的存储和计算能力进行封装,通过产品化的方式让用户更容易地使用大数据。计算能力与前面文章中提到的存储能力是紧密联系的,由于数据规模不断增大,不仅存储能力需要细分,计算能力也需要细分。因此在建设过程中,需要对不同场景下的计算能力有一定了解。

二、数据计算能力的类型

2.1 概述

笔者将计算能力根据场景抽象分成五大类,即批计算、流计算、流批一体、在线查询和即席分析,随着数据处理技术的发展,还融合出一种新的计算方式——流批一体。对于不同的场景应配合不同的存储和计算框架来实现,以满足业务的复杂需求,如下图所示:

2.2 批计算

2.2.1 概述

由于数据量激增,原有的计算框架已经无法支撑TB、PB甚至EB级规模数据的处理,在这种大数据场景下,提供成本低廉且可水平扩容的计算能力,采用分而治之的方法是必然的。

批计算主要用于批量数据的高延时处理场景,如离线数仓的加工、大规模数据的清洗和挖掘等。目前大多利用MapReduce、Hive、Spark等计算框架进行处理,其特点是数据吞吐量大,延时高,适合人机交互少的场景。

2.2.2 批计算模型

2.2.2.1 传统数据处理方案的问题

传统的数据处理方式通常是将数据导入专门的数据分析工具中,但这样会面临两个问题:

  • ❑源数据非常大时,往往仅移动数据就要花费较长时间;
  • ❑传统的数据处理工具往往是单机的,或者系统架构无法快速扩容,面对海量数据时,数据处理的时间也是一个很大的问题。
2.2.2.2 MapReduce模型

Google的3篇论文开启了大数据处理的序章,其中MapReduce被各大公司作为数据处理的主要方案。

MapReduce是一种分布式编程模型,采用“分而治之”的思想,将一个大规模数据集分解为多个小规模数据集,然后分发给集群中多个节点共同完成计算。这样可以有效降低每一部分的运算复杂度,达到提高运算效率的目的。

下图为MapReduce模型的数据流图:

MapReduce模型将计算分为两个阶段:Map阶段和Reduce阶段。Hadoop将MapReduce的输入数据划分为等长的数据块,称为输入分片(Input Split),为每一个分片构建一个Map任务,并由该任务来运行用户自定义的Map函数,以处理分片中的每条记录。Map任务输出时要按照Reduce任务的数量进行分区,即为每一个Reduce任务新建一个分区,同时对每个分区进行排序。Reduce任务启动后,会向所有Map任务拉取数据并在Reduce端合并,Map任务和Reduce任务之间的数据流称为混洗(Shuffle)。最后由用户自定义的Reduce函数处理,其输出通常存储在HDFS上,以实现可靠存储。

2.2.2.3 Spark框架

MapReduce由于设计上的一些限制,处理性能较弱,针对这个问题,业界有很多优化方案及替代产品,但真正发展起来的目前主要有Spark。Spark也是一个批计算框架,它将数据抽象成RDD、DataFrame,这是一种分布式的内存抽象,允许在大型集群上执行基于内存的计算,从而大大减少迭代计算所需的开销。

相比MapReduce,Spark在以下几方面具有优势:

  • ❑数据处理技术:Spark将执行模型抽象为通用的有向无环图(DAG)执行计划,这可以将多个Stage串联或者并行执行,而无须将Stage的中间结果输出到HDFS中。
  • ❑数据格式和内存布局:Spark RDD能支持粗粒度写操作,而对于读操作,RDD可以精确到每条记录,这使RDD可以用作分布式索引。
  • ❑执行策略:MapReduce在数据混洗之前会花费大量时间排序,而Spark支持基于Hash的分布式聚合,调度中采用更为通用的任务执行DAG,每一轮的输出结果都可以缓存在内存中。

2.3 流计算

也叫实时流计算,对于数据的加工处理和应用有较高的时效性要求,常见于监控告警场景。例如实时分析网络事件,当有异常事件发生时能够及时介入处理。例如,阿里巴巴“双11”可视化大屏上的数据展现就是流计算的一种应用——将浏览、交易数据进行流计算后展现。

批计算能应对多数大数据计算场景,然而要更快速、高效地获取数据中的价值,批计算就无法满足需求了。此时,一些优秀的实时处理框架,如Storm、Flink、Spark Streaming等逐渐发展起来,并被广泛使用。

流计算的常见应用场景如下:

  • ❑流式ETL:集成流计算现有的诸多数据通道和SQL灵活的加工能力,对流式数据进行实时清洗、归并、结构化处理。同时,对离线数仓进行有效补充和优化,为数据的实时传输提供可计算通道。
  • ❑流式报表:实时采集、加工流式数据,实时监控与展现业务和客户的各类指标,让数据化运营实时化。
  • ❑监控预警:对系统和用户的行为进行实时监测与分析,以及时发现危险行为。
  • ❑在线系统:实时计算各类数据指标,并利用实时结果及时调整在线系统的相关策略,在内容投放、无线智能推送等领域有大量应用。

2.4 批流一体

随着企业处理的数据量越来越大,单纯的流计算或批计算都不能满足其业务需求,且由于流计算和批计算使用不同的计算框架,往往需要企业具备多种数据处理架构的能力,投入更多人力成本。为了解决这个问题,业界提出流批一体的技术理念,即计算引擎同时拥有流计算的低延迟、批计算的高吞吐量和高稳定性,并且用同一套编程接口实现批计算和流计算并保证底层执行逻辑一致,进而保证处理过程和结果的一致性。Flink计算引擎对流批一体的概念落地起到了较大的推动作用。

流批一体主要体现在以下4个方面。

  • ❑统一元数据:无论是批计算还是流计算,面对的数据对象元数据保持统一。
  • ❑统一数据存储:使用同一套数据存储系统将对象存储、文件存储等进行统一,并提供多种协议供计算使用。
  • ❑统一计算引擎:离线计算和实时计算采用统一的计算引擎,并用同一种逻辑或代码覆盖两种场景,避免在多种计算引擎之间来回切换,增加学习和运维成本。
  • ❑统一语义:语义开发层的统一,从使用者的角度来思考设计,使数据开发过程便捷、低门槛、高效率。简单理解,统一语义可以分为3类:统一开发,如使用统一的SQL或SDK;基于业务模型或逻辑模型进行开发,如使用低代码或无代码进行开发;统一特征开发过程,如在流计算或批计算中实现AI工程化。

在流批一体技术理念提出后,Kappa架构走入主流视野。Kappa架构将流批整合,通过消息队列来进行数据缓存,将结果数据存储到键值数据库(HBase/Elasticsearch)或OLAP数据库中,供业务方实时访问分析数据开发工作者只需编写一套处理逻辑,即可保证数据的一致性,同时相对降低资源消耗和维护成本。

Flink+Kafka类型的Kappa架构如下图:

随着数据湖和Flink等大数据技术的快速发展,基于Flink+数据湖的Kappa架构成为建设流批一体的实时数仓的主流架构。

Flink+数据湖类型的Kappa架构如下图:

利用Flink CDC技术将全量和增量的原始数据写入ODS层,使用数据湖进行统一存储,后续只需利用Flink计算引擎编写一套代码对数据湖中的数据进行分层分域的数据计算,即可完成整个数据处理链路,保证数据的一致性,减少运维成本;同时,部分数据湖技术(如Iceberg)还可以直接对接Presto/Trino计算引擎,快速支持实时数据即席分析的场景。

2.5 在线查询

在线查询需要处理大规模的数据结果集,同时需要提供一些快速计算的能力,如条件过滤筛选、在线检索等能力,快速从大规模结果中筛选和检索出结果信息,并且支持高并发、低延迟的快速响应。这种能力批计算、流计算都不具备,而需要提供在线查询的能力。

在线查询主要用于数据结果的在线查询、条件过滤和筛选等,如数据检索、条件过滤等。根据不同的场景会有多种选择:如营销场景对响应延时要求高的,一般会采用缓存型的存储计算,如Redis、Tair等;对响应延时要求正常的,可以选择HBase和MySQL等;需要进行条件过滤、检索的,可以选择Elasticsearch等。企业一般对在线查询的需求比较旺盛,因而可能会有多套在线计算系统提供服务。

可见,在线查询其主要应用场景是OLTP类的简单的增、删、改、查、全文检索等相关操作。

2.6 即席分析

即席分析是指面对大规模的数据集,如何快速进行数据的多维交叉分析,其大部分是聚合型操作,如group by、sum、avg、count等。批计算有足够的灵活性,但耗时比较久,一些传统的关系型数据库以及数仓架构,在一定维度的场景下可以满足响应要求,但数据量受限。在数据应用中,分析类应用的占比一直不低,因此一些优秀的处理框架(如Impala、Kylin、ClickHouse和AnalyticDB等即席计算框架)逐渐发展起来。

即席分析主要用于分析型场景和经验统计。一般而言,企业80%的数据处理需求是在线查询和即席分析。根据维度的不同,有多种分析方式,提前固定计算的维度、根据需求进行任意维度的交叉分析(ad-hoc)是常见的场景。目前已有很多相应的产品、框架来支撑这方面的应用,如Kylin、Impala、ClickHouse、Hawk等。以上几种计算能力已经可以满足大多数数据处理的场景。如果你的数据处理涉及更复杂的参数和规则,可以利用机器学习或者深度学习算法。

针对即席分析的复杂场景,通过对时间、空间的权衡,即席分析常见的实现方式有两种。

  • ❑ROLAP(关系联机分析处理):以关系型数据库为核心,以关系型结构进行多维数据的表示和存储,结合星型模式和雪花模式实现。
  • ❑MOLAP(多维联机分析处理):基于多维数据组织的实现,以多维数据组织为核心,形成“立方块”的结构,通过对“立方块”进行各类处理来产生多维数据报表。

即席分析的常见应用场景如下:

  • ❑交互式数据分析:企业运营人员在日常工作中经常需要通过SQL从各个维度对当前业务进行分析,提供分析结果以便开展后续工作。离线计算的场景等待时间较久,用户体验不好,即席分析可以较好地规避这个问题。
  • ❑群体对比分析场景:在业务中经常会有A/B测试场景,针对不同的群体,从各个维度对比分析也是即席分析经常支撑的场景。

批计算、流计算、流批一体、在线查询、即席分析的区别见下表:

好了,本次内容就分享到这,欢迎大家关注《数据中台》专栏,后续会继续输出相关内容文章。如果有帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1985166.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

做空日经指数的策略与时机

一、市场背景分析 在全球股市的剧烈波动中,日本股市的表现尤为引人关注。日经225指数在经历一轮暴跌后,又出现了大幅反弹,这种剧烈的波动为投资者提供了做空日经指数的机会。近期,日本股市受到日元汇率波动、日本央行货币政策以及…

文章复现 创新点 代码改进跑通 深度学习

文章复现 创新点 代码改进跑通 深度学习 SCI代码复现 文章复现 数据处理、数据分析、算法、数据结构data structure、机器学习machine learning、深度学习deep learning。创新改进,算法提升 python环境配置 ,深度学习代码调试 、代码复现,py…

WebStorm格式化JSON,将一行很长的JSON展开

webstorm json格式化插件将一行很长的json展开 在WebStorm中,要展开很长的JSON行,可以使用内置的JSON格式化功能。 打开WebStorm,并打开包含JSON的文件。 选择JSON文件中的任意部分。 按下快捷键 CtrlAltL (Windows/Linux) 或 CmdAltL (Ma…

用4点结构标定3点结构的顺序

在行列可自由变换的条件下,平面上的4点结构只有16个 (A,B)---6*30*2---(0,1)(1,0) 让A分别是4a1,2,…,16,让B全是0。当收敛误差为7e-4,收敛199次取迭代次数平均值,得到 迭代次数 搜索难度 1 …

免费开源的高科技行业ERP解决方案

引言 协助高科技企业信息化转型升级,通过开源智造Odoo标准模块与拓展模块,实现精细化、数字化与智能化的管控,将线性供应链转变为智能供应网络,形成整合与集成化的管理系统,提高对市场的响应速度。 业务挑战 项目管控难…

PDF文档处理技巧:如何旋转 PDF 文档

你有没有遇到过一个PDF文档,有些页面是侧向的,而其他页面却显示正确?这可能会令人沮丧,尤其是在信息至关重要的情况下。好消息是,您可以通过旋转受影响的页面轻松解决此问题。本指南将重点介绍如何使用奇客PDF 旋转 PD…

进程无响应任务管理器关不掉解决办法

第一步:打开任务管理器——>详细信息 第二步:打开运行窗口 第三步:输入taskkillPID(PID在图一的位置上看)

c语言小知识点小计

c语言小知识点小计 1、运算符的优先级 运算符的优先级是和指针解引用*的优先级相同的,但在代码运行中执行顺序是从后往前的。因此下面代码 int a[10] {1,2,3,4}; int* arr a; printf("%d",*arr);//访问的值是2 //注意:printf("%d&qu…

​私有化地图离线部署详细方案

我们在《私有化地图离线部署整体解决方案》一文中,分享了不包含硬件的私有化部署整体解决方案。 现在,再为你分享一下从硬件配置、系统选型、系统部署到地图数据加载、导出和更新管理等一整套详细方案。 地图服务器与存储设备 全球私有地图离线部署对…

餐饮业的数字化突围:价格战下的转型与新生

原文链接:https://tecdat.cn/?p37241 餐饮业价格战升级了,越打越激烈。近日,各餐饮巨头也被迫纷纷下场。 “太二酸菜鱼客单价跌至七年前” “9.9元就可以点上海底捞的一份锅底” “必胜客推出人均20元的乐享店”…… 消费降级的时代潮水&am…

将 Tcpdump 输出内容重定向到 Wireshark

在 Linux 系统中使用 Tcpdump 抓包后分析数据包不是很方便。 通常 Wireshark 比 tcpdump 更容易分析应用层协议。 一般的做法是在远程主机上先使用 tcpdump 抓取数据并写入文件,然后再将文件拷贝到本地工作站上用 Wireshark 分析。 还有一种更高效的方法&#xf…

KVM安装与虚拟机中安装虚拟机教程

目录 一. 安装KVM 二. 图形化安装——虚拟机中安装虚拟机 一. 安装KVM 确保用root用户进入系统,如果已经是root登录的用户则不用做此步骤 查看ip连接终端 修改主机名用来区分 [rootlocalhost ~]# hostnamectl set-hostname kvm-server [rootlocalhost ~]# bash…

使用SpringBoot+Vue3开发项目(1)---- 设计用户注册和登录的接口及页面

目录 一.所用技术栈: 二.前端创建工程: 1.使用elementplus展开前端页面格式布局: 2.基于Vue3的使用来实现登录与注册: (1)定义数据模型: (2):model绑定表单&#xf…

WPF学习(9)-CheckBox复选框+RadioButton单选框+RepeatButton重复按钮

CheckBox复选框 CheckBox继承于ToggleButton&#xff0c;而ToggleButton继承于ButtonBase基类。 案例 前端代码 <StackPanel Orientation"Horizontal" HorizontalAlignment"Center" VerticalAlignment"Center"><TextBlock Text"…

Transformer学习之DETR

文章目录 1.算法简介1.1 算法主要贡献1.2 算法网络结构 2.损失函数设计2.1 二分图匹配(匈牙利算法)2.2 二分图匹配Loss_match2.3 训练Loss_Hungarian 3.网络核心模块3.1 BackBone模块3.2 空间位置编码(spatial positional encoding)3.2.1 输入与输出3.2.2 空间位置编码原理 3.3…

【教学类-74-01】袜子配对01(UIBOT图片背景填充白色)

背景需求&#xff1a; 前期用PS修图&#xff08;灰色背景变成白色背景&#xff09;&#xff0c;200张图片用了6个小时。 【教学类-73-02】20240805广口瓶&#xff08;宽口瓶&#xff09;02-CSDN博客文章浏览阅读744次&#xff0c;点赞17次&#xff0c;收藏20次。【教学类-73-…

鸿萌成功案例:Lenovo SystemX 3650M5 MT:5462 数据“起死回生”

鸿萌数据恢复中心&#xff0c;自 2003 年创立伊始&#xff0c;便凭借其出类拔萃的专业数据恢复技术&#xff0c;在形形色色、错综复杂的数据恢复情境中展露了令人叹服的强大实力&#xff0c;铸就了数不胜数的成功范例。涵盖的情形包括但不限于服务器突发故障、硬盘意外损毁、文…

AI 汹涌而至!三波冲击下将淘汰大部分程序员

作者&#xff1a;老余捞鱼 原创不易&#xff0c;转载请标明出处及原作者。 写在前面的话&#xff1a; 最近到处都能听到“人工智能会不会在不久的将来取代程序员”的争论。本人的观点为&#xff1a;人工智能将会取代程序员&#xff0c;本文将对此予以阐述。&#xff08;注&…

指针小课堂

目录 一.内存和地址 二.指针变量和地址 1.取地址操作符&#xff08;&&#xff09; 2.指针变量和解引⽤操作符&#xff08;*&#xff09; 2.1指针变量 2.2如何理解指针类型 2.3解引用操作符 2.4 指针的解引用 2.5.不同指针类型的运加减性质 2.5.1指针与整数相加&am…

写一个gradio录音的webui界面并展现波形图

如图下&#xff1a;这是需求 要创建一个 Gradio 录音的 Web UI 界面&#xff0c;你可以使用 Gradio 的 Audio 组件来实现。下面是一个简单的示例&#xff0c;展示了如何创建一个 Gradio 应用程序&#xff0c;其中包含一个录音按钮&#xff0c;用户可以录制音频并提交给服务器处…