对于hive格式的认识,先转载后实践再加深认识。

转载地址:http://blog.csdn.net/yfkiss/article/details/7787742

hive在建表是,可以通过‘STORED AS FILE_FORMAT’ 指定存储文件格式
例如:

[plain] view plaincopy
  1. > CREATE EXTERNAL TABLE MYTEST(num INT, name STRING)
  2. > ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
  3. > STORED AS TEXTFILE
  4. > LOCATION '/data/test';

指定文件存储格式为“TEXTFILE”。

hive文件存储格式包括以下几类:

  • TEXTFILE
  • SEQUENCEFILE
  • RCFILE
  • 自定义格式

TEXTFIEL
默认格式,数据不做压缩,磁盘开销大,数据解析开销大。
可结合Gzip、Bzip2使用(系统自动检查,执行查询时自动解压),但使用这种方式,hive不会对数据进行切分,从而无法对数据进行并行操作。
实例:

[plain] view plaincopy
  1. > create table test1(str STRING)
  2. > STORED AS TEXTFILE;
  3. OK
  4. Time taken: 0.786 seconds
  5. #写脚本生成一个随机字符串文件,导入文件:
  6. > LOAD DATA LOCAL INPATH '/home/work/data/test.txt' INTO TABLE test1;
  7. Copying data from file:/home/work/data/test.txt
  8. Copying file: file:/home/work/data/test.txt
  9. Loading data to table default.test1
  10. OK
  11. Time taken: 0.243 seconds

SEQUENCEFILE:
SequenceFile是Hadoop API提供的一种二进制文件支持,其具有使用方便、可分割、可压缩的特点。
SequenceFile支持三种压缩选择:NONE, RECORD, BLOCK。 Record压缩率低,一般建议使用BLOCK压缩。
示例:

[plain] view plaincopy
  1. > create table test2(str STRING)
  2. > STORED AS SEQUENCEFILE;
  3. OK
  4. Time taken: 5.526 seconds
  5. hive> SET hive.exec.compress.output=true;
  6. hive> SET io.seqfile.compression.type=BLOCK;
  7. hive> INSERT OVERWRITE TABLE test2 SELECT * FROM test1;

RCFILE
RCFILE是一种行列存储相结合的存储方式。首先,其将数据按行分块,保证同一个record在一个块上,避免读一个记录需要读取多个block。其次,块数据列式存储,有利于数据压缩和快速的列存取。RCFILE文件示例:

实例:

[plain] view plaincopy
  1. > create table test3(str STRING)
  2. > STORED AS RCFILE;
  3. OK
  4. Time taken: 0.184 seconds
  5. >  INSERT OVERWRITE TABLE test3 SELECT * FROM test1;

自定义格式
当用户的数据文件格式不能被当前 Hive 所识别的时候,可以自定义文件格式。
用户可以通过实现inputformat和outputformat来自定义输入输出格式,参考代码:
.\hive-0.8.1\src\contrib\src\java\org\apache\hadoop\hive\contrib\fileformat\base64
实例:
建表

[plain] view plaincopy
  1. > create table test4(str STRING)
  2. > stored as
  3. > inputformat 'org.apache.hadoop.hive.contrib.fileformat.base64.Base64TextInputFormat'
  4. > outputformat 'org.apache.hadoop.hive.contrib.fileformat.base64.Base64TextOutputFormat';

$ cat test1.txt 
aGVsbG8saGl2ZQ==
aGVsbG8sd29ybGQ=
aGVsbG8saGFkb29w
test1文件为base64编码后的内容,decode后数据为:
hello,hive
hello,world
hello,hadoop
load数据并查询:

[plain] view plaincopy
  1. hive> LOAD DATA LOCAL INPATH '/home/work/test1.txt' INTO TABLE test4;
  2. Copying data from file:/home/work/test1.txt
  3. Copying file: file:/home/work/test1.txt
  4. Loading data to table default.test4
  5. OK
  6. Time taken: 4.742 seconds
  7. hive> select * from test4;
  8. OK
  9. hello,hive
  10. hello,world
  11. hello,hadoop
  12. Time taken: 1.953 seconds

总结:
相比TEXTFILE和SEQUENCEFILE,RCFILE由于列式存储方式,数据加载时性能消耗较大,但是具有较好的压缩比和查询响应。数据仓库的特点是一次写入、多次读取,因此,整体来看,RCFILE相比其余两种格式具有较明显的优势。

reference:
Hive Data Definition Language
浅谈hadoop文件格式
Facebook数据仓库揭秘:RCFile高效存储结构

(转载)hive文件存储格式相关推荐

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

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

  2. linux怎么看文件是否orc格式,hive文件存储格式orc,parquet,avro对比

    orc文件存储格式 ORC文件也是以二进制方式列式存储的,所以是不可以直接读取,ORC文件也是自解析的,它包含许多的元数据,这些元数据都是同构ProtoBuffer进行序列化的.文件结构如下 ORC文 ...

  3. hive 数据存储格式详解

    Hive的三种文件格式:TEXTFILE.SEQUENCEFILE.RCFILE中,TEXTFILE和SEQUENCEFILE的存储格式都是基于行存储的,RCFILE是基于行列混合的思想,先按行把数据 ...

  4. hive-02-hive文件存储格式

    1.概述 hive在建表是,可以通过'STORED AS FILE_FORMAT' 指定存储文件格式 例如: > CREATE EXTERNAL TABLE MYTEST(num INT, na ...

  5. 大数据:Hive - ORC 文件存储格式

    一.ORC File文件结构 ORC的全称是(Optimized Row Columnar),ORC文件格式是一种Hadoop生态圈中的列式存储格式,它的产生早在2013年初,最初产生自Apache ...

  6. Hive - ORC 文件存储格式详细解析

    一.ORC File文件结构 ORC的全称是(Optimized Row Columnar),ORC文件格式是一种Hadoop生态圈中的列式存储格式,它的产生早在2013年初,最初产生自Apache ...

  7. hive的四种文件存储格式

    hive分为四种存储格式: 1.TEXTFILE 2.SEQUENCEFILE 3.RCFILE 4.ORCFILE 在其中textfile为默认格式,如果在创建hive表不提及,会默认启动textf ...

  8. 大数据:Parquet文件存储格式

    一.Parquet的组成 Parquet仅仅是一种存储格式,它是语言.平台无关的,并且不需要和任何一种数据处理框架绑定,目前能够和Parquet适配的组件包括下面这些,可以看出基本上通常使用的查询引擎 ...

  9. 简介SharePoint 2010 14 Hive文件夹

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u012025054/article/details/36018873 简介SharePoint 20 ...

最新文章

  1. Springboot默认加载application.yml原理
  2. Spring RCE 漏洞 CVE-2022-22965 的终极解决方案
  3. 【渝粤教育】国家开放大学2018年秋季 2208T政治学原理 参考试题
  4. ajax:前后端json传值写法
  5. 图形界面下,如何查看LINUX隐藏的文件、目录
  6. 【Gym-102059 G】Fascination Street【亏欠型DP思想】
  7. 计算机windows7升级,告诉你win7如何升级为旗舰版
  8. 在抖音追剧要付费了,微短剧能成字节新财富密码吗?
  9. 最新QQ坦白说消息查看发送者
  10. 没有财务系统如何对账?
  11. 统一的账号密码管理系统-信息安全课程设计
  12. Php绘制棋盘,第二次DIY棋盘,纯手工绘制完美棋盘
  13. CREO:CREO软件之零件【工具(调查/模型意图/实用工具)】、【视图(可见性/方向/模型显示/显示/窗口)】的简介及其使用方法(图文教程)之详细攻略
  14. RDIFramework.NET 框架之组织机构权限设置
  15. 微信JSSDK-录音接口,判断是否成功调用微信录音
  16. Python实现ATM
  17. 初识CMake,如何编写一个CMake工程(上)
  18. 战争艺术 java_战争艺术2网络对战版
  19. this指向和如何改变this指向 (详解)
  20. 涉密学位论文不得在联网的计算机上撰写,华南理工大学涉密学位论文管理暂行规定.doc...

热门文章

  1. instant.now时区不正确_Centos8如何更改时区
  2. win服务器发展方向是什么?
  3. 洛谷P1352 没有上司的舞会题解
  4. 031 广播变量与累加器
  5. 使用正则移除尖括号中的指定子字符串
  6. GPU---并行计算利器
  7. Socket 学习(三).1 tcp 通讯
  8. mx51 uboot启动感悟
  9. WINCE的内存配置-config.bib文件的解析
  10. python示例库,常用的Python库和示例代码(快速上手)