Hive数据类型与文件存储格式】的更多相关文章

Hive数据类型 基础数据类型: TINYINT,SMALLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,BINARY,TIMESTAMP,DECIMAL,CHAR,VARCHAR,DATE. 复杂数据类型: 包括ARRAY,MAP,STRUCT,UNION.这些复杂类型是由基础类型组成的. ARRAY:ARRAY类型是由一系列同样数据类型元素组成的,这些元素能够通过下标来訪问.比方有一个ARRAY类型的变量fruits.它是由['apple','oran…
hive 存储格式有很多,但常用的一般是 TextFile.ORC.Parquet 格式,在我们单位最多的也是这三种 hive 默认的文件存储格式是 TextFile. 除 TextFile 外的其他格式的表不能直接从本地文件导入数据,要先导入到 TextFile 格式的表中,再从表中用 insert 导入到其他格式的表中. 一.TextFile TextFile 是行式存储. 建表时无需指定,一般默认这种格式,以这种格式存储的文件,可以直接在 HDFS 上 cat 查看数据. 可以用任意分隔符…
一.ORC File文件结构 ORC的全称是(Optimized Row Columnar),ORC文件格式是一种Hadoop生态圈中的列式存储格式,它的产生早在2013年初,最初产生自Apache Hive,用于降低Hadoop数据存储空间和加速Hive查询速度.和Parquet类似,它并不是一个单纯的列式存储格式,仍然是首先根据行组分割整个表,在每一个行组内进行按列存储.ORC文件是自描述的,它的元数据使用Protocol Buffers序列化,并且文件中的数据尽可能的压缩以降低存储空间的消…
一.ORC File文件结构 ORC的全称是(Optimized Row Columnar),ORC文件格式是一种Hadoop生态圈中的列式存储格式,它的产生早在2013年初,最初产生自Apache Hive,用于降低Hadoop数据存储空间和加速Hive查询速度.和Parquet类似,它并不是一个单纯的列式存储格式,仍然是首先根据行组分割整个表,在每一个行组内进行按列存储.ORC文件是自描述的,它的元数据使用Protocol Buffers序列化,并且文件中的数据尽可能的压缩以降低存储空间的消…
hive文件存储格式 1.textfile textfile为默认格式   存储方式:行存储   磁盘开销大 数据解析开销大   压缩的text文件 hive无法进行合并和拆分 2.sequencefile 二进制文件,以<key,value>的形式序列化到文件中 存储方式:行存储可分割 压缩一般选择block压缩, 优势是文件和Hadoop api中的mapfile是相互兼容的. 3.rcfile 存储方式:数据按行分块 每块按照列存储 压缩快 快速列存取 读记录尽量涉及到的block最少…
摘自:https://blog.csdn.net/xueyao0201/article/details/79103973 引申阅读原理篇: 大数据:Hive - ORC 文件存储格式 大数据:Parquet文件存储格式…
一.存储格式行存储和列存储 二.Hive文件存储格式 三.创建语句和压缩 一.存储格式行存储和列存储 行存储可以理解为一条记录存储一行,通过条件能够查询一整行数据. 列存储,以字段聚集存储,可以理解为相同的字段存储在一起. 二.Hive文件存储格式 TEXTFILE, Hive数据表的默认格式,存储方式:行存储. 可以使用Gzip压缩算法,但压缩后的文件不支持split 在反序列化过程中,必须逐个字符判断是不是分隔符和行结束符,因此反序列化开销会比SequenceFile高几十倍. SEQUEN…
合理使用文件存储格式 建表时,尽量使用 orc.parquet 这些列式存储格式,因为列式存储的表,每一列的数据在物理上是存储在一起的,Hive查询时会只遍历需要列数据,大大减少处理的数据量. 采用合适的文件压缩 Hive最终是转为 MapReduce 程序来执行的,而 MapReduce 的性能瓶颈在于网络 IO 和 磁盘 IO,要解决性能瓶颈,最主要的是减少数据量,对数据进行压缩是个好的方式.压缩虽然是减少了数据量,但是压缩过程要消耗CPU的,但是在Hadoop中, 往往性能瓶颈不在于CPU…
ORC文件格式是从Hive-0.11版本开始的.关于ORC文件格式的官方文档,以及基于官方文档的翻译内容这里就不赘述了,有兴趣的可以仔细研究了解一下.本文接下来根据论文<Major Technical Advancements in Apache Hive>中的内容进行深入的研究. 一.ORC文件格式 ORC的全称是(Optimized Record Columnar),使用ORC文件格式可以提高hive读.写和处理数据的能力.ORC在RCFile的基础上进行了一定的改进,所以与RCFile相…
一.Parquet的组成 Parquet仅仅是一种存储格式,它是语言.平台无关的,并且不需要和任何一种数据处理框架绑定,目前能够和Parquet适配的组件包括下面这些,可以看出基本上通常使用的查询引擎和计算框架都已适配,并且可以很方便的将其它序列化工具生成的数据转换成Parquet格式. 查询引擎: Hive, Impala, Pig, Presto, Drill, Tajo, HAWQ, IBM Big SQL 计算框架: MapReduce, Spark, Cascading, Crunch…
一.Parquet的组成 Parquet仅仅是一种存储格式,它是语言.平台无关的,并且不需要和任何一种数据处理框架绑定,目前能够和Parquet适配的组件包括下面这些,可以看出基本上通常使用的查询引擎和计算框架都已适配,并且可以很方便的将其它序列化工具生成的数据转换成Parquet格式. 查询引擎: Hive, Impala, Pig, Presto, Drill, Tajo, HAWQ, IBM Big SQL 计算框架: MapReduce, Spark, Cascading, Crunch…
本文在Hive-ORC文件存储格式的理论基础上,进一步分析一个实际的Hive ORC表中的数据存储形式. 一.表结构 库名+表名:fileformat.test_orc 字段 类型 category_id string product_id int brand_id int price double category_id_2 string 在hive中命令desc formatted fileformat.test_orc;的结果如下图: 根据上图中的location信息,查看在HDFS上的文…
磁盘: heads/sectors/cylinders,分别就是磁头/扇区/柱面,每个扇区512byte(现在新的硬盘每个扇区有4K) 文件系统: 文件系统不是一个扇区一个扇区的来读数据,太慢了,所以有了block(块)的概念,它是一个块一个块的读取的,block才是文件存取的最小单位. 文件系统中1个块是由连续的8个扇区组成. HDFS: 默认文件大小64M(或者是128M) hive小文件问题解决 问题描述 HDFS的文件元信息,包括位置.大小.分块信息等,都是保存在NameNode的内存中…
3. Hive 数据类型 3.1 基本数据类型 Hive 数据类型 Java 数据类型 长度 TINYINT byte 1 byte 有符号整数 SMALINT short 2 byte 有符号整数 INT int 4 byte 有符号整数 BIGINT long 8 byte 有符号整数 FLOAT float 单精度浮点数 DOUBLE double 双精度浮点数 STRING string 字符系列,可以使用单引号或双引号 TIMESTAMP 时间类型 BINARY 字节数组 3.2 集合…
第3章 Hive数据类型 3.1 基本数据类型 对于Hive的String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以存储2GB的字符数. 3.2 集合数据类型 Hive有三种复杂数据类型ARRAY.MAP 和 STRUCT.ARRAY和MAP与Java中的Array和Map类似,而STRUCT与C语言中的Struct类似,它封装了一个命名字段集合,复杂数据类型允许任意层次的嵌套. 案例实操 1) 假设某表有如下一行,我们用…
在有些时候,想要控制hql执行的mapper,reducer个数,reducer设置过少,会导致每个reducer要处理的数据过多,这样可能会导致OOM异常,如果reducer设置过多,则会导致产生很多小文件,这样对任务的执行以及集群都不太好.通常情况下这两个参数都不需要手动设置,Hive会根据文件的大小和任务的情况自动计算,但是某些特殊情况下可能需要进行调优,下面列举两个常用的调优场景看看这两个参数在调优的时候都是怎么用的: 方法一:设置reducer个数 reducer个数最直接的影响是hq…
1.orc列式存储概念 a)列式存储:orc并不是纯粹的列式存储,也是先基于行对数据表进行分组(行组),然后对行组进行列式存储. b)查询数据的时候不需要扫描全部数据(磁盘IO),只需查询指定列即可. c)orc对每一列提供了常规统计信息(min . max . sum等),加速查询.例如过滤条件f>10,如果当前分片的max小于10,则直接过滤掉这个分片. d)每一列的数据都是同构的,因此压缩效率更高. e)读写orc文件需要压缩.解压,需要消耗额外的cpu资源. 以上是orc文件格式的优劣点…
Hive数据类型 参考:中文博客:http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2843448.html          英文:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types 1.列类型       TINYINT       SMALLINT       INT       BIGINT       BOOLEAN       FLOAT   …
方法1: hive -f sql文件 t.sql文件内容: ; 执行命令 hive -f t.sql 方法2: 进入hive shell, 执行source命令 进入hive 终端 $ hive hive> 使用source命令执行 hive>source t.sql…
Hive 数据类型 正常数据类型 # 整型,4个字节 int # 大整型,8个字节 bigint # 字符串,最大长度2G String 复杂数据类型 # 数组,相同类型元素的数组 array<String> array => ['tom','jerry'] # 结构体,事先定义好字段名称 struct<column int, fruit string> struct => {1,'apple'} # K-V对的集合,事先定义好k-v类型 map<int,stri…
hive sequencefile导入文件遇到FAILED: SemanticException Unable to load data to destination table. Error: The file that you are trying to load does not match the file format of the destination table.错误 原因 这是因为SequenceFile的表不能使用load来加载数据,只能导入sequence类型的数据 解决办…
Hive 数据类型 + Hive sql 基本类型 整型 int tinyint (byte) smallint(short) bigint(long) 浮点型 float double 布尔 boolean 字符 string char(定长) varchar(变长) 时间类型 timestamp date 引用/复合类型 优点类似于容器(Container),便于我们操作数据 复合类型可以和复合类型相互嵌套 Array 存放相同类型的数据 数据按照索引进行查找,索引默认从0开始 user[0…
springMVC共三天 第一天: 01.SpringMVC概述及入门案例 02.参数绑定及自定义类型转换 03.SpringMVC常用注解 第二天: 04.SpringMVC返回值类型及响应数据类型 05.文件上传 06.异常处理及拦截器 ================ end…
Hive支持的存储数据的格式主要有:TEXTFILE .SEQUENCEFILE.ORC.PARQUET 一. 列式存储和行式存储 左边为逻辑表,右边第一个为行式存储,第二个为列式存储 1. 行式存储的特点 查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需要找到其中一个值,其余的值都在相邻地方,所以此时行存储查询的速度更快. 2.列式存储的特点 因为每个字段的数据聚集存储,在查询只需要少数几个字段的时候,能大大减少读取的数据量:每个字段的数据类型一定是…
一.定义 ORC File,它的全名是Optimized Row Columnar (ORC) file,其实就是对RCFile做了一些优化. 据官方文档介绍,这种文件格式可以提供一种高效的方法来存储Hive数据.它的设计目标是来克服Hive其他格式的缺陷. 运用ORC File可以提高Hive的读.写以及处理数据的性能.和RCFile格式相比,ORC File格式有以下优点: (1).每个task只输出单个文件,这样可以减少NameNode的负载: (2).支持各种复杂的数据类型,比如: da…
一.小文件是如何产生的 1.动态分区插入数据,产生大量的小文件,从而导致map数量剧增. 2.reduce数量越多,小文件也越多(reduce的个数和输出文件是对应的). 3.数据源本身就包含大量的小文件. 二.小文件问题的影响 1.从Hive的角度看,小文件会开很多map,一个map开一个JVM去执行,所以这些任务的初始化,启动,执行会浪费大量的资源,严重影响性能. 2.在HDFS中,每个小文件对象约占150byte,如果小文件过多会占用大量内存.这样NameNode内存容量严重制约了集群的扩…
1. hive的数据类型Hive的内置数据类型可以分为两大类:(1).基础数据类型:(2).复杂数据类型2. hive基本数据类型基础数据类型包括: TINYINT,SMALLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,BINARY,TIMESTAMP,DECIMAL,CHAR,VARCHAR,DATE. 3. hive集合类型集合类型主要包括:array,map,struct等,hive的特性支持集合类型,这特性是关系型数据库所不支持的,利用好集合类型…
1. hive的数据类型Hive的内置数据类型可以分为两大类:(1).基础数据类型:(2).复杂数据类型2. hive基本数据类型基础数据类型包括:TINYINT,SMALLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,BINARY,TIMESTAMP,DECIMAL,CHAR,VARCHAR,DATE. 3. hive集合类型集合类型主要包括:array,map,struct等,hive的特性支持集合类型,这特性是关系型数据库所不支持的,利用好集合类型可…
一.基本数据类型 1.基本数据类型 Tinyint  1byte有符号整数  比如20 Smalint 2byte有符号整数 比如20 Int          4byte有符号整数 比如20 Bigint     8byte有符号整数 比如20 Boolean  布尔类型,true或者false Float        单精度浮点类型  3.14159265358 Double     双精度灰暗类型  3.14159265358 String       字符序列,可以指定字符集    比…
1. 分桶表以及分桶抽样查询 1.1 分桶表 对Hive(Inceptor)表分桶可以将表中记录按分桶键(某个字段对应的的值)的哈希值分散进多个文件中,这些小文件称为桶. 如要按照name属性分为3个桶,就是对name属性值的hash值对3取摸,按照取模结果对数据分桶.如取模结果为0的数据记录存放到一个文件,取模为1的数据存放到一个文件,取模为2的数据存放到一个文件. 分区提供一个隔离数据和优化查询的便利方式.不过,并非所有的数据集都可形成合理的分区,特别是之前所提到过的要确定合适的划分大小这个…