hive基础知识五

Hive 主流文件存储格式对比

1、存储文件的压缩比测试

1.1 测试数据
https://github.com/liufengji/Compression_Format_Data
?
log.txt 大小为18.1 M
1.2 TextFile
  • 创建表,存储数据格式为TextFile
create table log_text (
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/hadoop/log.txt‘ into table log_text ;
  • 查看表的数据量大小
dfs -du -h /user/hive/warehouse/log_text;
?
+------------------------------------------------+--+
|                   DFS Output                   |
+------------------------------------------------+--+
| 18.1 M  /user/hive/warehouse/log_text/log.txt  |
+------------------------------------------------+--+
1.3 Parquet
  • 创建表,存储数据格式为 parquet
create table log_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 table log_parquet select * from log_text;
  • 查看表的数据量大小
dfs -du -h /user/hive/warehouse/log_parquet;
?
+----------------------------------------------------+--+
|                     DFS Output                     |
+----------------------------------------------------+--+
| 13.1 M  /user/hive/warehouse/log_parquet/000000_0  |
+----------------------------------------------------+--+
1.4 ORC
  • 创建表,存储数据格式为ORC
create table log_orc  (
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 orc  ;
  • 向表中加载数据
insert into table log_orc select * from log_text ;
  • 查看表的数据量大小
dfs -du -h /user/hive/warehouse/log_orc;
+-----------------------------------------------+--+
|                  DFS Output                   |
+-----------------------------------------------+--+
| 2.8 M  /user/hive/warehouse/log_orc/000000_0  |
+-----------------------------------------------+--+
1.5 存储文件的压缩比总结
ORC >  Parquet >  textFile

2、存储文件的查询速度测试

2.1 TextFile
select count(*) from log_text;
+---------+--+
|   _c0   |
+---------+--+
| 100000  |
+---------+--+
1 row selected (16.99 seconds)
2.2 Parquet
select count(*) from log_parquet;
+---------+--+
|   _c0   |
+---------+--+
| 100000  |
+---------+--+
1 row selected (17.994 seconds)
2.3 ORC
select count(*) from log_orc;
+---------+--+
|   _c0   |
+---------+--+
| 100000  |
+---------+--+
1 row selected (15.943 seconds)
2.4 存储文件的查询速度总结
ORC > TextFile > Parquet

3、存储和压缩结合

3.1 创建一个非压缩的的ORC存储方式表
  • 1、创建一个非压缩的的ORC表
create table log_orc_none (
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 orc tblproperties("orc.compress"="NONE") ;
  • 2、加载数据
insert into table log_orc_none select * from log_text ;
  • 3、查看表的数据量大小
dfs -du -h /user/hive/warehouse/log_orc_none;
+----------------------------------------------------+--+
|                     DFS Output                     |
+----------------------------------------------------+--+
| 7.7 M  /user/hive/warehouse/log_orc_none/000000_0  |
+----------------------------------------------------+--+
3.2 创建一个snappy压缩的ORC存储方式表
  • 1、创建一个snappy压缩的的ORC表
create table log_orc_snappy (
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 orc tblproperties("orc.compress"="SNAPPY") ;
  • 2、加载数据
insert into table log_orc_snappy select * from log_text ;
  • 3、查看表的数据量大小
dfs -du -h /user/hive/warehouse/log_orc_snappy;
+------------------------------------------------------+--+
|                      DFS Output                      |
+------------------------------------------------------+--+
| 3.8 M  /user/hive/warehouse/log_orc_snappy/000000_0  |
+------------------------------------------------------+--+
3.3 创建一个ZLIB压缩的ORC存储方式表
  • 不指定压缩格式的就是默认的采用ZLIB压缩

    • 可以参考上面创建的 log_orc 表
  • 查看表的数据量大小
dfs -du -h /user/hive/warehouse/log_orc;
+-----------------------------------------------+--+
|                  DFS Output                   |
+-----------------------------------------------+--+
| 2.8 M  /user/hive/warehouse/log_orc/000000_0  |
+-----------------------------------------------+--+
3.4 存储方式和压缩总结
  • orc 默认的压缩方式ZLIB比Snappy压缩的还小。
  • 在实际的项目开发当中,hive表的数据存储方式一般选择:orc或parquet
  • 由于snappy的压缩和解压缩 效率都比较高,压缩方式一般选择snappy

原文地址:https://www.cnblogs.com/lojun/p/11396793.html

时间: 2024-08-29 22:28:25

hive基础知识五的相关文章

ASP.NET Core 2.2 基础知识(五) 环境

原文:ASP.NET Core 2.2 基础知识(五) 环境 一.环境变量 系统启动时,会读取环境变量 ASPNETCORE_ENVIRONMENT ,并将该变量的值存储在 IHostingEnvironment.EnvironmentName 字段中.如: 新建一个 WebAPI 项目,修改 Configure 方法: public void Configure(IApplicationBuilder app, IHostingEnvironment env) { ...... { app.R

Linux 基础知识(五)

一.每12小时备份并压缩/etc/目录到/back目录中,保存文件名格式为,etc-年-月-日-时-分.tar.gz) crontab -e *12/*** /usr/bin/tar -czf `date +%F-%H-%M`-etc.tar.gz /etc/ ??二.rpm包管理功能总结以及实例应用演示rpm命令:rpm [OPTIONS] [PACKAGE_FILE]安装:-i, --install升级:-U, --update, -F, --freshen卸载:-e, --erase查询:

C# 基础知识 (五).变量类型和字符串处理

        这篇文章是阅读<C#入门经典(Beginning C#)>书籍里面的内容,作者Karli Watson.主要包括自己缺乏的一些C#基础知识和在线笔记使用,文章主要包括C#简单变量类型和复杂变量类型.命名规则.隐式转换和显示转换.变量字符串处理等内容,都是非常基础的知识,希望对初学者有所帮助. 一. C#简单变量类型和命名规则         简单类型组成应用程序中基本构件的类型,其中主要有以下类型: 整数类型 sbyte(-128~127之间整数) byte(0~255之间整数

Python基础知识(五)------字典

Python基础知识(四)------字典 字典 一丶什么是字典 ? dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 ? 键: 必须是可哈希,(不可变的数据类型),必须是唯一的 ? 值: 任意数据类型 特点: ? 查询的效率非常高,通过key来查找元素 ? 内部使用key来计算一个内存地址(暂时), hash算法,key必须是不可变的数据类型(key 必须是可哈希的数据类型),key必须是不可变的数据类型 ? 字典是无序的, python3.6版本以上,默

《Programming Hive》读书笔记(二)Hive基础知识

阅读方法:第一遍读是浏览,建立知识索引,因为有些知识不一定能用到,知道就好.感兴趣的部分可以多研究. 以后用的时候再详细看,并结合其他资料一起. Chapter 3.Data Types and File Formats 原始数据类型和集合数据类型 Select出来的数据,列与列之间的分隔符可以指定 Chapter 4.HiveQL:Data Definition 创建数据库,创建和改动表,分区的操作 Chapter 5.HiveQL:Data Manipulation 1 加载数据和导出数据,

Hive基础知识

一.Hive简介什么是Hive为什么使用Hive面临的问题:为什么要使用Hive:二.Hive结构三.Hive支持的格式四.表的操作创建表删除表清空表修改表修改字段名与字段类型增加列修改列的顺序删除列替换表修改字段顺序其他操作查看表信息查看建表信息查看格式信息改变表文件格式查看函数五.数据操作1.插入数据从文件读取数据从其他结果集插入2.分区和分桶创建分区表查看分区插入分区数据添加分区重命名分区删除分区分区使用分桶六.复合类型ArrayMap七.创建视图和索引以及数据缓存视图创建视图删除视图索引

《Programming Hive》读书笔记(两)Hive基础知识

:第一遍读是浏览.建立知识索引,由于有些知识不一定能用到,知道就好.感兴趣的部分能够多研究. 以后用的时候再具体看.并结合其它资料一起. Chapter 3.Data Types and File Formats 原始数据类型和集合数据类型 Select出来的数据,列与列之间的分隔符能够指定 Chapter 4.HiveQL:Data Definition 创建数据库,创建和修改表,分区的操作 Chapter 5.HiveQL:Data Manipulation 1 载入数据和导出数据,应该从本

hive基础知识四

1. hive表的数据压缩 1.1 数据的压缩说明 压缩模式评价 可使用以下三种标准对压缩方式进行评价 1.压缩比:压缩比越高,压缩后文件越小,所以压缩比越高越好 2.压缩时间:越快越好 3.已经压缩的格式文件是否可以再分割:可以分割的格式允许单一文件由多个Mapper程序处理,可以更好的并行化 常见压缩格式 压缩方式 压缩比 压缩速度 解压缩速度 是否可分割 gzip 13.4% 21 MB/s 118 MB/s 否 bzip2 13.2% 2.4MB/s 9.5MB/s 是 lzo 20.5

python基础知识五

数据结构基本上就是---它们可以处理一些数据的结构.或者说,它们是用来存储一组相关数据的. python中有三种内建的数据结构---列表.元祖和字典. 我们将会学习如何使用它们,以及它们如何使编程变得简单. 列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目.假想你有一个购物列表,上面记载着你要买的东西,你就容易理解列表了.只不过在你的购物表上,可能每样东西都独自占有一行,而在python中,你在每个项目之间用逗号分隔. 列表中的项目应该包括在方括号中,这样pyt