[数据存储] 浅析 Hive 数据存储格式

news/2025/11/24 1:18:54/文章来源:https://www.cnblogs.com/johnnyzen/p/19261987

0 序言

  • 续接[数据存储] 浅谈大数据领域的数据存储格式:ORC / Avro / Parquet / Arrow- 博客园/千千寰宇,展开回顾一下 Hive 的数据存储格式。

1 概述: Hive

  • Hive支持多种存储格式,选择合适的存储格式对于提升查询性能和存储效率至关重要。
  • 常见的Hive存储格式包括TextFile、SequenceFile、RCFile、ORCFile和Parquet。
  • 这些格式中,TextFile是默认的存储格式,而SequenceFile、RCFile、ORCFile和Parquet则提供了更高效的数据压缩和查询性能。

TextFile存储格式

  • TextFile是Hive的默认存储格式,它将数据以纯文本形式存储,不进行任何压缩处理。

  • 创建TextFile格式的Hive表时,可以直接使用LOAD DATA语句将数据加载到表中,这是因为TextFile不涉及数据压缩,因此加载速度快。

  • 但是,TextFile格式的缺点是磁盘占用较大,且在查询时需要逐个字符判断分隔符,导致查询效率不高。

SequenceFile存储格式

  • SequenceFile是Hadoop提供的一种二进制文件格式,支持数据的可分割和压缩。
  • 它以键值对的形式存储数据,可以选择记录压缩或块压缩。
  • SequenceFile格式的表不能直接从本地文件加载数据,需要先将数据导入到TextFile格式的表中,然后使用INSERT语句导入到SequenceFile格式的表中。

RCFile存储格式

  • RCFile(Row Columnar File)是一种行列混合存储的文件格式,它先将数据按行分组,然后在每个行组内部进行列式存储。
  • RCFile格式的表在查询时可以避免读取不必要的列,且同列数据类型一致,有利于数据压缩。
  • 但是,RCFile在重建行数据时可能会有较大的开销,尤其是当数据分布在不同的HDFS块上时。

ORCFile存储格式

  • ORCFile(Optimized Row Columnar File)是对RCFile的优化,提供了更高效的压缩和查询性能。
  • ORCFile在每个文件中提供了多级索引,可以快速定位查询数据,减少不必要的磁盘和网络I/O。
  • ORCFile支持ACID事务,允许对Hive表的单个记录进行修改。
  • 创建支持ACID事务的ORCFile格式的Hive表时,需要将表设置为分桶表,并在表属性中添加'transactional'='true'

Parquet存储格式

  • Parquet是另一种高性能的列式存储格式,它将数据分成多个行组,每个行组内部再分成若干页。
  • Parquet文件中包含了丰富的元数据信息,有助于提升数据读取效率。
  • Parquet在嵌套式结构支持上表现更佳,而ORC在多层级嵌套表达上可能会有性能损失。

存储格式的选择

  • 在选择Hive存储格式时,需要考虑数据的压缩比、查询速度和HDFS上的文件名。

    • ORCFile通常提供最高的压缩比,而Parquet和ORCFile在查询速度上相近。
    • 如果表中的数据需要压缩,可以选择SequenceFile、RCFile、ORCFile或Parquet格式。
    • 对于大数据量的场景,选择支持切分的压缩格式如Parquet的Lzo压缩会更加合适。
  • 在实际应用中,可以根据数据的特点和查询需求选择最合适的存储格式。

例如,对于需要频繁查询某几列数据的场景,列式存储格式如ORCFile或Parquet可能更优。

  • 而对于需要经常全表扫描的场景,行式存储格式如TextFile可能更合适。
  • 此外,还可以根据存储和查询的性能需求,对Hive表进行相应的配置优化,如设置压缩类型和大小、调整内存缓冲池大小等1。

Y 推荐文献

  • [数据存储] 浅谈大数据领域的数据存储格式:ORC / Avro / Parquet / Arrow- 博客园/千千寰宇

X 参考文献

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

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

相关文章

给z同学调差文件解析记录

给Z同学的调差解析公式 根据合同可知:波动率$ \pm 5$% 就要调差,也就是常规的情况 a.价格上涨时:\(若P_t<P_0,且P_i/P_0>1.05,则C_{i增} = Q_i \times P_t \times \langle P_i/P_0 - 1.05 \rangle\) \(若P_…

循环材料特性 11

1 循环材料特性 1.1 瞬态循环响应 材料的瞬态循环响应描述了材料在循环载荷作用下抵抗变形的变化过程。如果一种材料重复接受对称循环应变控制的载荷循环的加载作用,就会以下面的一种方式做出响应:周期性硬化、周…

KEYDIY KD-MAX KD-MATE: Key, Remote Programming Tool for Euro/American Cars

The Future of Key Programming: KEYDIY KD-MAX & KD-MATE—Solving Today’s Automotive Key Challenges Problem: The Pain Points of Modern Key Ownership In European and American markets, vehicle key tec…

我用 Cloudflare 免费撸了一个高颜值的网站监控系统 (支持 SSL 证书/域名过期提醒 + 钉钉告警)

前言:作为一个“松鼠党”站长,手里总有一堆域名和吃灰的小鸡(服务器)。经常是网站挂了几天才发现,或者 SSL 证书过期了被浏览器拦截,甚至域名忘记续费被抢注…… 😭 市面上的 Uptime Robot 等服务,免费版限制…

codex 的安装

1.Claude code 安装和配置 1.1 本地配置 1.2 vscode 插件配置 vscode配置GLM4.6的方法 Claude Code有官方VS Code插件了 2.Codex code 安装和配置 Ccode 的配置 config.toml model_provider = "ccode" model…

3.多线程与智能指针

断言 Check 如:check(表达式) 只要false就崩溃 check(Impls.Num()<=1);Ensure Ensure(表达式) 仅首次false会提示,且不崩溃 ensure(StyleSet.IsUnique());CastChecked 将一个InActor进行格式转换,转换失败就让程…

TypedSql:在 C# 类型系统上实现一个 SQL 查询引擎

前言 在 .NET 里写查询的时候,很多场景下数据其实早就都在内存里了:不是数据库连接,也不是某个远程服务的结果,而就是一个数组或者 List<T>。我只是想过滤一下、投影一下。这时候,通常有几种选择:写一个 f…

C#/.NET/.NET Core技术前沿周刊 | 第 62 期(2025年11.17-11.23)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与…

KEYDIY MLB26 434 Mhz 3-Button Universal Smart Remote PCB Board - Non-OEM Solution

When Your OEM Smart Remote Fails: A Costly Headache for Shops and Owners For automotive repair professionals and car owners across Europe and America, a malfunctioning smart remote can grind operations…

KEYDIY MLB08 434MHz OEM Smart Key PCB: Audi-Style 3-Button Universal for EU/US Cars

The Smart Key Replacement Solution Your Garage (and Wallet) Has Been Waiting For In today’s automotive landscape, smart keys are more than a convenience—they’re a necessity. But when they fail, get …

完整教程:Python pip instsll报错 Can‘t connect to HTTPS URL because the SSL module is not available.

完整教程:Python pip instsll报错 Can‘t connect to HTTPS URL because the SSL module is not available.pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; displa…

Semgrep体验

检查硬编码 规则 rules:- id: java-jwt-hardcoded-secretlanguages:- javaseverity: ERRORmessage: hardcodepatterns:- pattern: $SENVAR="$VALUE"# 这里可以去掉一些比如 xxxKey="appid"- patte…

102302133陈佳昕作业3

作业①: 要求:指定一个网站,爬取这个网站中的所有的所有图片,例如:中国气象网(http://www.weather.com.cn)。实现单线程和多线程的方式爬取。 –务必控制总页数(学号尾数2位)、总下载的图片数量(尾数后3位)等…

CSAPP 处理器体系结构

处理器体系结构 CISC 与 RISC 指令集 CISC:复杂指令计算机 (如x86-64) RISC:精简指令计算机 (如RISC-V) RISC 相较于CISC指令数量少得多,编码长度固定,寻址没有变址寄存器和伸缩因子,对机器级程序实现细节可见...…

AI协助 一周打造「七巧板益智小游戏」:从零高效开发教学工具

AI协助 一周打造「七巧板益智小游戏」:从零高效开发教学工具 一个“教学痛点”引发的开发冲动。本文讲述如何利用Copilot在一周内快速开发一个面向小学数学教学的七巧板益智小游戏,涵盖需求分析、技术选型、核心算法…

【MCP系列】用 MCP 扩展 AI 编辑器:从零开发一个自己的MCP服务

【MCP系列】用 MCP 扩展 AI 编辑器:从零开发一个自己的MCP服务本文MCP协议,手把手教你构建一个自己的MCP Server,在AI编辑器实现通过自然语言指令调用自己写的工具脚本。随着 AI 编辑器(如 Copilot、通义灵码、Tra…

VB6版MP3文件信息编辑器 - 开源研究系列文章 - 个人小作品

VB6版MP3文件信息编辑器 - 开源研究系列文章 - 个人小作品Posted on 2025-11-24 00:00 lzhdim 阅读(0) 评论(0) 收藏 举报 这次整理VB6编写的MP3文件的ID3v1信息编辑器。该应用比较简单,主要是对于ID3v1信…

手把手教你用 React + Zustand 打造 Windows 风格可拖拽,缩放,多窗口 Modal 组件

手把手教你用 React + Zustand 打造 Windows 风格可拖拽,缩放,多窗口 Modal 组件记录仿Windows风格的可拖拽、缩放、多窗口 Modal 组件的实现还在为每个弹窗写重复的拖拽、缩放、Z轴代码而烦恼吗?还在复制粘贴 onMo…

ImGui Learn Data Day 1

ImGui Learn data Day 1ImGui::Begin("Hello Gui");static float u = 0;static bool an = 0;if (ImGui::CollapsingHeader("Settings"))//展开条{//如果点击就展开或者关闭ImGui::SliderFloat(&qu…

OI 笑传 #34

夜の東側今天是 bct Day4,赛时 \(75+30+40+0=115\),rk 54。 T1 挂分原因仍未知,直接原因是没有大样例,然后是用数据结构维护的贪心,比较恶心。 赛时比较爆炸,T1 连想带调用了 3h,导致比较简单的 T2,T3,T4 没有…