首页 > 其他分享 >大数据数仓理论1.1-离线

大数据数仓理论1.1-离线

时间:2024-03-29 17:29:05浏览次数:28  
标签:数仓 存储 1.1 压缩 离线 Hive 文件格式 数据 分区

分区

  • 静态分区

        内存将划分为多个区域,每个区域对应一个分区,当程序访问内存时系统将为其分配一个固定大小的分区;

        优点:简单易于管理

        缺点:浪费资源,内存碎片化积多

  • 动态分区        

        内存会划分为不同大小的分区,程序访问时自动分配合适大小的分区;

        优点:灵活,空间最大化;

        缺点:管理复杂,需要时间匹配合适的分区,时间延迟;

内外表区别

内部表

  • 存储:数据库管理系统内部的表,数据和表结构都在数据库中;
  • 访问:直接通过SQL工作;
  • 删除:元数据,原始数据
  • 建议:测试

外部表

  • 存储:数据库管理系统之外的表,数据通常存储再外部文件:
  • 访问:需要外部表定义才可以访问;
  • 删除:元数据
  • 建议:生产环境

HiveSQL执行流程(==>)

查询解析查询优化元数据查询任务分配任务执行返回结果

HiveSQL中小文件处理

        处理hiveSQL底层原理MR,小文件在于map阶段将数据划分若干分,Reduce合并输出的小文件;

缺点:小文件过多浪费资源,降低效率

解决:设定条件,按照任务输出文件大小的平均值作为阈值,若大于这个阈值将独立创建一个文件继续工作;

开窗函数

  • 聚合函数
sum求和avg平均值count计数max最大min最小
  • 分析函数
lead下一条字段数据
lag上一条字段数据
first_value第一条字字段数据
last最后一条字段数据
  • 顺序函数
rank不连续可跳
dense_rank不连续不跳
row_number连续不跳

Hive4个by

  • order by  全局排序
  • sort by    排序
  • distribute by  分区
  • cluster by  分区字段名和排序字段名相同进行简化

hive文件格式和压缩

  • Hive 文件格式

  1. 文本文件格式:Hive 支持基本的文本文件格式,如 CSV、TSV 等。这些格式易于查看和编辑,但不适合大规模数据处理,因为它们没有压缩和列式存储的优势。

  2. 序列文件格式:序列文件是一种二进制文件格式,可以提高数据的读写效率。它支持数据压缩,适合大规模数据的存储和处理。

  3. ORC 文件格式(Optimized Row Columnar):ORC 是一种列式存储格式,可以提供更好的查询性能和压缩比率。它适用于大型数据集和复杂查询。

  4. Parquet 文件格式:Parquet 也是一种列式存储格式,与 ORC 类似,可以提供高性能查询和压缩优势。Parquet 格式通常用于数据仓库和大数据分析场景。

  • Hive 压缩方式

  1. Snappy 压缩:Snappy 是一种快速压缩/解压缩算法,可以提供较快的压缩速度和相对较好的压缩比率。在 Hive 中,Snappy 压缩常用于中等大小的数据集。

  2. Gzip 压缩:Gzip 是一种通用的压缩算法,在 Hive 中也可以使用。Gzip 压缩率较高,但解压缩速度较慢,适合对数据进行长期存档。

  3. LZO 压缩:LZO 是一种较快的压缩算法,可以提供高速的压缩和解压缩性能。LZO 压缩在 Hive 中可以用于需要快速数据访问的场景。

数据倾斜

  • Group by 

原因:一个key值或者多个key值对应的数据量超过了其他key值对应的数据,导致大量的key值数据在reduce阶段聚合,该reduce所需要的时间高于其他reduce任务时间,产生数据倾斜;

        解决:

  1. map-side :在map阶段部分聚合操作再执行后续任务;
  2. Skey-groupby:整个业务执行两次MR任务,第一个MR任务通过随机数先聚合;第二个MR通过指定的字段进行处理;          
  •  JOIN   

原因:在关联表的时候字段分布不均匀,导致数据倾斜因素

解决:map-join   只有map阶段没有reduce阶段;

        

拉链表意义以及用途

        拉链可以理解为数据模型,防止海量数据中对其无休止的存储,浪费极大空间;

        优点:可以满足获取历史数据状态并减少空间浪费

        用法:增加两个字段StartTime和EndTime,如:某App登录系统,后台记录用户的登录信息,采用拉链式,一个用户共两条数据来记录,第一条记录历史数据,第二条记录当日的数据。

  

标签:数仓,存储,1.1,压缩,离线,Hive,文件格式,数据,分区
From: https://blog.csdn.net/2201_75311251/article/details/137125324

相关文章

  • 深入解析实时数仓Doris:三大数据模型详解
    码到三十五:个人主页心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得!目录一、基本概念二、Aggregate模型导入数据聚合三、Unique模型四、Duplicate模型五、数据模型的选择建议一、基本概念在Doris中,数据以表(Table)的形式进行逻辑上的......
  • Bootloader/IAP零基础入门(1.1) —— 设计一个Bootloader引导进入APP的程序,包含中断向量
    前言(1)如果有嵌入式企业需要招聘湖南区域日常实习生,任何区域的暑假Linux驱动/单片机/RTOS的实习岗位,可C站直接私聊,或者邮件:[email protected],此消息至2025年1月1日前均有效(2)在上一章节中,我们详细介绍了如何让Bootloader引导进入APP程序。但是上一章节的工程是无法使用......
  • 数仓 - [04] 数仓分层
        数仓分层是一种将数据仓库按照不同的层级进行组织和管理的方法。每个层级具有不同的功能和目的,旨在支持数据分析、报告和决策等不同的业务需求。 一、数仓分层的意义和目的  数仓分层的主要目的是实现数据的高效访问和分析,提高数据的可用性和性能,同时提供更好的灵......
  • 数仓 - [03] 拉链表
      拉链表是一种特殊的数据结构,其应用场景十分广泛,主要如下:1、监控系统:拉链表可以完整地记录系统的运行状态,方便进行监控和分析。2、金融交易:在金融领域,拉链表可以记录每个交易的时间戳、交易金额、交易类型等信息,从而实现对金融风险的监控和控制。例如,可以通过拉链表查询某......
  • 说说 HTTP1.0/1.1/2.0 的区别?
     一、HTTP1.0HTTP协议的第二个版本,第一个在通讯中指定版本号的HTTP协议版本HTTP1.0 浏览器与服务器只保持短暂的连接,每次请求都需要与服务器建立一个TCP连接服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求简单来讲,每次与服务器交互,都需要新......
  • Linux centos7离线搭建FTP
    1、下载、安装ftp下载ftp安装包,可以从rpm下载站搜索合适的版本,使用wget命令下载。wgethttps://mirrors.aliyun.com/centos/7/os/x86_64/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm安装:rpm-ivhvsftpd-3.0.2-28.el7.x86_64.rpm2、配置ftp2.1、创建用户、授权目录#创建......
  • openEuler20.03操作系统上安装部署MogDB2.1.1
    openEuler20.03操作系统上安装部署MogDB2.1.1本文出处:https://www.modb.pro/db/378319openEuler操作系统上安装mogdb:下载openEuler镜像文件:openEuler-20.03-LTS-x86_64-dvd.iso可以到各镜像源网站下载:例如:清华源下载地址:https://mirrors.tuna.tsinghua.edu.cn/openeule......
  • 部署elementPlus离线版本
    最近项目需要离线开发,不能联网查一些组件的api,于是决定搞一个离线版的文档一、下载官方文档下载地址github地址gitee地址选择版本直接下载压缩包二、下载live-server插件全局下载live-server插件npmilive-server-gvscode下载三、运行在文件目录下......
  • [nacos] 基于Docker安装Nacos(2.1.1)
    0序环境信息centos:7.9docker:25.0.4nacos-server:2.1.11安装步骤(nacos/nacos-server镜像版)Step1拉取镜像dockerpullnacos/nacos-server:v2.1.1dockerimagesStep2创建、并运行NacosServerDemo容器创建、并运行NacosDemo容器dockerr......
  • 嵌入式笔记1.1 ARM Cortex-M3M4简介
    目录微型计算机的硬件共性结构及基本性能指标关于存储器的介绍微型计算机的基本性能指标1.字长2.主频3.存储容量4.外设扩展能力5.软件配置情况ArmCortex系列微处理器系列概述ArmCortex-A系列处理器ArmCortex-R系列处理器ArmCortex-M系列处理器Cortex-M3和Cortex-M......