hive的存储格式
1) 四种存储格式
hive的存储格式分为两大类:一类纯文本文件,一类是二进制文件存储。
Hive支持的存储数据的格式主要有:TEXTFILE、SEQUENCEFILE、ORC、PARQUET
第一类:纯文本文件存储
textfile: 纯文本文件存储格式,不压缩,也是hive的默认存储格式,磁盘开销大,数据解析开销大
第二类:二进制文件存储
- sequencefile:
会压缩,不能使用load方式加载数据
- parquet:
会压缩,不能使用load方式加载数据
- rcfile:
会压缩,不能load。查询性能高,写操作慢,所需内存大,计算量大。此格式为行列混合存储,hive在该格式下,会尽量将附近的行和列的块存储到一起。
- orcfile:rcfile的升级版。
2)列式存储和行式存储
TEXTFILE和SEQUENCEFILE的存储格式都是基于行存储的;
ORC和PARQUET是基于列式存储的。
行式存储:查找某一条整行数据比较快
列式存储:查找某个字段比较快 select name from user;
修改hive的默认存储格式:
<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>也可以使用set方式修改:
set hive.default.fileformat=TextFile
textfile类型演示:
create table stocks_1 (track_time string,url string,session_id string,referer string,ip string,end_user_id string,city_id string
)
row format delimited fields terminated by '\t'
stored as textfile;load data local inpath '/home/hivedata/stocks.log' into table stocks_1;
在linux的命令行上使用hdfs dfs -put方法去上传到指定目录下。
可以查看到数据,说明是文本类型的。
sequencefile 的使用
create external table if not exists stocks_seq_1 (track_time string,url string,session_id string,referer string,ip string,end_user_id string,city_id string
)
row format delimited fields terminated by '\t'
stored as sequencefile;由于不能load数据,从普通表中查询出来插入进入。
使用insert into的方式加载数据
insert into stocks_seq_1 select * from stocks_1 ;
或者使用克隆的方式:
create table stocks_seq_2 stored as sequencefile as select * from stocks_1;
查看数据,是乱码,说明是二进制文件
parquetfile 类型
create external table if not exists stocks_parquet (
track_time string,
url string,
session_id string,
referer string,
ip string,
end_user_id string,
city_id string
)
row format delimited
fields terminated by '\t'
stored as parquet;使用insert into的方式加载数据
insert into stocks_parquet select * from stocks_1 ;
或者使用克隆的方式:
create table stocks_parquet_1 stored as parquet as select * from stocks_1;
rcfile类型:
create external table if not exists stocks_rcfile (
track_time string,
url string,
session_id string,
referer string,
ip string,
end_user_id string,
city_id string
)
row format delimited
fields terminated by '\t'
stored as rcfile;使用insert into的方式加载数据
insert into stocks_rcfile select * from stocks_1;
或者使用克隆的方式:
create table stocks_rcfile_2 stored as rcfile as select * from stocks_1;
orcfile类型:rcfile的升级版
create external table if not exists stocks_orcfile (
track_time string,
url string,
session_id string,
referer string,
ip string,
end_user_id string,
city_id string
)
row format delimited
fields terminated by ','
stored as orcfile;使用insert into的方式加载数据
insert into stocks_orcfile select * from stocks_1;
或者使用克隆的方式:
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;
比较一下上述五个查询所需要的时间
文件存储格式是真正的压缩吗? 每一种文件文件格式有一定的压缩比例,但是不是真正的压缩,而是文件格式带来的。
相关文章:
hive的存储格式
1) 四种存储格式 hive的存储格式分为两大类:一类纯文本文件,一类是二进制文件存储。 Hive支持的存储数据的格式主要有:TEXTFILE、SEQUENCEFILE、ORC、PARQUET 第一类:纯文本文件存储 textfile: 纯文本文件存储格式…...
鸿蒙学习高效开发与测试-应用程序框架(3)
文章目录 1、应用程序框架1、规范化后台进程管理2、原生支持分布式3、支持多设备的统一窗口管理4、 组件共享及面向对象5、逻辑与界面解耦6、灵活扩展机制2、HarmonyOS SDK1、 开放能力 Kit2、开放能力的检索和使用3、 方舟工具链4、前端编译器架构1、应用程序框架 应 用 程 序…...
什么命令可以查看数据库中表的结构
1. MySQL 查看表结构 sql 复制代码 DESCRIBE 表名; 或者: sql 复制代码 SHOW COLUMNS FROM 表名; 更详细的表信息 sql 复制代码 SHOW CREATE TABLE 表名; 2. PostgreSQL 查看表结构 sql 复制代码 \d 表名 列出表的字段及类型 sql 复制代码 SELECT column_name, da…...
django基于python 语言的酒店推荐系统
摘 要 酒店推荐系统旨在提供一个全面酒店推荐在线平台,该系统允许用户浏览不同的客房类型,并根据个人偏好和需求推荐合适的酒店客房。用户可以便捷地进行客房预订,并在抵达后简化入住登记流程。为了确保连续的住宿体验,系统还提供…...
【深度学习|onnx】往onnx中写入训练的超参或者类别等信息,并在推理时读取
1、往onnx中写入 在训练完毕之后,我们先使用torch.onnx.export() 导出onnx模型,然后我们再使用以下代码来往metadata中写入信息: # Metadatad {# stride: int(max(model.stride)),names: model.names,mean : [0,0,0],std : [1,1,1],normali…...
WebSocket详解、WebSocket入门案例
目录 1.1 WebSocket介绍 http协议: webSocket协议: 1.2WebSocket协议: 1.3客户端(浏览器)实现 1.3.2 WebSocket对象的相关事宜: 1.3.3 WebSOcket方法 1.4 服务端实现 服务端如何接收客户端发送的请…...
05_Spring JdbcTemplate
在继续了解Spring的核心知识前,我们先看看Spring的一个模板类JdbcTemplate,它是一个JDBC的模板类,用来简化JDBC的操作。 接下来以实际来进行说明 一、实例环境准备 数据库及表准备 我们在本地mysql中新增一个数据库test,并新增一张数据表:user create database if not…...
Bug:引入Feign后触发了2次、4次ContextRefreshedEvent
Bug:引入Feign后发现监控onApplication中ContextRefreshedEvent事件触发了2次或者4次。 【原理】在Spring的文档注释中提示到: Event raised when an {code ApplicationContext} gets initialized or refreshed.即当 ApplicationContext 进行初始化或者刷…...
最新VSCode保姆级安装教程(附安装包)
文章目录 一、VSCode介绍 二、VSCode下载 下载链接:https://pan.quark.cn/s/19a303ff81fc 三、VSCode安装 1.解压安装文件:双击打开并安装VSCode 2.勾选我同意协议:然后点击下一步 3.选择目标位置:点击浏览 4.选择D盘安装&…...
layui 表格点击编辑感觉很好用,实现方法如下
1. 在 HTML 页面中引入 layui 的相关资源文件:html <link rel"stylesheet" href"https://cdn.staticfile.org/layui/2.5.6/css/layui.css"> <script src"https://cdn.staticfile.org/layui/2.5.6/layui.js"></script&…...
三十一、构建完善微服务——API 网关
一、API 网关基础 系统拆分为微服务后,内部的微服务之间是互联互通的,相互之间的访问都是点对点的。如果外部系统想调用系统的某个功能,也采取点对点的方式,则外部系统会非常“头大”。因为在外部系统看来,它不需要也没…...
非对称之美(贪心)
非对称之美(贪心) import java.util.*; public class Main{public static void main(String[] arg) {Scanner in new Scanner(System.in);char[] ch in.next().toCharArray(); int n ch.length; int flag 1;for(int i 1; i < n; i) {if(ch[i] ! ch[0]) {flag …...
详细教程-Linux上安装单机版的Hadoop
1、上传Hadoop安装包至linux并解压 tar -zxvf hadoop-2.6.0-cdh5.15.2.tar.gz 安装包: 链接:https://pan.baidu.com/s/1u59OLTJctKmm9YVWr_F-Cg 提取码:0pfj 2、配置免密码登录 生成秘钥: ssh-keygen -t rsa -P 将秘钥写入认…...
C#桌面应用制作计算器进阶版01
基于C#桌面应用制作计算器做出了少量改动,其主要改动为新增加了一个label控件,使其每一步运算结果由label2展示出来,而当点击“”时,最终运算结果将由label1展示出来,此时label清空。 修改后运行效果 修改后全篇代码 …...
[开源] 告别黑苹果!用docker安装MacOS体验苹果系统
没用过苹果电脑的朋友可能会对苹果系统好奇,有人甚至会为了尝鲜MacOS去折腾黑苹果。如果你只是想体验一下MacOS,这里有个更简单更优雅的解决方案,用docker安装MacOS来体验苹果系统。 一、项目简介 项目描述 Docker 容器内的 OSX(…...
多模态大模型(4)--InstructBLIP
BLIP-2通过冻结的指令调优LLM以理解视觉输入,展示了在图像到文本生成中遵循指令的初步能力。然而,由于额外的视觉输入由于输入分布和任务多样性,构建通用视觉语言模型面临很大的挑战。因而,在视觉领域,指令调优技术仍未…...
【Linux】基于 Busybox 构建嵌入式 Linux(未完成)
嵌入式 Linux 1.需要 Toolchain 2.需要 Bootloader 3.需要嵌入式 Linux 基本组件: Linux kernelDTBRoot filesystem InitShellDaemonShared librariesConfiguration fileDevice nodeproc and sysKernel Module 基于 Busybox 构建 1.编译 Linux kernel 2.编译 …...
Unet++改进38:添加GLSA(2024最新改进方法)具有聚合和表示全局和局部空间特征的能力,这有利于分别定位大目标和小目标
本文内容:添加GLSA注意力机制 目录 论文简介 1.步骤一 2.步骤二 3.步骤三 4.步骤四 论文简介 基于变压器的模型已经被广泛证明是成功的计算机视觉任务,通过建模远程依赖关系和捕获全局表示。然而,它们往往被大模式的特征所主导,导致局部细节(例如边界和小物体)的丢失…...
c++中mystring运算符重载
#include <iostream> #include <cstring>using namespace std;class mystring {char* buf; public:mystring(); //构造函数mystring(const char * str); //构造函数mystring(const mystring& str); //深拷贝函数void show(); //输出函数void setmystr(const my…...
图像处理 - 色彩空间转换
色彩空间转换的含义与原理 色彩空间转换是指将一种颜色模型或表示方式中的颜色数据映射到另一种颜色模型中的过程。色彩空间(Color Space)本质上是一个三维坐标系统,每个点都表示图像中的某种颜色。在实际应用中,由于不同的色彩空…...
MariaDB面试题及参考答案
什么是 MariaDB? MariaDB 是一个开源的关系型数据库管理系统,它是 MySQL 数据库的一个分支。它的主要目的是存储和管理数据,采用了关系模型,数据存储在表中,表之间可以通过关联建立关系。 从起源来讲,Maria…...
PostgreSQL常用字符串函数与示例说明
文章目录 coalesce字符串位置(position strpos)字符串长度与大小写转换去掉空格(trim ltrim rtrim)字符串连接(concat)字符串替换简单替换(replace)替换指定位置长度(overlay)正则替换(regexp_replace) 字符串匹配字符串拆分split_part(拆分数组取指定位置的值)string_to_array…...
力扣第58题:最后一个单词的长度
力扣第58题是 最后一个单词的长度,具体要求是给定一个字符串,找到其最后一个单词的长度。 题目描述 输入:一个由字母和空格组成的字符串 s,可以包含大小写字母和若干空格。 输出:最后一个单词的长度。 注意…...
【Maven】Nexus几个仓库的介绍
在 Nexus 仓库管理器中,maven-central、maven-public、maven-releases 和 maven-snapshots 是常用的 Maven 仓库类型。每个仓库都有其特定的用途和功能。以下是对这些仓库的详细介绍: 1. maven-central 类型:代理仓库(Proxy Rep…...
SSH免密登陆
一、生成SSH密钥对 在客户端主机 ClientHost上,以 root用户身份生成SSH密钥对: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" # -t rsa:指定使用RSA算法 # -b 4096:指定密钥长度为4096位 # -C ""…...
【Linux】Namespace
一、概念 Linux Namespace 是 Linux 内核提供的一种特性,用于对系统资源进行隔离。通过 Namespace,不同的进程组可以拥有独立的系统资源视图,即使它们在同一台物理机器上运行。这种隔离机制使得容器技术成为可能,因为它允许在单个…...
SQLite 和 MySQL语法区别
SQLite 和 MySQL 在 SQL 语法上有一些差异,这些差异主要体现在数据类型、函数、表和索引的管理等方面。以下是一些主要的不同之处: 1. 数据类型 SQLite 支持的数据类型包括:TEXT, INTEGER, REAL, BLOB。动态类型系统,允许在插入…...
基于BERT的命名体识别(NER)
基于BERT的命名实体识别(NER) 目录 项目背景项目结构环境准备数据准备代码实现 5.1 数据预处理 (src/preprocess.py)5.2 模型训练 (src/train.py)5.3 模型评估 (src/evaluate.py)5.4 模型推理 (src/inference.py) 项目运行 6.1 一键运行脚本 (run.sh)6…...
华为云鸿蒙应用入门级开发者认证考试题库(理论题和实验题)
注意:考试链接地址:华为云鸿蒙应用入门级学习认证_华为云鸿蒙应用入门级开发者认证_华为云开发者学堂-华为云 当前认证打折之后是1元,之后原价700元,大家尽快考试!考试题库里面答案不一定全对,但是可以保证…...
SpringBoot+React养老院管理系统 附带详细运行指导视频
文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码1.入住合同文件上传2.添加和修改套餐的代码3.查看入住记录代码 一、项目演示 项目演示地址: 视频地址 二、项目介绍 项目描述:这是一个基于SpringBootReact框架开发的养老院管理系统。首先…...
金融网站开发公司/aso优化app推广
线程池 Java中线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池.在开发过程中, 合理使用线程池能够带来三个好处 : 1.降低资源消耗. 通过重复利用已创建的线程降低线程创建和销毁造成的消耗2.提高响应速度.当任务到达时, 任务可以不需要…...
macbook air做网站/2023年6月份疫情严重吗
PagerAdapter的方法getCount() 获取viewpager中有多少view instantiateItem() 1.将给定的view添加到viewGroup(容器)中,创建并显示出来 2.返回一个代表新增页面的object(key),通常都是直接返回view本身就可以了&…...
wap网站建设免费/官方网站怎么查询
GeoJSON介绍GeoJSON是一种地理数据的描述格式。GeoJSON可以描述的对象包括:几何体,要素和要素集。这里几何体(Geometry)的类型有我们熟悉的点(Point),线(LineString),面(Polygon), 多点(MultiPoint),多线(MultiLineString),多面( MultiPolygon)和几何体集…...
网站服务器多少钱一年/百度知道合伙人官网登录入口
leetcode 297. Serialize and Deserialize Binary Tree 找工作面试的过程中碰见了一道出场率很高的面试题,在leetcode上有这道题,属于hard难度,leetcode297-实现二叉树的序列化和反序列化。用了两种方法,一种按层次(BFS)进行序列…...
网站推广公司兴田德润/网络推广外包公司干什么的
ruby 变量类中范围Ranges are a sequence of data. For example, numbers 0 through 9 are a range. Letters a through z are a range. We can also define our own range. 范围是数据序列。 例如,数字0到9是一个范围。 字母a到z是一个range 。 我们还可以定义自己…...
提供手机网站制作哪家好/襄阳seo
用单调栈维护斜率,使之斜率单调递增,左右各跑一遍,具体的可以看代码里的注释 #include<cstdio> #include<algorithm> #include<iostream> #include<cstring> #include<cmath> #include <iomanip> #defi…...