大数据基础学习

目录

  • 一.什么是大数据
  • 二.数据处理技术分类(OLAP vs OLTP)
      • OLAP(Online Analytical Processing)
      • OLTP(Online Transaction Processing)
      • 区别
      • 联系
  • 三.储存的方式(列式 vs 行式)
      • 行式存储
      • 列式存储
      • 总结
  • 四.数仓
      • 集成数据
      • 主题导向
      • 非易失性
      • 时间变化
      • 数据仓库架构
  • 五.数仓分层
  • 六.ETL过程
      • 提取(Extract)
      • 转换(Transform)
      • 加载(Load)
  • 七.ELT
      • ELT的优势:
  • 八.流计算
      • 流计算的关键特征:
      • 流计算的组件:
      • 流计算的应用场景:

一.什么是大数据

大数据(Big Data)是指无法在合理时间内用传统数据库管理工具进行捕捉、管理和处理的庞大、复杂的数据集合。(3V特点)

  1. 体积(Volume):数据量巨大,从TB(太字节)到PB(拍字节)乃至更高。
  2. 速度(Velocity):数据以高速率产生和收集,包括实时数据流。
  3. 多样性(Variety):数据来自多种来源,包括结构化数据、非结构化数据和半结构化数据,如文本、图片、视频等。

二.数据处理技术分类(OLAP vs OLTP)

OLAP(Online Analytical Processing)

  • 定义:OLAP是一种用于快速分析多维信息的技术。它主要用于复杂查询、分析和报告,而不是简单的事务处理。OLAP数据库设计为优化数据仓库中的数据读取,支持复杂的分析操作和计算,如趋势分析、数据挖掘和预测模型。

  • 特点

    • 处理大量数据。
    • 优化用于查询和报告的复杂运算。
    • 数据结构通常是多维的(例如,数据立方体)。
    • 用于业务智能(BI)、数据分析和决策支持系统(DSS)。

OLTP(Online Transaction Processing)

  • 定义:OLTP是一种用于管理日常事务处理的技术。这类数据库设计用于快速、高效地处理大量简单的查询和事务,如插入、更新和删除数据。OLTP系统通常用于管理关键的业务数据,在零售、银行和其他需要处理大量事务的领域尤为重要。

  • 特点

    • 面向事务,处理大量简短的读写操作。
    • 数据模型通常是标准的关系模型,便于实时数据访问和修改。
    • 系统设计注重数据的一致性和完整性。
    • 响应时间短,支持多用户并发访问。

区别

  • 用途:OLAP用于分析和决策支持,而OLTP用于日常事务处理。
  • 查询类型:OLAP执行复杂的查询和分析,涉及大量数据;OLTP处理快速的、小规模的事务。
  • 数据更新:OLAP数据更新不频繁,主要用于读取;OLTP数据频繁更新。
  • 数据结构:OLAP倾向于使用多维数据结构;OLTP使用传统的关系数据模型。
  • 性能考量:OLAP优化了数据读取性能;OLTP优化了事务处理的速度和效率。

联系

  • 数据流动:数据通常从OLTP系统流向OLAP系统。即,OLTP系统收集和管理业务日常操作数据,然后这些数据被转移和转换(通过ETL过程:提取、转换、加载)到数据仓库中,供OLAP系统使用。
  • 互补关系:OLAP和OLTP通常在企业中共存,互相补充。OLTP系统支持日常业务操作,而OLAP系统支持基于这些操作数据的决策分析。

虽然它们服务于不同的需求,但在实际应用中,OLAP和OLTP是相互关联和依赖的。随着技术的发展,一些现代数据库系统和平台开始提供所谓的HTAP(Hybrid Transaction/Analytical Processing)能力,旨在同时处理OLTP和OLAP工作负载,以满足更复杂和动态的企业需求。

三.储存的方式(列式 vs 行式)

选择哪一种取决于应用场景、性能要求和数据处理的特性

行式存储

在行式存储数据库中,表中的一行数据被存储为一个连续的单元。这意味着构成记录的所有字段都是连续存放的。当数据库处理事务时,如插入、更新或删除操作,它通常需要访问表中的完整记录。行式存储优化了这类操作,因为它能够快速读写表中的单个记录。

优点

  • 优化了事务处理(如OLTP系统):因为处理事务时通常需要访问完整的记录。
  • 适合写密集型应用:由于数据是按行顺序存储的,插入和更新操作通常更高效。

缺点

  • 对于需要访问大量数据的复杂查询和分析操作不够高效,尤其是当查询只涉及表中少数几列时。

列式存储

列式存储数据库将表中的数据按列而非行来存储。这意味着同一列中的数据是连续存储的,而不是将整行数据存储在一起。这种存储方式特别适合于分析和报告应用,因为它允许数据库快速读取表中的特定列,而不是加载整个行。

优点

  • 优化了分析查询(如OLAP系统):因为分析查询通常只涉及表中的几列,列式存储可以显著提高这类查询的效率。
  • 压缩率高:由于同一列的数据类型相同,列式存储可以采用更有效的压缩技术,减少存储空间需求。
  • 高效的聚合操作:计算聚合函数(如SUM、AVG)时,只需读取相关列,不需要加载整行数据。

缺点

  • 写操作可能比行式存储更慢:每次更新数据时,可能需要重写整个列,这在某些情况下会导致性能下降。
  • 不适合事务密集型应用:如果应用需要频繁更新小规模的数据,列式存储可能不如行式存储高效。

总结

  • 行式存储更适合事务处理和需要频繁读写完整记录的应用场景(如OLTP系统)。
  • 列式存储更适合分析和报告,尤其是当操作主要涉及读取表的特定几列而非整行数据时(如OLAP系统)。

四.数仓

数据仓库(Data Warehouse)是用于存储、管理和分析大量数据的集中式系统。它从各种异构数据源收集数据,进行清洗、转换和集成,然后将其存储在一个统一的平台上,以支持复杂的查询、分析、报告和决策制定。数据仓库的设计旨在优化查询和分析操作的效率,而不是处理日常的事务性工作负载。

集成数据

数据仓库集成了来自企业内外的多个数据源,包括关系数据库、文件系统、在线事务处理(OLTP)系统、CRM系统等。数据集成过程包括数据清洗、去重、转换和标准化,确保存储在数据仓库中的数据质量和一致性。

主题导向

数据仓库的设计通常是主题导向的,意味着数据是围绕企业的关键主题(如客户、产品、销售)组织的。这种方式有助于用户根据业务需求更容易地理解和查询数据。

非易失性

数据仓库中的数据是非易失的,一旦数据被加载到数据仓库中,就不会频繁地改变。数据仓库保留历史数据,使得用户可以进行时间序列分析和趋势预测。

时间变化

数据仓库中的数据通常包括时间维度,使得用户可以执行时间序列分析和查看数据随时间的变化。时间维度是进行历史分析和趋势预测的关键。

数据仓库架构

数据仓库架构一般包括以下几个核心组成部分:

  • 数据源:企业内外的多种数据源。
  • ETL过程(提取、转换、加载):用于从数据源提取数据,进行必要的清洗和转换,然后加载到数据仓库中。
  • 数据仓库数据库:集中存储经过转换和集成的数据。
  • 数据访问工具:包括查询工具、报告工具和分析工具,用于访问、展示和分析数据仓库中的数据。

五.数仓分层

(见博客)
在这里插入图片描述

六.ETL过程

提取(Extract)、转换(Transform)、加载(Load)
ETL过程是数据仓库和大数据处理中的一个核心概念,它代表提取(Extract)、转换(Transform)、加载(Load)三个步骤。ETL过程是将数据从源系统转移到目标系统(如数据仓库、数据湖或其他数据存储系统)的过程,在此过程中对数据进行清洗、标准化和聚合等处理,以便于后续的查询和分析。下面详细解释ETL的每个步骤:

提取(Extract)

  • 定义:提取是ETL过程的第一步,涉及从各种数据源收集数据。这些数据源可以是关系数据库、文件、日志、API、在线服务等。
  • 目的:目的是高效且准确地获取数据,为后续的转换和加载步骤做准备。
  • 挑战:挑战包括处理不同数据源的连接问题、数据格式不一致性,以及大数据量导致的性能问题。

转换(Transform)

  • 定义:转换是对提取出的数据进行处理的步骤,包括清洗、标准化、去重、验证和聚合等操作。
  • 目的:目的是改善数据质量,确保数据在目标系统中的一致性和准确性。
  • 操作示例
    • 清洗:移除不完整、不正确或无关紧要的数据。
    • 标准化:确保所有数据遵循相同的格式和度量单位。
    • 去重:消除重复记录。
    • 数据类型转换:将文本、日期等格式统一转换为目标系统所需的格式。
    • 聚合:对数据进行汇总或计算摘要统计信息。

加载(Load)

  • 定义:加载是ETL过程的最后一步,指的是将转换后的数据导入目标系统(如数据仓库)。
  • 模式
    • 全量加载:每次ETL执行时,都将整个数据集导入目标系统。
    • 增量加载:只将自上次ETL执行以来发生变化的数据导入目标系统。
  • 挑战:挑战包括维持目标系统的性能和稳定性,尤其是在处理大规模数据时。

七.ELT

ELT(Extract, Load, Transform)是与ETL(Extract, Transform, Load)相对的数据处理流程。在ELT流程中,数据首先被提取(Extract)出来,然后直接加载(Load)到目标数据存储系统(通常是数据湖或者现代化的数据仓库),之后在目标系统内部进行转换(Transform)处理。

ELT的优势:

  1. 灵活性:由于原始数据被保留在目标系统中,可以在之后根据需要进行多次不同的转换。

  2. 性能:特别是在云计算环境中,ELT可以充分利用云服务的可扩展性和强大的处理能力,对大规模数据集进行高效处理。

  3. 实时性:ELT流程可以更快地将数据移入目标系统,从而支持接近实时的数据分析需求。

  4. 成本效益:ELT减少了对专门ETL工具的依赖,以及相关的硬件和维护成本,尤其是当使用云基础设施时。

八.流计算

流计算(Stream Processing)是一种计算模型,旨在处理和分析实时数据流。与传统的批处理不同,流计算不需要等待数据收集完整的数据集后再进行处理,而是随着数据的生成和传入立即对其进行处理。流计算架构被设计为高吞吐量和低延迟,可以连续不断地处理数据。

流计算的关键特征:

  1. 实时性:流计算系统通常需要在毫秒到秒级的时间内处理数据,并提供即时的处理结果。

  2. 持续性:流计算是一个持续的过程,数据源源不断地流入系统。

  3. 可扩展性:流计算平台通常支持水平扩展,可以通过增加更多的计算资源来处理更大的数据流。

  4. 容错性:流计算系统能够处理节点故障或数据丢失,能够保证数据处理的正确性。

流计算的组件:

  • 数据源:实时数据流的起点,如传感器数据、用户活动日志、在线交易信息等。
  • 流处理引擎:核心组件,负责数据流的处理,包括过滤、聚合、连接、转换等操作。
  • 数据存储:处理后的数据可以被存储在数据库、数据湖、或其他存储系统中供后续分析。
  • 查询和可视化:实时查询和数据可视化工具帮助用户理解流数据。

流计算的应用场景:

  • 实时监控:例如,监控金融市场的交易活动或监测IT基础设施的健康状况。
  • 实时分析:对社交媒体流量进行情感分析或品牌监测。
  • 物联网:处理从各种设备传入的大量实时数据,如温度、湿度和位置数据。
  • 实时推荐:基于用户的实时行为给出个性化推荐。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Vue】webpack polyfilling 报错

1. 出现问题描述 npm run serve 项目时报错 ERROR Failed to compile with 1 error 10:33:22 ├F10: AM┤ error in ./src/router/routes.js Module not found: Error: Cant resolve path in /U…

Harmony鸿蒙南向驱动开发-SDIO

SDIO(Secure Digital Input and Output)由SD卡发展而来,与SD卡统称为MMC(MultiMediaCard),二者使用相同的通信协议。SDIO接口兼容以前的SD卡,并且可以连接支持SDIO接口的其他设备。 运作机制 …

Vue的学习之旅-part6-循环的集中写法与ES6增强语法

Vue的学习之旅-循环的集中写法与ES6增强语法 vue中的几种循环写法for循环for in 循环 for(let i in data){}for of 循环 for(let item of data){}reduce() 遍历 reduce( function( preValue, item){} , 0 ) ES6增强写法 类似语法糖简写对象简写函数简写 动态组件中使用 <kee…

MySQL 主从复制部署(8.0)

什么是主从数据库 主从数据库是一种数据库架构模式&#xff0c;通常用于提高数据库的性能、可用性和可伸缩性。 它包括两种类型的数据库服务器&#xff1a; 1&#xff09;主数据库&#xff08;Master&#xff09;&#xff1a;主数据库是读写数据的主要数据库服务器。所有写操…

【数据结构】单链表(一)

上一篇【数据结构】顺序表-CSDN博客 我们了解了顺序表&#xff0c;但是呢顺序表涉及到了一些问题&#xff0c;比如&#xff0c;中间/头部的插入/删除&#xff0c;时间复杂度为O(N);增容申请空间、拷贝、释放旧空间会有不小的消耗&#xff1b;增容所浪费的空间... 我们如何去解…

IOS虚拟键盘弹出后,弹窗的按钮点击不起作用,不会触发click事件

背景 讨论区项目的回复框&#xff0c;使用的是Popup和TextArea做&#xff0c;布局如下图&#xff0c;希望键盘弹出时候&#xff0c;回复框可以紧贴键盘&#xff0c;这点实现起来比较简单&#xff0c;监听resize事件&#xff0c;动态修改popup的这题内容的top值即可&#xff0c…

ONERugged车载平板电脑厂家丨工业车载电脑优势体现丨3年质保

作为现代社会中必不可少的出行工具&#xff0c;汽车不仅仅是代步工具&#xff0c;更是我们生活中的重要一部分。而在如此多功能的汽车内&#xff0c;一款高可靠性、适应不同行业应用的车载平板电脑成为了当下的热门选择。ONERugged车载平板电脑以其卓越的品质和强大的功能而备受…

自动化 单元测试Test

XCTest测试框架(单元测试XCTests、性能测试XCPPerformanceTests、用户界面测试XCUItests) 单元测试XCTests&#xff1a;测试应用中事件或逻辑是否预期工作。 用户界面测试XCUItests&#xff1a;测试用户与应用的UI交互(如点击按钮、滑动屏幕)。 性能测试XCPPerformanceTests&am…

电池电量监测系统设计 单片机+LabVIEW+Matlab+Protues+Keil程序

目录 前言 提供 软件 系统展示 1.放电试验及其处理 2.硬件系统原理图 3.下位机程序 4.显示 5.上位机界面 6.上位机程序 7.文档 资料下载地址&#xff1a;电池电量监测系统设计 单片机LabVIEWMatlabProtuesKeil程序 前言 这套系统首先使用Matlab分析获得了电压…

【opencv】示例-essential_mat_reconstr.cpp 从两幅图像中恢复3D场景的几何信息

导入OpenCV的calib3d, highgui, imgproc模块以及C的vector, iostream, fstream库。定义了getError2EpipLines函数&#xff0c;这个函数用来计算两组点相对于F矩阵&#xff08;基础矩阵&#xff09;的投影误差。定义了sgn函数&#xff0c;用于返回一个双精度浮点数的符号。定义了…

系统架构设计图

首先明确应用架构的定义&#xff0c;从百度百科上即可了解到何为应用架构&#xff1a; 应用架构&#xff08;Application Architecture&#xff09;是描述了IT系统功能和技术实现的内容。应用架构分为以下两个不同的层次&#xff1a; 企业级的应用架构&#xff1a;企业层面的应…

git bash用法-批量修改文件名

在win系统上安装git bash可以使用命令行模式操作&#xff0c;比较方便 1.原始文件名 2.代码 for file in *3utr*; do mv "$file" "$(echo "$file" | sed s/3utr/5utr/)"; done3.修改后的文件名

基于FPGA的HDMI设计导航页面

FPGA使用HDMI更多时候用于传输图像数据&#xff0c;并不会传输音频数据&#xff0c;因此以下文章均采用DVI接口协议&#xff0c;HDMI与DVI的视频传输协议基本一致&#xff0c;区别也很小。 首先需要了解HDMI的来源&#xff0c;以及物理接口类型以及引脚信号&#xff0c;最后对几…

自动化测试-web(弹窗/滚动条/鼠标/等待等操作)

一、弹窗 为什么要处理弹窗&#xff1f; 如果页面操作过程中&#xff0c;有弹窗出现&#xff0c;不处理&#xff0c;无法继续对页面操作。 弹窗类型&#xff1a; js原生弹窗&#xff1a; 警告框、输入框、提示框&#xff0c;这些必须处理 如何处理&#xff1a; 1&#xff0…

HarmonyOS实战开发-设备管理合集(非系统特性)

介绍 本示例集合设备管理相关&#xff08;非系统特性&#xff09;不需要复杂功能展示的模块&#xff0c;展示了各个模块的基础功能&#xff0c;包含&#xff1a; ohos.batteryInfo (电量信息)ohos.charger (充电类型)ohos.deviceInfo (设备信息)ohos.power (系统电源管理)oho…

Windows上面搭建Flutter Android运行环境

Flutter Android环境搭建 电脑上面安装配置JDK电脑上下载安装Android Studio电脑上面下载配置Flutter Sdk &#xff08;避坑点一&#xff09;下载SDK配置对应的环境变量 到path 电脑上配置Flutter国内镜像运行 flutter doctor命令检测环境是否配置成功创建运行Flutter项目&…

openssl3.2 - exp - zlib

文章目录 openssl3.2 - exp - zlib概述笔记命令行实现程序实现备注 - 压缩时无法base64压缩时无法带口令压缩实现 - 对buffer进行压缩和解压缩测试效果工程实现main.cppCOsslZlibBuffer.hCOsslZlibBuffer.cpp总结END openssl3.2 - exp - zlib 概述 客户端和服务端进行数据交换…

数据库的负载均衡,高可用实验

一 高可用负载均衡集群数据库实验 1.实验拓扑图 2.实验准备(同一LAN区段)&#xff08;ntp DNS&#xff09; 客户端&#xff1a;IP&#xff1a;192.168.1.5 下载&#xff1a;MariaDB 负载均衡器&#xff1a;IP&#xff1a;192.168.1.1 下载&#xff1a;keepalived ipvsadm I…

鸿蒙实战开发-如何实现选择并查看文档与媒体文件

介绍 应用使用ohos.file.picker、ohos.multimedia.mediaLibrary、ohos.file.fs 等接口&#xff0c;实现了picker拉起文档编辑保存、拉起系统相册图片查看、拉起视频并播放的功能。 效果预览 使用说明&#xff1a; 在首页&#xff0c;应用展示出最近打开过的文档信息&#xf…

【JavaWeb】Servlet与过滤器

目录 ServletServlet做了什么JSP与Servlet的关系主要Servlet API介绍如何创建ServletServlet中主要方法ServletRequestServletResponseServletConfig Servlet生命周期Servlet创建Servlet部署与运行 ServletConfig类ServletConfig类的三大作用 ServletContext类ServletContext类…