当前位置: 首页 > news >正文

Hive表类型(存储格式)

转载专用:读到了好文章,用于分享收藏,侵权删。转发自大佬:桥路丶 ,https://blog.csdn.net/qq_33876553版权声明:本文为CSDN博主「桥路丶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_33876553/article/details/112215854

目录

Hive表类型

行式存储

TextFile

SequenceFile

列式存储

RCFile

ORC

parquet

其他

AVRO

总结


Hive表类型

行式存储

Hive支持的表类型,或者称为存储格式有:TextFile、SequenceFile、RCFile、ORC、Parquet、AVRO。

TextFile

其中TextFile是文本格式的表,它是Hive默认的表结构;

在存储时使用行式存储,并且默认不进行压缩,所以TextFile默认是以明文的文本方式进行保存的,可以手动开启Hive的压缩功能进行数据压缩。

但在TextFile表压缩后再进行解压,即反序列化时,耗费的时间很大,是SequenceFile的十几倍。

TextFile表因为采用了行式存储,所以适合字段较少或者经常需要获取全字段数据的场景,在数据仓库场景的分析计算场景中一般不会使用TextFile表;

通常ETL流程导入的数据通常为文本格式,使用TextFile表可以很容易的将数据导入到Hive中来。

所以它常见的适用场景是作为外部数据导入存储,或者导出到外部数据库的中转表。

SequenceFile

SequenceFile同样是行式存储的表,它的存储格式为Hadoop支持的二进制文件,比如在MapReduce中数据读入和写出所使用的数据;其中Key为读取数据的行偏移量,Value为SequenceFile真正存储的数据,所以它在Hadoop中处理时,会减少文件转换所需要的时间。

SequenceFile支持压缩,可以选择None、Record、Block三种压缩方式,默认为Record,压缩率最高的是Block。

所以如果在生产中,需要数据进行行式存储、原生支持压缩,且要满足一定的性能要求,那么可以使用SequenceFile这种存储方式。

列式存储

RCFile、ORC、Parquet这三种格式,均为列式存储表——准确来说,应该是行、列存储相结合。在存储时,首先会按照行数进行切分,切分为不同的数据块进行存储,也就是行存储;在每一个数据块中,存储时使用的又是列式存储,将表的每一列数据存放在一起。

这种列式存储在大数据技术中尤为常见,它在海量数据场景中是很好的一种优化手段,可以减少数据读取、移动所花费的时间;

因为在结构化数据处理中,一般不会用到全部数据,而是选择某几列进行运算。

使用行式存储会将所有数据加载后再进行过滤,而列式存储可以只读取这几列数据,减少数据读取、处理所需要的时间。这在海量数据场景中可以节约非常多的时间。

RCFile

列式存储表中,RCFile现在基本很少使用了,它是ORC表的前身,支持的功能和计算性能都低于ORC表。

ORC

ORC表是Hive计算的主要表形式,是在RCFile的基础上进行了优化和改进,支持NONE、Zlib、Snappy压缩,在分析计算中的性能较好,是生产中常见的表类型。而且ORC表可以开启事务功能,以便支持数据更新、删除等操作;

但事务的开启会影响表的处理性能,所以非必要情况下不需要启用事务功能。

ORC表的问题在于,它是Hive特有的存储类型;所以在其它大数据产品中兼容性并不好,有些只有在较高的版本中才会支持。

parquet

Parquet表也是Hive计算的主要表形式,它的计算性能稍弱于ORC表;但因为Parquet文件是Hadoop通用的存储格式,所以对于其它大数据组件而言,具有非常好的数据兼容度;而且Parquet表可以支持数据的多重嵌套(如JSON的属性值可以是一个对象,且支持嵌套),但ORC表在多重嵌套上的性能并不好。

Parquet支持uncompressed、snappy、gzip、lzo压缩;其中lzo压缩方式压缩的文件支持切片,意味着在单个文件较大的场景中,处理的并发度会更高;因为一个压缩文件在计算时,会运行一个Map任务进行处理,如果这个压缩文件较大,处理效率就会降低。

但压缩文件支持再切分的话,在处理时可以Split成多个文件,从而启动多个Map任务进行并发处理,提升处理性能。

而ORC表的压缩方式不支持切分,如果单个压缩文件较大的话,性能会有影响。所以,对于ORC表和Parquet表的选择要区分使用场景,如果只在Hive中处理时使用,追求更高效的处理性能,且单个文件不是很大,或者需要有事务的支持,则选用ORC表。

但如果要考虑到与其它大数据产品的兼容度,且单个文件较为庞大,数据存在多重嵌套,则选用Parquet表。

其他

AVRO

最后AVRO表,它主要为 Hadoop 提供数据序列化和数据交换服务,支持二进制序列化方式。

因为AVRO是Hadoop生态圈中,常用的一种用于数据交换、序列化的数据类型,它与Thrift类似。但要与TextFile区分开来,TextFile文本方式是常见的存储类型,基本所有系统都支持;

但一般而言,在数据传输中,不会直接将文本发送出去,而是先要经过序列化,然后再进行网络传输,AVRO就是Hadoop中通用的序列化标准。

所以,如果数据通过其他Hadoop组件使用AVRO方式传输而来,或者Hive中的数据需要便捷的传输到其他组件中,使用AVRO表是一种不错的选择。

总结

Hive在生产中,一般使用较多的是TextFile、Orc、Parquet。TextFile一般作为数据导入、导出时的中转表。ORC和Parquet表一般作为分析运算的主要表类型,如果需要支持事务,则使用ORC,如果希望与其它组件兼容性更好,则使用Parquet。

在性能上ORC要略好于Parquet。但Parquet支持压缩切分,有时候也是考虑因素。

当然除了这几种内置表,Hive还支持自定义存储格式。可通过实现 InputFormat 和 OutputFormat 来完成。

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

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

MATLAB基础语法之拟合算法

%data1.mat数据如下 %导入data1的数据 load data1%以x为自变量,y为因变量,o为点的形状作散点图 plot(x,y,o)% 给x和y轴加上标签 xlabel(x的值)ylabel(y的值)%返回data1数据行数n 19 n size(x,1); %最小二乘法求解拟合曲线参数 k (n*su…...

SpringBoot集成支付宝支付(沙箱环境)

项目结构&#xff1a; 项目依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework.boo…...

(Java)获取视频中的每一帧图像

代码 /*** 根据读取到的视频文件&#xff0c;获取视频中的每一帧图片* param video 视频文件* http://192.168.0.107:9087/datago/detectsysfiles/204/createFile/frameFile/001/frameFile001.mp4* param picPath 图片的保存路径* E:/detectsysfiles/204/createFil…...

Java工作资料!同花顺java开发怎么样

前言 昨天&#xff0c;有个女孩子问我提高数据库查询性能有什么立竿见影的好方法&#xff1f; 这简直是一道送分题&#xff0c;我自豪且略带鄙夷的说&#xff0c;当然是加「索引」了。 她又不紧不慢的问&#xff0c;索引为什么就能提高查询性能。 这还用问&#xff0c;索引…...

js/python 抓取网页数据,导出execl

文章目录前言操作代码前言 js的方式&#xff1a;直接使用post获取所有的数据&#xff0c;因为是分页数据有total显示所有的数据&#xff0c;在请求的时候&#xff0c;就可以直接把每页的数据显示为total的值。没有太大的技术含量 python方式&#xff1a;直接遍历页码获取数据&…...

SpringCloud Alibaba实战(7:nacos注册中心管理微服务)

源码地址&#xff1a;https://gitee.com/fighter3/eshop-project.git 持续更新中…… 在上一节我们已经完成了Nacos Server的本地部署&#xff0c;这一节我们学习如何将Nacos作为注册中心&#xff0c;管理微服务。 1、注册中心简介 1.1、什么是注册中心 在微服务的体系里&am…...

xboot大神的libonnx环境搭建

1.get代码 git clone gitgitee.com:xboot/libonnx.git 2.安装依赖&#xff1a; sudo apt-get install libsdl2-dev sudo apt-get install libsdl2-gfx-dev 3.编译 4.结果 5.验证 进入examples/mnist&#xff0c;执行mnist. 结束&#xff01;...

Visual Studio

Visual Studio 2019 Enterprise&#xff08;企业版&#xff09;&#xff1a;BF8Y8-GN2QH-T84XB-QVY3B-RC4DF Visual Studio 2019 Professional&#xff08;专业版&#xff09;&#xff1a;NYWVH-HT4XC-R2WYW-9Y3CM-X4V3Y...

数据结构与算法常用总结

数据结构1.常用数据结构及其原理1.1 数组1.2 链表1.3 队列1.4 栈1.5 哈希表1.6 二叉树2.常见数据结构面试题2.1数组和链表的区别2.2 排序算法2.3 栈结构与队列的区别1.常用数据结构及其原理 1.1 数组 每一个数组元素的位置由数字编号&#xff0c;称为下标或者索引(index)。大根…...

Linux中文件的分类

在Linux中&#xff0c;一切皆文件&#xff0c;Linux系统中文件的分类如下&#xff1a; 1、文本文件。文件组成主要是ASCII字符&#xff0c;文件作用是记录普通文件&#xff0c;如shell脚本文件、源文件、TXT文件等。 2、二进制文件。文件由二进制0、1组成&#xff0c;文件作用是…...

你花了多久弄明白架构设计?多个java应用同时访问数据库

01 分布式限流&#xff1a;NginxZooKeeper 1.1 分布式限流之Nginx 请解释一下什么是 Nginx? 请列举 x Nginx 的一些特性。 请列举 x Nginx 和 和 Apache 之间的不同点 请解释 x Nginx 如何处理 P HTTP 请求。 在 x Nginx 中&#xff0c;如何使用未定义的服务器名称来阻止…...

5852. 最小化目标值与所选元素的差 记忆化dfs,关键在于你怎么定义变量

目录解题思路代码解题思路 当时是个周赛题&#xff0c;试图利用爆搜解决的。。。。 显然不行&#xff0c;然后又听有人说是个背包QAQ dl都欺负我(╥╯^╰╥)嘤嘤嘤 不过了解了二维数组第一维放行数第二维放和&#xff0c;&#xff0c;&#xff0c;瞬间感觉记忆化搜索又可以…...

Spring面试题复习(一)

Spring面试题复习&#xff08;一&#xff09; 一、Spring是什么&#xff1f; Spring是一个轻量级的开发框架&#xff0c;常说的Spring框架&#xff0c;就是指Spring Framework&#xff0c;它是很多模块的集合&#xff0c;这些模块可以帮助我们开发人员简化开发&#xff0c;这…...

_____

sel,1SELECT * FROM table sel,2SELECT * FROM table WHERE name 强哥 sel,3SELECT * FROM table ORDER BY updateTime DESC hui,1会 paiban,1排班 beifen,1备份 gaihao,1改好 dai,1待 tu,1图 dangran,1当然 minxian,1明显 mingxian,1明显 suji,1苏稽 shizhan,1适展 gaihaole…...

Python函数参数(必选、默认、可变、关键字)

Python函数参数&#xff08;必选、默认、可变、关键字&#xff09; 【参考】&#xff1a;https://blog.csdn.net/pql925/article/details/80999086 1. 必选参数 必选参数&#xff0c;即使用普通变量标识符标识形参&#xff0c;没有默认赋值或*星号。 def power2(x):return x*…...

Android常见控件

设置进度条&#xff0c;加载 设置通知 权重分配的是剩余的空间...

第三次作业

第五章 一、会话技术概括 存储客户端的状态 由一个问题引出今天的内容&#xff0c;例如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的&#xff0c;也就是说每个客户访问服务器端资源时&#xff0c;服务器并不知道该客户端是谁&#xff0c;所以需要…...

PHP进阶面试题

比较一下php和go的区别&#xff1f; Go是一种静态类型语言。PHP是一种动态类型语言。 PHP 每个请求进来时都会创建 fpm-worker 进程&#xff0c;从而导致系统并发高时 CPU 会产生频繁创建进程的开销&#xff0c;而 Go 不会。 golang 是先编译&#xff0c;后执行。由于编译方面…...

目标检测评价指标(一文看懂)

目标检测评价指标之——Precision&#xff0c;Recall&#xff0c;IOU&#xff0c;AP&#xff0c;mAP 看了一些介绍目标检测评价指标的文章&#xff0c;在此做一个小总结&#xff0c;供大家参考。 文章目录目标检测评价指标之——Precision&#xff0c;Recall&#xff0c;IOU&a…...

联系我们

谢谢您对腾达会计的关注如果您有任何问题或意见请通过以下方式和我们联络冠美会计地址 北京市丰台区总部基地汉威国际广场一区625-626室联系方式 免费服务热线:座机: 400-616-1111111-562xxxxx在线咨询 免费拨打...

object.assgin

对象赋值 我在vue中进对象赋值进行遇到其对象的observer id改变了 例子&#xff1a; 创建时控制台 图1&#xff1a; 点击后 图2&#xff1a; 为什么会遇到这种问题 其实是因为我们在进行对象赋值的时候是进行了直接赋值&#xff0c;直接赋值会照成其对象的指针改变了指向&…...

git 替换commit的账户与邮箱信息 GitLab: Committer‘s email does not follow the pattern

最终解决方法来源&#xff1a; https://segmentfault.com/q/1010000006999861 https://www.cnblogs.com/zh7791/p/12986083.html ① git rebase -i HEAD~N N代表前N次的提交记录 ② 出现记录后键入i进入INSERT模式&#xff0c;在需要修改的条目上&#xff0c;将pick改为edit…...

Java学习五阶段-RabbitMQ-SpringBoot整合

文章目录 新建项目pom.xmlapplication.yml主程序 简单模式主程序生产者消费者测试类 工作模式主程序生产者消费者测试类 ack模式设置 ack 模式手动执行确认操作 抓取数量发布和订阅模式主程序生产者消费者测试类 路由模式主程序生产者消费者测试类 主题模式主程序生产者消费者测…...

----- ElasticSearch -----

1.什么是RestFul 2.什么是全文检索 3.什么是Elastic Search 开源 Apache Lucen 工具包 java api特别多 solr 全文检索服务器 底层封装了lucene ElasticSearch 开源搜索引擎 java 4.ES中基本概念 1&#xff09;接近实时(NRT Near Real Time 2&#xff09;索引(index) 3&am…...

光线跟踪算法技术 笔记

P53 这里好像QT 哈哈...

防火墙高可靠性

双机热备、BFD双向转发检测、IP-LINK链路检测、Link-Group逻辑组、ETH-Trunk链路捆绑、Bypass&#xff0c;跨数据中心集群&#xff0c;双主控、业务板备份、数据中心会话同步 双机热备 目的&#xff1a;为了防止单点故障 实现&#xff1a;两台硬件软件相同的FW之间通过一条独…...

SQL server安装时显示重启计算机失败问题解决办法

SQL server安装时显示重启计算机失败问题解决办法参考文章&#xff1a; &#xff08;1&#xff09;SQL server安装时显示重启计算机失败问题解决办法 &#xff08;2&#xff09;https://www.cnblogs.com/netflix/p/12074481.html 备忘一下。...

MATLAB基础语法之拟合算法

%data1.mat数据如下 %导入data1的数据 load data1%以x为自变量&#xff0c;y为因变量&#xff0c;o为点的形状作散点图 plot(x,y,o)% 给x和y轴加上标签 xlabel(x的值)ylabel(y的值)%返回data1数据行数n 19 n size(x,1); %最小二乘法求解拟合曲线参数 k (n*su…...

小码哥【Java从0到架构师】wangpan学习记录

Java 从 0 到 架构师 第一阶段&#xff1a;Java 基础语法 第二阶段&#xff1a;JavaEE 基石 基本概念 环境搭建 Servlet_JSP MySQL 基础 多表查询 JDBC、Spring JDBC、JUnit JS_jQuery_BootStrap Maven 会话跟踪 Cookie_Session Filter_Listener_AJAX 第二阶段项目实战 - 个人…...

STM32F103驱动无刷直流电机应用思路

一、STM32F103驱动无刷直流电机基本思路 无刷电机控制是基于6步换相法如下图所示&#xff1a; 二、STM32F103驱动无刷直流电机方法介绍 通常我们用的方法是使用高级定时器3通道互补输出去驱动mos管&#xff0c;用通用定时器连接霍尔传感器去触发中断&#xff0c;在中断中换相&…...

安卓学习资料推荐-25

内容先看&#xff1a;■福布斯&#xff1a;iPhone不再酷了 青少年转向三星■少年心气-艾伦斯沃兹的传奇■2012移动互联网从业者薪资调查■招聘信息&#xff1a;搜狐、阿里巴巴、北京瑞意恒动科技、武汉颂大知育软件等■Android开发资料共享■源码分享■图书推荐 详见&#xff1…...

安卓学习资料推荐

内容先看&#xff1a;■福布斯&#xff1a;iPhone不再酷了 青少年转向三星■少年心气-艾伦斯沃兹的传奇■2012移动互联网从业者薪资调查■招聘信息&#xff1a;搜狐、阿里巴巴、北京瑞意恒动科技、武汉颂大知育软件等■Android开发资料共享■源码分享■图书推荐 详见&#xff1…...

2017——程序的路上走啊走

转眼间2017年也已经过去了&#xff0c;忙里偷闲在年前的最后一个假日总结一下今年的收获与得失&#xff0c;写时才突然想到去年竟然忘记了总结&#xff0c;在这家公司确实不知道为何会有如此在的压力&#xff0c;但压力更多的缺不是来自于工作上&#xff0c;更多的反而是对于公…...

教师教育网各网页链接

yanxiu.qlteacher.com zone.qlteacher.com quan.qlteacher.com jiang.qlteacher.com www.qlteacher.com id.qlteacher.com player.qlteacher.com blog.qlteacher.com...

相逢是首歌。。。

相逢是首歌。。。 [hjp3]hjptypesong&player1&sonhttp://file.qlteacher.com/upload/cz2010/medias/1008/06/164015639.mp3&autoplayyes&autoreplay1&bgcolorFFFFFF&width200&height20[/hjp3] 网上传来一首歌&#xff0c;轻轻打开&#xff0c;一…...

双功能连接试剂:Alkyne hydrazide,炔烃-酰肼 主要特点进行分享

Alkyne hydrazide物理参数&#xff1a; CAS号&#xff1a;N/A |英文名&#xff1a;Alkyne hydrazide | 中文名&#xff1a;炔烃-酰肼 货号&#xff1a;X-CL-1132 分子式&#xff1a;C6H11ClN2O 分子量&#xff1a;162.62 纯度&#xff1a;95% 外形&#xff1a;淡黄色或白…...

spring security 结合cas单点登录退出后的返回地址

cas 单点退出后跳转地址 http://happyqing.iteye.com/admin/blogs/1934087 spring security 结合cas单点登录退出后的返回地址 一.在配置的退出地址后面加上?service想返回的地址 如&#xff1a;http://cas.qlteacher.com/cas/logout?servicehttp://base.domain.com/base <…...

2016山东教师教育网- 一师一优课

http://1s1k.qlteacher.com/...

工作坊

2017年工作坊改版http://fang.qlteacher.com/ 点击打开链接...

项目介绍

https://yanxiu.qlteacher.com/...

Nginx下载限速

userwww www;worker_processes16;#error_loglogs/error.log;#error_loglogs/error.lognotice;#error_log/var/log/nginx.error.loginfo;pidlogs/nginx.pid;worker_rlimit_nofile 204800;events {worker_connections204800;}http {includemime.types;default_typeapplication/o...

android播放器(music player)源码分析4(StreamStarter,URLEncoder)

上一篇完成了百度MP3大类和小类的解析抽取&#xff0c;进一步需要进行歌曲资源抽取。例如抽取某个歌手的所有热歌&#xff0c;这里需要注意一点&#xff1a;url中如果包含有中文字符或者其他的一些特殊字符&#xff0c;例如空格&#xff0c;需要进行处理否则无法连接到网页&…...

点乘及叉乘

向量&#xff08;Vector&#xff09; 在几乎所有的几何问题中&#xff0c;向量&#xff08;有时也称矢量&#xff09;是一个基本点。向量的定义包含方向和一个数&#xff08;长度&#xff09;。在二维空间中&#xff0c;一个向量可以用一对x和y来表示。例如由点&#xff08;1,3…...

实现出现异常可重复执行的线程池-自定义标签(2)

上一篇日志中我们已经实现了线程池的功能&#xff0c;使其具有了失败重试功能&#xff0c;这节课我们主要实现的功能就是自定义spring标签&#xff0c;达到以下的效果&#xff1a; <qlt-utils:thread id"thread" retry"4" size"5"/> 这样看…...

java中return与finally的执行顺序分析(根据字节码分析)

大家应该都知道&#xff0c;在java中无论是否出异常&#xff0c;finally中的代码都会被执行的&#xff0c;所以我们经常在里面做些释放连接的工作。 但如果有返回值&#xff0c;return与finally是怎么样执行的呢&#xff1f;首先看下面代码。 Java代码 public class App { …...

Haproxy配置应用文档

一、配置HAProxy Session亲缘性的三种方式haproxy负载均衡保持客户端和服务器Session亲缘性的三种方式:1 用户IP 识别haroxy 将用户IP经过hash计算后 指定到固定的真实服务器上&#xff08;类似于nginx 的IP hash 指令&#xff09;配置指令 balance sourcebackend SOURCE_srvmo…...

山东小文

大家好 我是山东小文,从事网站建设&#xff0c;seo优化&#xff0c;希望大家多多关注。转载于:https://blog.51cto.com/sdxwen/412623...

基于元数据规则的大数据解决方案

实施大数据分析的目的 随着业务不断横向扩张与数据纵向的不断增多&#xff0c;编写基于事务数据库的跨库跨服务程序解决统计、报表、内容搜索等&#xff0c;越来越麻烦且时效性差。我们需要一个数仓聚合数据解决这些问题&#xff0c;并期望带来如智能推荐、即席报表等业务能力…...

山东教师教育网-山东教育志愿者服务网

点击打开链接http://www.sdjyzyz.com/...

山东教师教育网-404、登录、密码找回、常见问题、绑定已有账户

...