Hive的文件存储格式

TEXTFILE

文本文件,默认的文件存储格式,内容是可以直接查看,用来保存非结构化数据;
特点:文本文件的格式一旦定义就无法改变.
除TEXTFILE外,其他文件存储格式的表不能直接从本地文件导入数据,数据要先导入到textfile格式的表中,
然后再从表中用insert导入SequenceFile,RCFile,ORCFile,PARQUET表中;
或者用复制表结果及数据的方式(create table as select * from table).

SEQUENCEFILE

序列文件,包含键值对的二进制的文件存储格式,支持压缩,sequencefile格式的表数据比相同数据的textfile文件还要大,
这是因为sequencefile表在创建时,增加了很多额外信息,在生产中不使用此种类型的文件格式. 

RCFile

RCFile文件格式是FaceBook开源的一种Hive的文件存储格式(可压缩),  
是列式存储文件格式,适合压缩处理.对于有成百上千字段的表而言,RCFile更合适.
如果文件数据是纯文本,可以使用 STORED AS TEXTFILE ; 
如果数据需要压缩,使用 STORED AS SEQUENCEFILE、RCFile、ORC.因为TextInputFormat对输入的文件行数是有限制的(默认是Integer.max_val),所以如果原始数据的行数过多那么就会导致无法读取的现象,那如果遇到这种行数过多的数据应该如何处理呢?
首先将表分为几个行组,对每个行组内的数据进行按列存储,每一列的数据都是分开存储,正是先水平划分,再垂直划分的理念.
其实表数据的 行 与 列 来看的话,列的个数肯定是有限的,所以我们把列当做行,这样就能确保这个表的行数一定不会太多,  
然后把这列的所有行数据转成现在的一行的列数据,这样获取数据的时候纵向获取现在一列的数据其实就是之前的一行数据.

在这里插入图片描述

在存储空间上: 
RCFile采用游程编码,相同的数据不会重复存储,很大程度上节约了存储空间,尤其是字段中包含大量重复数据的时候.
5555557777733322221111111 游程编码为:(5,6)(7,5)(3,3)(2,4)(1,7).
-- 可见,游程编码的位数远远少于原始字符串的位数.// TEXTFILE对应的是
org.apache.hadoop.mapred.TextInputFormatorg.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
// SEQUENCEFILE对应的是
org.apache.hadoop.mapred.SequenceFileInputFormatorg.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
// RCFILE对应的是
org.apache.hadoop.hive.ql.io.RCFileInputFormatorg.apache.hadoop.hive.ql.io.RCFileOutputFormat/**
INPUTFORMAT  指定输入数据由哪个数据格式化类来处理
OUTPUTFORMAT 指定输出数据由哪个数据格式化类来处理
这两个选项主要配置的是HIVESQL运行期间的MapReduce的输入与输出的格式化.
*/

ORC

1.orc 定义

ORC File,它的全名是Optimized Row Columnar (优化的行列) file,其实就是对RCFile做了一些优化.
降低数据存储空间 : orcfile 默认采用 zlib 格式进行压缩.
使用压缩的优势是可以最小化所需要的磁盘存储空间,以及减少磁盘和网络io操作;
ORC支持三种压缩: ZLIB,SNAPPY,NONE;
最后一种就是不压缩,orc默认采用的是ZLIB压缩.
加速hive查询速度 : orcfile 最主要的优点是在文件中存储了一些轻量级的索引数据,内部采用一个数组存储avro表中的某一列数据供特定开发人员使用.
orcfile 不但解决了查询速度问题,而且也解决了数据存储问题; 
运用ORC File可以提高Hive的读、写以及处理数据的性能.

2.orc 文件结构

ORC File包含一组组的行数据,称为stripes(),除此之外,ORC File的file footer还包含一些额外的辅助信息.
在ORC File文件的最后,有一个被称为postscript(后记,附言,补充)的区,它主要是用来存储压缩参数及压缩页脚的大小.
默认情况下,一个stripe的大小为250MB. 大尺寸的stripes使得从HDFS读数据更高效。

下图显示出可ORC File文件结构:
在这里插入图片描述

Postscript存储该表的行数,压缩参数,压缩大小,列等信息;
FileFooter包含该表的统计结果,以及各个Stripe的位置信息;
Stripe Footer包含该stripe的统计结果,包括Max、Min、count等信息;
IndexData保存了该stripe上数据的位置信息,总行数等信息;
RowData以stream的形式保存了数据的具体信息.

3.Stripe结构

从上图可以看出,每个Stripe都包含index data、row data以及stripe footer.
Row data在表扫描的时候会用到;  
Stripe footer包含流位置的目录;
Index data包含每列的最大和最小值以及每列所在的行.
行索引里面提供了偏移量,它可以跳到正确的压缩块位置.
具有相对频繁的行索引,使得在stripe中快速读取的过程中可以跳过很多行,尽管这个stripe的大小很大. 在默认情况下,最大可以跳过10000行.
hive读取数据的时候,根据FileFooter读出Stripe的信息,根据IndexData读出数据的偏移量从而读取出数据. 

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序原生组件使用

1、video组件使用 <view class"live-video"><video id"myVideo" src"{{videoSrc}}" bindplay"onPlay" bindfullscreenchange"fullScreenChange" controls object- fit"contain"> </video&g…

低功耗时钟芯片RX8111CE和RX4111CE的特征和应用

爱普生RTC中的两款低功耗时钟芯片RX4111CE和RX8111CE&#xff0c;在电子设备集约化、小型化不断加速的背景之下&#xff0c;驱动着市场要求RTC时钟芯片具备高精度、小型化及低功耗的特性。爱普生实时时钟模块( RTC )相对于芯片内置RTC的产品由于具有独立供电&#xff0c;所以设…

前端动画requestAnimationFrame

window.requestAnimationFrame() 告诉浏览器——你希望执行一个动画&#xff0c;并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数&#xff0c;该回调函数会在浏览器下一次重绘之前执行。 备注&#xff1a; 若你想在浏览器下次重绘…

element el-date-picker组件 输入输出格式为时间戳

<!-- 时间戳 --><el-date-pickerv-model"time"value-format"timestamp"type"date"placeholder"选择日期"/>// 把 value-format"timestamp" 加入 就可以实现时间戳格式

IDA PRO 7.7 全局修改字体大小

转到IDA的安装目录&#xff0c;以我的为例&#xff0c;IDA的安装目录是&#xff1a; C:\Program Files (x86)\IDA_Pro_7.7\打开.css文件 IDA安装路径\themes\default\theme.css拉到最下面&#xff0c;找到如图所示的位置&#xff0c;把font-size修改成你想要的大小。 保存并验…

AI技术实现口语练习

大模型技术可以用于实现英语口语练习的以下几个方面&#xff0c;使用大模型技术实现英语口语练习是一种很有前途的方法。随着大模型技术的不断发展&#xff0c;我们可以期待英语口语练习将变得更加智能、高效和个性化。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发…

10.轮转数组

文章目录 题目简介题目解答解法一&#xff1a;使用额外的数组代码&#xff1a;复杂度分析&#xff1a; 解法二&#xff1a;数组反转代码&#xff1a;复杂度分析&#xff1a; 题目链接 大家好&#xff0c;我是晓星航。今天为大家带来的是 轮转数组 相关的讲解&#xff01;&#…

Linux 第二十七章

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

党务政务服务热线|基于SSM的党务政务服务热线平台(源码+数据库+文档)

目录 基于SprinBootvue的党务政务服务热线平台 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2后台功能模块 5.2.1管理员功能模块 5.2.2部门功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; …

【6大模型让你的沟通汇报更有条理】项目管理常见问题大揭秘 03

6大模型让你的沟通汇报更有条理 虽然头脑中构思众多&#xff0c;一开口却发现空白一片&#xff1f; 工作表现出色&#xff0c;汇报时却总是支支吾吾不知从何说起&#xff1f; 生性腼腆&#xff0c;却难以避免需要站在众人面前发言&#xff1f; 阿道掐指一算&#xff1a;你需…

代码无界,创新无限!华为云开发者日 · 广州站来了!

5月23日&#xff0c;2024年首场华为云开发者日HDC.Cloud Day将在广州盛大举行。这场技术派对将为开发者们带来一场无与伦比的技术盛宴。在这里&#xff0c;开发者们将有机会现场聆听行业专家的精彩分享&#xff0c;深度了解众多前沿产品的最新技术和功能&#xff0c;并与行业专…

SVN 合并到 Git 时有文件大于 100 M 被限制 Push

如果有文件大小大于 100M&#xff0c;GitHub 是会被限制推送到仓库中的&#xff0c;大概率情况会显示下面的错误&#xff1a; remote: Resolving deltas: 100% (3601/3601), done. remote: error: Trace: aea1f450da6f2ef7bfce457c715d0fbb9b0f6d428fdca80233aff34b601ff59b re…

【matlab基础知识代码】(十六)代数方程的图解法多项式型方程的准解析解方法

>> ezplot(exp(-3*t)*sin(4*t2)4*exp(-0.5*t)*cos(2*t)-0.5,[0 5]), line([0 5],[0 0]) 验证 >> t0.6738; >> exp(-3*t)*sin(4*t2)4*exp(-0.5*t)*cos(2*t)-0.5 ans -2.9852e-04 >> ezplot(x^2*exp(-x*y^2/2)exp(-x/2)*sin(x*y)) >> hold on; …

跨境电商SHEIN、Etsy、Allegro自养号测评:轻松打造热销产品

在全球化电商市场中&#xff0c;SHEIN、Etsy和Allegro等平台凭借其独特的定位和运营策略&#xff0c;吸引了大量的卖家和买家。为了在这些平台上获得更好的业务表现&#xff0c;卖家们纷纷采用自养号测评的策略来提升产品的曝光度和信誉度。本文将详细探讨在SHEIN、Etsy和Alleg…

MHD、MQA、GQA注意力机制详解

MHD、MQA、GQA注意力机制详解 注意力机制详解及代码前言&#xff1a;MHAMQAGQA 注意力机制详解及代码 前言&#xff1a; 自回归解码器推理是 Transformer 模型的 一个严重瓶颈&#xff0c;因为在每个解码步骤中加 载解码器权重以及所有注意键和值会产生 内存带宽开销 下图为三…

AGV混合型电机驱动器|伺服控制器CNS-MI50H系列对电机的要求

混合型电机驱动器 CNS-MI50H系列涵盖CNS-MI50HB-A、CNS-MI50HBN-A、CNS-MI50HDN-A、CNS-MI50HSN-A型号&#xff0c;专为 AGV 舵轮控制需求设计&#xff0c;集成舵轮转向角度控制和驱动电机闭环控制。支持增量式编码器&#xff0c;霍尔传感器&#xff0c; 角度电位计&#xff0c…

UE 解决相同按键的按键事件只会执行一次的问题

在不同蓝图有同样按键的按键事件或者是同一个蓝图但是有很多个实例&#xff0c;默认都只会执行一次事件 因为&#xff1a; 勾选Consume Input&#xff1a;当这个选项被勾选时&#xff0c;意味着你的Actor会“消耗”这个输入事件&#xff0c;阻止它继续传播到其他可能也在监听相…

GEE错误——COPERNICUS/S2_SR_HARMONIZED(Level-2A)数据中不包含QA60波段解决方案(去云解决方案)

问题 我在屏蔽哨兵-2 协调图像集中有云层覆盖的像素时遇到了一个问题。云遮蔽功能是从 GEE 文档中获取的,因此运行正常。它使用的是 "QA60 "波段。 如果不屏蔽云层像素,图像就会出现在地图画布上: 但是,如果遮挡了多云像素,则不会显示图像: 原始代码 var se…

苹果电脑怎么安装crossover 如何在Mac系统中安装CrossOver CrossOver Mac软件安装说明

很多Mac的新用户在使用电脑的过程中&#xff0c;常常会遇到很多应用软件不兼容的情况。加上自己以前一直都是用Windows系统&#xff0c;总觉得Mac系统用得很难上手。 其实&#xff0c;用户可以在Mac上安装CrossOver&#xff0c;它支持用户在Mac上运行Windows软件&#xff0c;例…

TCP协议的确认应答机制

TCP&#xff08;Transmission Control Protocol&#xff09;是一种面向连接的、可靠的、基于字节流的传输层协议&#xff0c;它在网络通信中扮演着至关重要的角色。其中&#xff0c;确认应答机制是TCP协议中的一个核心概念&#xff0c;它确保了数据的可靠传输。本文将详细介绍J…