上一篇:Hive学习(三):Hive数据类型
文件结构Hive支持多种文件的存储结构,以对应不同的场景,Hive通过在创建表时的sorted as来指定文件结构。
基础知识对于一张表数据的存储
以一行数据为单位进行连续存储,表现为:
优势:插入新纪录时,直接在数据尾部添加即可,效率高劣势:如果在查询时只需要name,也需要加载整行数据,消耗大
列式存储以一列数据为单位进行连续存储,表现为:
优势:查询只需要name时,只需要读出连续的name数据即可,效率高劣势:插入新记录时,需要到每一个列单元后插入新的列数据
类型 TextFile文本文件,为默认设置,行式存储。不做压缩。可结合压缩软件使用,如Bzip2,查询时Hive自动对其进行解压。磁盘开销大,数据解析开销大。
SequenceFile二进制序列化文件,行式存储。使用方便,可分割,可压缩,有none, record, block三种压缩方式的选择
none:不压缩record:每条记录到文件时都压缩block:文件大小达到要压缩的块大小时压缩,压缩率更高 RCFile
行列式存储,先按行分为行组,每个组里列式储存,相同的数据不会重复存储
相对于单纯的行存储,能够只读取符合条件的几个行组。
相对于单纯的列存储,如果列数据不在同一个hdfs块上,会进行列重组,而RCFile的列一定在同一个块上,减少了列重组的开销。
ORCFileHive推出的优化版RCFile,更高效,它的设计是为了克服其他Hive文件格式的限制。使用ORC文件可以提高Hive读写和处理数据时的性能。
从结构上能看到,ORC在RC的行组基础上,在加上了Index Data和Stripe Footer形成了一个Stripe
Index Data:每列的最小值和最大值以及每列中的行位置。行索引项提供偏移量,用于在解压缩块中寻找正确的压缩块和字节Stripe Footer:存了行数和每个列的数据类型。它还包含列级聚合计数、最小值、最大值和总和File Footer:包含文件中Stripe的列表、每个Stripe的行数和每个列的数据类型。它还包含列级聚合计数、最小值、最大值和总和。 Parquet
列式存储,擅长处理深度嵌套数据,二进制文件,支持非常高效的压缩和编码方案。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)