大数据技术系列:图解大数据平台开发

news2025/1/24 5:23:20

导言

在前面的文章《「大数据技术体系」学习实践导览》中,概要式的梳理了大数据平台的业务目标,大数据平台的架构框架,大数据平台中常用的技术及工具,数据治理四方面的内容,算是对自身所了解大数据知识体系的抛砖引玉。
~~
今天想以自身的经历和实践经验,分享一下大数据平台的技术生态、开发管理与应用架构。为求简明扼要,内容主要以图示概览为主,对于其中更多概念在此不进行详解,因为这决然不是几篇文章的事,过程和附录会给出一些学习建议。

大数据平台的技术生态

在这里插入图片描述

可以看到

  • 首先在企业内确定要进行采集的数据源,包括关系数据库存储的结构化数据;以服务端日志、用户端行为埋点和IOT上报数据为主的半结构化数据;文档、图片、视频和音频等非结构化数据。
  • 通过离线采集工具(如Sqoop采集关系数据库数据……)、实时采集工具(如Flume采集日志数据……)、数据库增量采集工具(Canal……)采集上述数据源,kafka可以作为实时采集(增量采集)的消息队列服务。
  • 将离线数据存储至分布式文件系统HDFS,应用于离线数仓服务;将实时数据存储至Kafka,应用于实时数仓服务。
  • 使用MapReduce(基于硬盘读写,目前已经很少用)、Spark Core(基于内存RDD,目前离线计算的主流框架)进行数据离线计算,使用Flink进行数据的实时计算(目前实时计算的主流框架)。
  • 上述计算引擎的资源调度系统都是Yarn。
  • 利用OLAP系统对数据进行结构化存储和关联查询,OLAP系统分为ROLAP(关系型联机分析处理:如Hive、Impala、Presto、ClickHouse、Doris)、MOLAP(多维联机分析处理:如Kylin、Druid)系统。
  • 离线OLAP不支持数据的实时访问,实时OLAP系统也有其场景缺陷,可将应用数据同步至HBase、MySQL、ElasticSearch……这些常用的数据库进行查询服务。
  • 数据可视化除了自研系统外,可采用开源的数据可视化系统,如国外的Superset,国内的DataEase。
  • 大数据平台的很多工具都采用Zookeeper作为分布式协调服务,比如HDFS、Kafka、HBase……
  • 在数据层层流转和计算的过程中少不了数据任务调度系统,主流的任务调度系统有Oozie、Azkaban、Airflow、DolphinScheduler。
  • 数据治理则是使数据开发产生商业价值的系统工程,包括数据梳理与建模、元数据管理、数据标准管理、主数据管理、数据质量管理、数据安全管理、数据集成与共享。

更多大数据生态及工具说明请参见

https://github.com/yaocoder/Architect-CTO-growth/blob/master/大数据体系/技术视角/大数据技术体系导览.md

数据开发的端到端流程

1.png

数据开发的核心——数据仓库

如果说技术架构和技术工具是大数据平台的骨骼支撑,而基于数据仓库理论的数据建模则是大数据平台的大脑和血肉,决定了大数据平台的业务应用。

数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。—— William H.Inmon

~~
对于绝大多数企业和开发人员来讲,数据库的了解和应用已经比较普及。但是数据仓库确是神秘和陌生的,看一下他们的区别。

功能数据库(OLTP)数据仓库(OLAP)
数据范围当前状态数据存储完整、反应历史变化的数据
数据变化支持频繁的增删改查可增加、查询,无更新、删除操作
应用场景面向业务交易过程面相分析、侧重决策分析
处理数据量频繁、小批次、高并发、低延迟非频繁、大批量、高吞吐、有延迟
设计理论遵循数据库三范式、避免冗余反范式、适当冗余
建模方式实体关系建模维度建模

数仓分层

优秀可靠的数仓体系,往往需要清晰的数据分层结构,即要保证数据层的稳定又要屏蔽对下游的影响,并且要避免链路过长。结合这些原则、行业标准及长期经验,我们将分层进行以下统一定义:
数仓模型.png

数仓开发的端到端流程

2.png

更详细数仓构建的知识请参见

https://github.com/yaocoder/Architect-CTO-growth/tree/master/大数据体系/技术视角/数据仓库

系统架构抽象与数据流水线

1.png

上图展示了我们所实践的大数据平台的系统架构抽象,也简单呈现示意了业务相关的数据流水线。

数据流水线

在绝大部分企业的大数据平台建设中,数据流水线的建设都是核心工作之一。数据流水线系统承担着将数据从原始形态转换到用户与业务应用可以直接使用的形态的整个过程。在绝大多数时候,这些工作必须是自动且高度可靠的,并能够实时确保数据的正确性。数据流水线是数据驱动的重要环节,也是大数据平台建设的重要过程。
 
可看到图中的两条主线(离线数仓和实时数仓),从各种数据源采集原始数据,采集后可以将数据存放到HDFS中进行离线数仓的应用,也可以输入Kafka之类的流处理系统中进行实时数仓的应用。

数据治理

上图中还有一部分重要内容——数据治理。很多企业会把大数据平台的构建仅局限在技术视角,这样造成大数据平台的价值有限。而数据治理范畴则很广泛,包含所有为提高数据质量而展开的技术、业务和管理活动。
 
数据治理的最终目标是提升数据利用率和数据价值,通过有效的数据资源管控手段,实现数据的看得见、找得到、管得住、用得好,提升数据质量和数据价值。企业数据治理非常必要,它是企业实现数字化转型的基础,是企业的一个顶层策略,一个管理体系,也是一个技术体系,涵盖战略、组织、文化、方法、制度、流程、技术和工具等多个层面的内容。

大数据体系业务视角的相关知识请参见

https://github.com/yaocoder/Architect-CTO-growth/tree/master/大数据体系/业务视角

希望大家关注我的 GitHub 开源项目

https://github.com/yaocoder/Architect-CTO-growth

包括技术实践及手册撰写:涵盖DevOps,云原生技术,大数据,人工智能,高并发&高性能&高可用服务等,后续会逐渐细化一些知识点。一起学习成长!如果对你有用,也请星标一下O(∩_∩)O

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

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

相关文章

第十四届蓝桥杯集训——JavaC组第十二篇——while循环(循环四要素)

第十四届蓝桥杯集训——JavaC组第十二篇——while循环(循环四要素) 前言 百度解析:以环形、回路或轨道运行;沿曲折的路线运行;特指运行一周而回到原处,再转。或说反复地连续做某事。 那么,在程序中依然是连续重复的按照一定的规则去执行某事。 程序计数器…

如何把视频分屏?教你轻松学会视频分屏

分屏视频该怎么操作?不知道大家有没有看到过这样一个视频,就是一个视频里有两个或者有更多个画面,我们在观看的时候可以同时看好几个画面。其实这就是分屏视频,在一个页面中加入多个画面。这样的视频是不是既好玩又炫酷呢&#xf…

尚硅谷Promise笔记

文章目录一、Promise介绍与基本使用1-1.初体验之promise封装ajax请求1-2.Promise对象状态属性PromiseState的值有三个1-3.Promise对象状态属性PromiseResults二、Promise API2-1.Promise构造函数Promise(excutor){}2-2.Promise.prototype.then 方式:(onResolved,onR…

App 黑白化技术实践

前言 很高兴遇见你~ 最近打开各大 App 会发现它们都做了黑白化,如下支付宝的处理: 可以看到应用设置了全局灰色调,表达了一种对逝者的哀悼,非常的应景和人性化。作为程序猿,我们来探索一下它从技术角度是怎么实现的。…

[附源码]Python计算机毕业设计SSM基于java旅游信息分享网站(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

汇编语言第2章—寄存器

8086CPU有14个寄存器,分别是:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。2.1 通用寄存器 8086CPU的所有寄存器都是16位的,可以存放两个字节。AX、BX、CX、DX这4个寄存器通常用来存放一般性的数据,称为通用…

【Spring】AOP记录日志

我的aop记录日志,可以记录:【 操作类型、操作描述、参数、登录项目的用户ip】 当然记录什么靠你自己决定。 一.自定义一个注解 Target({ElementType.METHOD,ElementType.PARAMETER}) Retention(RetentionPolicy.RUNTIME) Documented public interface A…

两位前阿里 P10 的成长经历的启发

目录 汤峥嵘的成长经历 关键节点一:到美国留学 关键节点二:美国工作十年 关键节点三:八年阿里时光 关键节点四:加入途牛和 VIPABC 毕玄的成长经历 关键节点一:小公司里脱颖而出 关键节点二:加入淘宝…

FineReport数据分析教程- 图表刷新接口

1. 概述 1.1 预期效果 点击按钮可以刷新普通报表或决策报表中的图表,以普通报表为例,效果如下图所示: 1.2 实现思路 通过FR.Chart.WebUtils.getChart("chartID").dataRefresh()获取要刷新的图表对象,其中chartID为图表…

程序员如何写一份更好的简历

简历中的常见错误 1. 信息过多,缺乏重点 信息过多的常见表现是十几行的技能列表, 我举一个血淋淋的例子: 20 行的技能列表,这位求职者开始就把自己了解的所有工具都列出来,希望能够突显自己的经验和学习能力&#xf…

pytorch基础操作(五)多层感知机的实现

1、多层感知机 1、激活函数的引入 这个多层感知机有4个输⼊,3个输出,其隐藏层包含5个隐藏单元。输⼊层不涉及任何计算,因此使⽤此⽹络产⽣输出只需要实现隐藏层和输出层的计算。因此,这个多层感知机中的层数为2。注意&#xff0…

小米盒子为什么搜不到电视家?电视安装包解析错误解决方案

不少的朋友在小米电视盒子上安装了美家市场软件商店后,却发现在市场里面没法安装想要的电视盒子直播软件,这是怎么回事呢?其实大部分原因是电视盒子机制的问题限制了安装,导致部分品牌电视盒子装软件时会弹出“无法安装”的提示。…

Mysql双主整理

目录 1. Mysql binlog参数配置 2. Mysql binlog查看详细内容 3. Mysql双主搭建 4. Mysql双主解决数据回环 4.1 双主同步测试一 4.1.1 测试总结 4.2 双主同步测试二 4.2.1 测试总结 4.3 双主同步测试三 4.3.1 测试总结 1. Mysql binlog参数配置 log-binmysql-bin 打…

水果FLStudio21.0.0软件最新版有哪些新增功能变化?

FL Studio(水果软件)21 引入更快、更精确的音频编辑、改进的内容发现、对 DAW 情绪的控制以及更多鼓舞人心的创意工具。FL Studio是一款功能非常强大的音乐创作编辑软件它就是FL Studio(水果软件)。使用FL Studio中文版可以轻松帮我们制作自己的音乐唱片,拥有强大且…

【ROS】HelloWord简单实现

C实现 1. 创建工作空间并初始化 创建工作目录demo01_ws,并在该文件夹下创建src文件夹 mkdir -p demo01_ws/src进入到该目录下 cd demo01_ws/初始化 catkin_make这时在demo01_ws目录下除了src文件夹外,多处了两个文件夹。 ![在这里插入图片描述](htt…

数字化门店转型| 水疗会所管理系统| 小程序搭建

水疗会所与沐足采耳、洗浴按摩等都属于休息享受型服务,是不少中年人的选择,一天的压力可以得到缓解,同时客单价一般在几百元左右,在水疗会所里可以洗澡蒸桑拿、桌游、乒乓球等,同时随着近些年来生活压力逐渐加大&#…

【C语言学习】详解二级指针

在学习数据结构时,通常会遇到调用函数无法对主函数中的全局变量进行有效的更改操作,这时我们就需要指针,但二级指针对于初学者而言有着一定的学习难度,本文通过代码结合实验调试来详细说明二级指针。 如果一个指针指向另一个指针&…

[附源码]Node.js计算机毕业设计高校图书服务系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

Atcoder 前缀和优化DP Candies

Candies - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 思路: 考虑DP 状态设计: 首先,因为是线性DP,dp[i]是必不可少的 然后去考虑一下决策,看看是什么东西影响了决策 对于第 i 个位置&#xf…

stm32f767自举

仅作笔记 一,自举。 在M0,M3,M4内核中,是通过boot0和boot1两个引脚的电平组合来确定启动地址的,启动的介质可以是系统存储器,SRAM,主Flash等。 在M7内核中,是通过boot0的电平加 Fla…