HIVE基础-文件存储格式

这篇具有很好参考价值的文章主要介绍了HIVE基础-文件存储格式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Hive的文件存储格式

文件主要存储格式有四种:textfile、sequencefile、orc、parquet

在Hive建表的时候可以指定文件存储格式,具体可见:HIVE操作语句–DDL篇

CREATE TABLE table_name(
	······
)
SORTED AS file_format

file_format代表文件格式;

常用的文件格式:textfile(文本)、sequencefile(二进制序列文件)、rcfile(列式存储)

前提:行式存储以及列式存储
行式存储

行存储中的数据是按照数据行为基础逻辑单元进行存储,一行中的数据在存储介质中以连续的形式存在。行存储时将表格看作一个一个的记录,优势是更新块,数据集中数据都是单条记录,适合事务。

列式存储

列存储的数据时按照列为基础逻辑存储单元进行存储,一列中的数据在存储介质中以连续存储形式存在。列存储将表中数据一列一列的存储在一起,优势是便于查找,以及进行聚合运算。

texfile 和 sequencefile 是行式存储

orc 和 parquet 是列式存储

一、TextFile 格式

默认文件存储格式,数据不做压缩,磁盘开销大,数据解析开销大。可结合 Gzip、Bzip2 使用,进行数据的压缩,但是使用Gzip的时候,数据不能进行切分。

二、Orc 格式

每个Orc文件是由1个或者多个stripe组成,每个stripe一般为HDFS的块大小,每个stripe包含多条记录,记录按照列进行独立存储。每个stripe由三部分组成,分别是 Index Data, Row Data, Stripe Footer。

HIVE基础-文件存储格式

Index Data:一个轻量级的索引,默认每隔1W行做一个索引,记录某行的各字段在Row Data中的offset;

Row Data:存储的是具体的数据,先取数据中部分行,将行按列进行存储。并对每个列进行了编码,分成多个Stream存储;

Stripe Footer:存储的是各个Stream的类型,长度等信息。

在文件存储的时候,每个文件都有一个File Footer,记录着每个Stripe的行数,以及每个行的数据类型;每个数据文件存储的尾部有一个Post Script,记录了数据文件的压缩类型,以及File Footer的长度信息。

读取文件时,先从文件尾部读取Post Script,解析到File Footer的长度,再读File Footer,解析到每个Stripe信息,获取到每个Stream的信息,随后通过Stream,以及Index进行读取数据。

三、Parquet 格式

文件是以二进制方法存储,不能直接读取文件,文件中包括该文件的数据以及元数据。

HIVE基础-文件存储格式

Row Group:行组,每一个行组包含一定的行数,并且在一个HDFS文件中最少存储一个行组;

Column Chunk:列块,在一个行组中每一列保存在一个列块中,行组中的所有块连续存储在行组文件中。一个列块中的值都是相同类型,不同的列块可以使用不同的算法进行压缩;

Page:页,每一个列块划分为多个页,一个页是最小的编码单位,在同一个列块的不同页,可能使用不同的编码方式。

一个Parquet文件可以存储多个行组,文件的首位都是该文件的 Magic Code,用于校验该文件是否是一个Parquet文件,Footer length 记录了文件的元数据的大小,通过该值和文件的长度可以计算出元数据的偏移量,文件的元数据中包括每一个行组的元数据信息和该文件存储数据的Schema信息。除了文件中的每一个行组的元数据,每一页的开始都会存储该页的元数据。

column chunk a meta data中保存着该列块元数据,包括字段类型,数据个数,起始位置偏移量等。

在文件中,包括三种类型的页:数据页、字典页和索引页。

数据页用于存储当前行组中该列的值;字典页存储该列值的编码字典,每一个列块中最多包含一个字典页;索引页用来存储当前行组下该列的索引,但在Parquet中不支持索引页。文章来源地址https://www.toymoban.com/news/detail-514380.html

到了这里,关于HIVE基础-文件存储格式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于Hive中的存储格式及压缩格式详解

    最近面试,遇到了关于Hive的数据存储格式的问题,回答不尽人意,抽时间总结多看看关于Hive存储格式和压缩格式的内容。 Hive底层数据是以HDFS文件的形式存储在Hadoop中的,选择一个合适的文件存储格式及压缩方式,也是 Hive 优化的一个重点。不同的文件存储格式及压缩格式

    2024年02月04日
    浏览(82)
  • hive存储压缩格式对比说明

    文本压缩(Text Compression): 压缩算法:Gzip、Snappy、LZO等。 特点:压缩率高,但读写性能相对较低。适合非常大的文本文件。 适用场景:需要节省存储空间,但同时需要保持数据的可读性。 序列化文件格式(SequenceFile): 压缩算法:Gzip、Snappy、LZO等。 特点:支持压缩,可

    2024年02月12日
    浏览(63)
  • Hive ---- 文件格式和压缩

    为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器,如下表所示: Hadoop查看支持压缩的方式hadoop checknative。 Hadoop在driver端设置压缩。 压缩性能的比较: 为Hive表中的数据选择一个合适的文件格式,对提高查询性能的提高是十分有益的。Hive表数据的存储格式,可以选择

    2024年02月16日
    浏览(41)
  • hive之文件格式与压缩

      为Hive表中的数据选择一个合适的文件格式,对提高查询性能的提高是十分有益的。Hive表数据的存储格式,可以选择text file、orc、parquet、sequence file等。 文本文件就是txt文件,我们默认的文件类型就是txt文件 ORC介绍:   ORC(Optimized Row Columnar)file format是Hive 0.11版里引入的

    2024年02月16日
    浏览(44)
  • 大数据学习(5)-hive文件格式

    大数据学习 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞 在Hive中,常见的文件存储格式包括TestFile、SequenceFile、RcFile、ORC、Parquet和AVRO。默认的文件存储格式是TestFile,

    2024年02月07日
    浏览(40)
  • Hive数据存储格式有哪些?TextFile、SequenceFile、RCFile、ORCFile、Parquet有什么区别?为什么绝大多数都使用ORCFile、Parquet格式?

    Hive 的数据存储,是 Hive 操作数据的基础。 选择一个合适的底层数据存储文件格式,即使在不改变当前 Hive SQL 的情况下,性能也能得到数量级的提升 。 这种优化方式对 MySQL 等关系型数据库有些类似,选择不同的数据存储引擎,代表着不同的数据组织方式,对于数据库的表现

    2024年02月02日
    浏览(59)
  • (10)Hive的相关概念——文件格式和数据压缩

    目录 一、文件格式 1.1 列式存储和行式存储 1.1.1 行存储的特点 1.1.2 列存储的特点 1.2 TextFile 1.3 SequenceFile 1.4  Parquet 1.5 ORC 二、数据压缩  2.1 数据压缩-概述  2.1.1 压缩的优点  2.1.2 压缩的缺点 2.2 Hive中压缩配置 2.2.1 开启Map输出阶段压缩(MR 引擎) 2.2.2 开启Reduce输出阶

    2024年02月22日
    浏览(44)
  • 一百三十三、Hive——Hive外部表加载含有JSON格式字段的CSV文件数据

    在Hive的ODS层建外部表,然后加载HDFS中的CSV文件数据 注意 :CSV文件中含有未解析的JSON格式的字段数据,并且JSON字段中还有逗号 JSON数据的字段track_data只显示一部分数据,因为JSON格式数据里面也含有逗号 [{\\\"id\\\":\\\"14\\\",\\\"length\\\":5.0,\\\"height\\\":3.0,\\\"posX\\\":63.0,\\\"posY\\\":37.0,\\\"acs\\\":99.0,\\\"angle\\\":83.0,\\\"alti

    2024年02月16日
    浏览(48)
  • 2、hive相关概念详解--架构、读写文件机制、数据存储

    1、apache-hive-3.1.2简介及部署(三种部署方式-内嵌模式、本地模式和远程模式)及验证详解 2、hive相关概念详解–架构、读写文件机制、数据存储 3、hive的使用示例详解-建表、数据类型详解、内部外部表、分区表、分桶表 4、hive的使用示例详解-事务表、视图、物化视图、DDL

    2024年02月09日
    浏览(47)
  • Python小白入门:文件、异常处理和json格式存储数据

    所用资料 代码中所用到的文件可以从下面的网站进行下载: https://www.ituring.com.cn/book/2784 open函数 打开 一个文件。 接收参数为需要打开的文件名 。Python会在 当前执行的文件所在目录下 查找指定文件,因此需要把pi_digits.txt文件放在执行文件的同目录下。 open函数返回一个表示

    2024年02月13日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包