大数据数仓理论1.1-离线

分区

  • 静态分区

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

        优点:简单易于管理

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

  • 动态分区        

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

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

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

内外表区别

内部表

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

外部表

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

HiveSQL执行流程(==>)

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

HiveSQL中小文件处理

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

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

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

开窗函数

  • 聚合函数
sum求和avg平均值count计数max最大min最小
  • 分析函数
lead下一条字段数据
lag上一条字段数据
first_value第一条字字段数据
last_value最后一条字段数据
  • 顺序函数
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登录系统,后台记录用户的登录信息,采用拉链式,一个用户共两条数据来记录,第一条记录历史数据,第二条记录当日的数据。

  

  • 38
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值