0. 说明

  Hive 的存储格式 | textfile | sequencefile | rcfile | orc | parquet |


1. Hive的存储格式

  1.1 textfile

  行式存储

  1.2 sequencefile

  二进制的k-v对,行式存储

  配置块压缩

  SET hive.exec.compress.output=true;
  SET io.seqfile.compression.type=BLOCK;

  1.3 rcfile

  列式存储

  先将数据进行横切(4M),成为行组,行组内又纵向切割分为多个字段

  1.4 orc

  列式存储

  比 rc 文件更大的块(256M),优化磁盘的线性读取,通过指定的编码器确定数据类型并优化压缩
  还存储了基本统计数据,比如 min,max,sum,count。。。

  1.5 parquet

  列式存储

  适用范围更广(在 Hadoop 生态系统中)
  适用于嵌套文件格式


2. 测试

  2.0 前期配置

  设置 Hive自动使用本地模式

SET hive.exec.mode.local.auto=true;

  输入文件大小低于此值会进入本地模式

SET hive.exec.mode.local.auto.inputbytes.max=500000000;

  输入文件个数低于此值会进入本地模式

SET hive.exec.mode.local.auto.input.files.max=5;

  设置seqFile使用块压缩

SET hive.exec.compress.output=true;
SET io.seqfile.compression.type=BLOCK;

  2.1 建表

create table user_seq(id int, name string, pass string, email string, nickname string) stored as SEQUENCEFILE;

create table user_rc(id int, name string, pass string, email string, nickname string) stored as rcfile;

create table user_orc2(id int, name string, pass string, email string, nickname string) stored as orc tblproperties("orc.compress"="ZLIB");

create table user_parquet2(id int, name string, pass string, email string, nickname string) stored as parquet tblproperties("parquet.compression"="GZIP");    

  2.2 插入数据

  导入大文件

load data local inpath '/home/centos/files/user_nopar.txt' into table user_nopar;

  插入数据

insert into user_seq select * from user_nopar;

insert into user_rc select * from user_nopar;

insert into user_orc2 select * from user_nopar;

insert into user_parquet2 select * from user_nopar;

  2.3 性能比较

  1. 比较生成文件大小
  text:45 MB
  seq:78.18 MB 性能差
  rc:114.84 KB
  orc:33.36 KB    //默认有压缩:ZLIB
  parquet:3.21 MB   //默认无压缩:NO ===GZIP==> 21.71 KB

  性能比较
  select count(*) from user_nopar;   //6.69
  select count(*) from user_seq;   //20.999 性能差
  select count(*) from user_rc;   //8.131
  select count(*) from user_orc2;   //6.84
  select count(*) from user_parquet2;   //2.56  √


[Hive_add_9] Hive 的存储格式的更多相关文章

  1. Hive文件存储格式

    hive文件存储格式 1.textfile textfile为默认格式   存储方式:行存储   磁盘开销大 数据解析开销大   压缩的text文件 hive无法进行合并和拆分 2.sequencef ...

  2. hive 压缩全解读(hive表存储格式以及外部表直接加载压缩格式数据);HADOOP存储数据压缩方案对比(LZO,gz,ORC)

    数据做压缩和解压缩会增加CPU的开销,但可以最大程度的减少文件所需的磁盘空间和网络I/O的开销,所以最好对那些I/O密集型的作业使用数据压缩,cpu密集型,使用压缩反而会降低性能. 而hive中间结果 ...

  3. Hive文件存储格式和hive数据压缩

    一.存储格式行存储和列存储 二.Hive文件存储格式 三.创建语句和压缩 一.存储格式行存储和列存储 行存储可以理解为一条记录存储一行,通过条件能够查询一整行数据. 列存储,以字段聚集存储,可以理解为 ...

  4. 关于hive的存储格式

    1.存储格式 textfile rcfile orc parquet 2.存储方式 按行存储 ->textfile 按列存储 ->parquet 3.压缩比 4.存储textfile的原文 ...

  5. 【图解】Hive文件存储格式

    摘自:https://blog.csdn.net/xueyao0201/article/details/79103973 引申阅读原理篇: 大数据:Hive - ORC 文件存储格式 大数据:Parq ...

  6. 053 关于hive的存储格式

    1.存储格式 textfile rcfile orc parquet 2.存储方式 按行存储 ->textfile 按列存储 ->parquet 3.压缩比 4.存储textfile的原文 ...

  7. Hive文件的存储格式

    hive文件存储格式包括以下几类: TEXTFILE SEQUENCEFILE RCFILE 自定义格式 其中TEXTFILE为默认格式,建表时不指定默认为这个格式,导入数据时会直接把数据文件拷贝到h ...

  8. hive常见的存储格式

    Hive常见文件存储格式 背景:列式存储和行式存储 首先来看一下一张表的存储格式: 字段A 字段B 字段C A1 B1 C1 A2 B2 C2 A3 B3 C3 A4 B4 C4 A5 B5 C5 行 ...

  9. Hive存储格式之RCFile详解,RCFile的过去现在和未来

    我在整理Hive的存储格式和压缩格式,本来打算一篇发出来,结果其中一小节就有很多内容,于是打算写成Hive存储格式和压缩格式系列. 本节主要讲一下Hive存储格式最早的典型的列式存储格式RCFile. ...

随机推荐

  1. SQL Server 2008 R2 下如何清理数据库日志文件

    废话不多说,直接上代码,清理后日志文件为1M USE [master] GO ALTER DATABASE [数据库名] SET RECOVERY SIMPLE WITH NO_WAIT GO ALT ...

  2. linux磁盘管理增加,扩容

    一.磁盘空间不足,添加新的磁盘 一般来说,当我们在服务上插入新的磁盘时,服务器是会对磁盘进行识别的.但是,有的时候服务器并没有对这些新插入的磁盘进行识别.这时,我们可以通过重启服务器,来使服务器重新加 ...

  3. 从零开始学安全(二十七)●利用Nmap对防火墙,IDS,IPS 进行欺骗

    先介绍什么是防火墙 ids 并联  ips 串联 来看我们nmap 命令

  4. date('Y-m-d H:i:s',time()) 与 date('Y-m-d h:i:s',time())区别是什么

    date('Y-m-d H:i:s',time()) 按24小时制 date('Y-m-d h:i:s',time()) 按12小时制

  5. Go开发之路 -- Go语言基本语法

    一. 变量 1.1 变量的声明 Go 语言的每一个变量都拥有自己的类型,必须经过声明才能开始用. 标准格式: var 变量名 变量类型 变量的声明以关键字 var 开头,行尾不需要写分号 常见变量的数 ...

  6. css实现div内一段文本的两端对齐

    在一个固定宽度的div内,使得P标签内的文本两端对齐: text-align: justify;text-justify:inter-ideograph; <!DOCTYPE html> ...

  7. 洛谷P2234 [HNOI2002]营业额统计

    题目描述 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额.分析营业情况是 ...

  8. 2018-08-13 中文编程讨论组(GitHub)社区守则一周年修订

    原址在此 社区守则 大原则 求同存异 就事论事 己所不欲勿施于人 注: 在讨论组成立一周年之际, 对行为规范进行一些细化 内 这部分所有内容同样适用于对外 回归技术 所有与中文编程没有直接关系的话题都 ...

  9. Building QGIS from source - step by step (开发文档翻译1)

    1. 简介 原文网址:http://htmlpreview.github.io/?https://raw.github.com/qgis/QGIS/master/doc/INSTALL.html 本文 ...

  10. ThreadLocal 类 的源码解析以及使用原理

    1.原理图说明 首先看这一张图,我们可以看出,每一个Thread类中都存在一个属性 ThreadLocalMap 成员,该成员是一个map数据结构,map中是一个Entry的数组,存在entry实体, ...