Hive存储格式

news2024/12/29 2:41:58

hive的存储格式

hive的存储格式分为两大类:一类纯文本文件,一类是二进制文件存储。

第一类: 纯文本文件存储

textfile: 纯文本文件存储格式,不压缩,也是hive的默认存储格式,磁盘开销大,数据解析开销大
复制代码

第二类:二进制文件存储

- sequencefile:
    会压缩,不能使用load方式加载数据
- parquet:
    会压缩,不能使用load方式加载数据
- rcfile:
    会压缩,不能load。查询性能高,写操作慢,所需内存大,计算量大。此格式为行列混合存储,hive在该格式
    下,会尽量将附近的行和列的块存储到一起。
- orcfile:rcfile的升级版

复制代码

存储格式的配置项

<property>
    <name>hive.default.fileformat</name>
    <value>TextFile</value>
    <description>
    Expects one of [textfile, sequencefile, rcfile, orc].
    Default file format for CREATE TABLE statement. Users can explicitly override it by CREATE TABLE ... STORED AS [FORMAT]
    </description>
</property>
复制代码

案例测试:

案例1:textfile

create external table if not exists stocks_1 (
exchange1 string,
symbol string,
ymd string,
price_open float,
price_high float,
price_low float,
price_close float,
volume int,
price_adj_close float
)
row format delimited
fields terminated by ','
stored as textfile;

load data local inpath './data/stocks.csv' into table stocks_1;
在linux的命令行上使用hdfs dfs -put方法去上传到指定目录下。
复制代码

文末扫码有惊喜!

案例2: sequencefile

create external table if not exists stocks_seq_1 (
exchange1 string,
symbol string,
ymd string,
price_open float,
price_high float,
price_low float,
price_close float,
volume int,
price_adj_close float
)
row format delimited
fields terminated by ','
stored as sequencefile
;

使用insert into的方式加载数据
from stocks_1
insert into stocks_seq_1 select *
;

或者使用克隆的方式:
create table stocks_seq_2 stored as sequencefile as select * from stocks_1;
复制代码

案例3:parquet

create external table if not exists stocks_parquet (
exchange1 string,
symbol string,
ymd string,
price_open float,
price_high float,
price_low float,
price_close float,
volume int,
price_adj_close float
)
row format delimited
fields terminated by ','
stored as parquet
;

使用insert into的方式加载数据
from stocks_1
insert into stocks_parquet select *
;

或者使用克隆的方式:
create table stocks_parquet_1 stored as parquet as select * from stocks_1;
复制代码

案例4:rcfile

create external table if not exists stocks_rcfile (
exchange1 string,
symbol string,
ymd string,
price_open float,
price_high float,
price_low float,
price_close float,
volume int,
price_adj_close float
)
row format delimited
fields terminated by ','
stored as rcfile
;

使用insert into的方式加载数据
from stocks_1
insert into stocks_rcfile select *
;

或者使用克隆的方式:
create table stocks_rcfile_2 stored as rcfile as select * from stocks_1;
复制代码

案例5:orcfile

create external table if not exists stocks_orcfile (
exchange1 string,
symbol string,
ymd string,
price_open float,
price_high float,
price_low float,
price_close float,
volume int,
price_adj_close float
)
row format delimited
fields terminated by ','
stored as orcfile
;

使用insert into的方式加载数据
from stocks_1
insert into stocks_orcfile select *
;

或者使用克隆的方式:
create table stocks_orcfile_2 stored as orcfile as select * from stocks_1;
复制代码

测试性能:

select count(*) from stocks_1;
select count(*) from stocks_seq_1;
select count(*) from stocks_parquet;       
select count(*) from stocks_rcfile;
select count(*) from stocks_orcfile;
比较一下上述五个查询所需要的时间

更多大数据精彩内容欢迎B站搜索“千锋教育”或者扫码领取全套资料

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

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

相关文章

3. 说说Java“锁“事

3.1 从轻松的乐观锁和悲观锁开讲 ● 悲观锁&#xff1a; 认为自己在使用数据的时候一定有别的线程来修改数据&#xff0c;因此在获取数据的时候会先加锁&#xff0c;确保数据不会被别的线程修改&#xff0c;synchronized和Lock的实现类都是悲观锁&#xff0c;适合写操作多的场…

WhaleHiking的“三山五岳”第一站:泰山

Datawhale团队 来源&#xff1a;whaleHiking 开场白 大家应该都听说过杜甫的《望岳》——“会当凌绝顶&#xff0c;一览众山小。”&#xff0c;每次看见这句诗的时候&#xff0c;总想去泰山看一看&#xff0c;感受诗中的壮美山河景色&#xff01; 机不可失时不再来&#xff0c…

JVM图解

JVM图解 一、JVM的运行时数据区 概览JVM运行时数据区主要包括以下几个部分&#xff1a;程序计数器、虚拟机栈、本地方法栈、方法区、堆&#xff1b;其中 栈是运行时的单位&#xff0c;而堆是存储的单位&#xff01; 1.程序计数器 程序计数器可以看作是当前线程所执行的字节码…

调用阿里API实现银行卡实名认证

调用阿里API实现银行卡实名认证 1&#xff0e;作者介绍2&#xff0e;算法介绍2.1 阿里云技术介绍2.2 API介绍 3&#xff0e;实验代码3.1 调用阿里云API流程3.2 代码实现3.2.1完整代码3.2.2实验结果 4&#xff0e;报错分析5&#xff0e;参考链接 1&#xff0e;作者介绍 薛维哥&…

针对潜在客户CRM如何进行管理?

CRM客户管理系统可以帮助企业管理客户&#xff0c;提高客户转化率&#xff0c;增加企业收入和利润。那么&#xff0c;在CRM中如何进行潜在客户管理呢&#xff1f;本文将从以下几个方面来为您解答。 一、什么是潜在客户&#xff1f; 潜在客户是指对企业的产品或服务有意向&…

驱动开发:内核遍历文件或目录

在笔者前一篇文章《驱动开发&#xff1a;内核文件读写系列函数》简单的介绍了内核中如何对文件进行基本的读写操作&#xff0c;本章我们将实现内核下遍历文件或目录这一功能&#xff0c;该功能的实现需要依赖于ZwQueryDirectoryFile这个内核API函数来实现&#xff0c;该函数可返…

docker的资源控制

一、CPU控制 cgroups&#xff0c;是一个非常强大的linux内核工具&#xff0c;他不仅可以限制被namespace隔离起来的资源, 还可以为资源设置权重、计算使用量、操控进程启停等等。所以cgroups (Control groups) 实现了对资源的配额和度量。 cgroups有四大功能: 资源限制:可以…

报表生成器FastReport .Net用户指南:“Picture“对象

FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案&#xff0c;使用FastReport .NET可以创建独立于应用程序的.NET报表&#xff0c;同时FastReport .Net支持中文、英语等14种语言&#xff0c;可以让你的产品保证真正的国际性。 FastReport.NET官方版…

【30天熟悉Go语言】6 Go 复杂数据类型之指针

文章目录 一、前言二、数据类型总览三、指针1、特殊运算符& *2、内存角度来看指针3、使用指针修改数据4、指针使用的注意事项5、对比着看Java的引用类型 三、总结 一、前言 Go系列文章&#xff1a; GO开篇&#xff1a;手握Java走进Golang的世界2 Go开发环境搭建、Hello Wor…

Zstack实习-基础知识总结归纳-待更新

什么是虚拟化&#xff1f; 虚拟化技术是一种将物理计算资源&#xff0c;如服务器、存储和网络等&#xff0c;转化成虚拟的逻辑资源的技术。通过虚拟化技术&#xff0c;可以将多个独立的操作系统运行在同一台物理计算机上&#xff0c;实现资源的共享&#xff0c;提高硬件的利用率…

C++那些事之项目篇Catch2

C那些事之项目篇Catch2 今天推荐一个值得学习的开源项目"Catch2" &#xff0c;之前写过如何使用google的googletest编写单元测试&#xff0c;你会发现需要编译生成lib库&#xff0c;比较麻烦&#xff0c;而Catch2是一个Header only库&#xff0c;能够快速使用&#x…

Python3数据分析与挖掘建模(13)复合分析-因子关分析与小结

1.因子分析 1.1 探索性因子分析 探索性因子分析&#xff08;Exploratory Factor Analysis&#xff0c;EFA&#xff09;是一种统计方法&#xff0c;用于分析观测变量之间的潜在结构和关联性。它旨在确定多个观测变量是否可以归结为较少数量的潜在因子&#xff0c;从而帮助简化…

机器学习笔记 - 多实例学习(MIL)弱监督学习

一、多实例学习概述 多实例学习(MIL)是一种弱监督学习形式,其中训练实例被排列在称为袋的集合中,并为整个袋提供标签。这种方式越来越受到人们的关注,因为它自然适合各种问题,并允许利用弱标记数据。因此,它被应用于计算机视觉和文档分类等不同的应用领域。 多实例学习(…

【国产虚拟仪器】基于 ZYNQ的声发射采集系统方案

系 统 的 整 体 设 计 流 程 为 根 据 上 述 设 计 需 求 进 行 硬 件 设 备 的 选 型 并 搭 建 起 声 发 射 采 集 系 统 的 硬 件 平 台 &#xff0c; 在 该平 台 上 进行 声 发 射 采 集 板 卡 的 设 计 并 根 据 要求进行 上 位 机…

2023上半年的九个觉悟

‍觉悟&#xff0c;就是觉了、悟了。有时候&#xff0c;你看到一句话&#xff0c;突然就觉悟了。 一、资本主义的问题 “资本主义把我们都缩减成了一个东西&#xff1a;消费者” 因此&#xff0c;人人都成为资本家利诱、操控、围猎的对象。 同时&#xff0c;金钱成为全民的神&a…

【PHP】Wampserver启动时呈现黄色的解决方案

首先&#xff0c;我们可以进入服务查看WampServer的服务是哪几个没有开&#xff1f; 经观察上图发现&#xff1a; apache没有开启sql没有开启 如果你点击开启&#xff0c;将会出现报错信息&#xff0c;因为服务冲突 所以解决方式就是&#xff1a;关闭冲突服务&#xff0c;再次…

基于SpringBoot+Vue的校园台球厅人员与设备管理系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

基于JavaWeb SSM mybatis 学生信息管理系统设计和实现以及文档报告

基于JavaWeb SSM mybatis 学生信息管理系统设计和实现以及文档报告 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源…

想要更好地理解大模型架构?从计算参数量快速入手

编者按&#xff1a;要理解一种新的机器学习架构&#xff08;以及其他任何新技术&#xff09;&#xff0c;最有效的方法就是从头开始实现它。然而&#xff0c;还有一种更简单的方法——计算参数数量。 通过计算参数数量&#xff0c;读者可以更好地理解模型架构&#xff0c;并检查…

LBP特征提取

文章目录 1 LBP原理及其扩展1.1 原始LBP1.2 圆形LBP1.3 旋转不变LBP1.4 Uniform Pattern LBP1.5 MB-LBP 2. 对于边缘点的处理3. LBP的Python应用4. LBPH算法及其应用4.1 LBPH算法原理4.2 LBPH识别应用 5. 源码仓库地址 LBP指局部二值模式&#xff0c;英文全称&#xff1a;Local…