Hive数据格式-ORC

简介: hive、orc

普通的存储格式,比如我们表格中有abc三列,像mysql按行存储则如下所示


1.png

大数据引擎存储中,大部分都是采用列式存储,比如Hive、Hbase

a、b、c各列数据会集中存放在一起,如下所示


2.png


Hive中textfile作为缺省的存储格式,采用列式存储,Hive也提供了ORC存储格式,ORC格式能采用更好的压缩算法、更高效的查询。结合了行存储和列式存储的优点

3.png


每个ORC文件由1个或多个条带(stripe)组成,每个条带一般是一个HDFS块。每个条带由Index Data、Row Data、 Stripe Footer组成。

Index Data:保存了一些索引信息,记录着每个数据段在stripe中的位置。

Row Data:主要存放数据的地方,一个Rows Data由多个行组构成,每10000行构成一个行组,行组内部以流式形式列式存储,实际上由两部分构成:metadata Stream描述行组的元数据,dataStream数据流。

Stripe Footer:描述各个stream的类型、长度等信息


另外,每个orc文件中除若干个stripe外,还包含file footer(文件脚注)、postscript(描述信息)

file footer:记录每个stripe的行数,每个列的数据类型,每个列的最大值、最小值等信息。

postscript:压缩参数、压缩大小等信息

读取orc文件时,先读取postscript信息,根据postscript记录的filefooter长度信息,解析filefooter,再从filefooter中解析出各个stripe信息,再读取各个stripe。


















相关文章
|
6月前
|
SQL 消息中间件 数据处理
DataX读取Hive Orc格式表丢失数据处理记录
DataX读取Hive Orc格式表丢失数据处理记录
253 0
|
6月前
|
存储 SQL 算法
【Hive】ORC、Parquet等列式存储的优点
【4月更文挑战第14天】【Hive】ORC、Parquet等列式存储的优点
|
SQL 存储 HIVE
hive orc文件读取
支持增删改查建表: create table orc_table(id int, name string) clustered by (id) into 4 buckets stored as orc TBLPROP...
5615 0
|
存储 SQL HIVE
Hive语言手册-ORC
Hive语言手册-ORC LanguageManual ORC ORC File Format Version Introduced in Hive version 0.11.0. Optimized Row Columnar(ORC)文件格式提供了存储Hive数据的高效方法。
2583 0
|
6月前
|
SQL 数据采集 数据挖掘
大数据行业应用之Hive数据分析航班线路相关的各项指标
大数据行业应用之Hive数据分析航班线路相关的各项指标
185 1
|
6月前
|
SQL 分布式计算 数据库
【大数据技术Spark】Spark SQL操作Dataframe、读写MySQL、Hive数据库实战(附源码)
【大数据技术Spark】Spark SQL操作Dataframe、读写MySQL、Hive数据库实战(附源码)
235 0
|
29天前
|
SQL 分布式计算 Java
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
30 0
|
4月前
|
SQL 分布式计算 大数据
大数据处理平台Hive详解
【7月更文挑战第15天】Hive作为基于Hadoop的数据仓库工具,在大数据处理和分析领域发挥着重要作用。通过提供类SQL的查询语言,Hive降低了数据处理的门槛,使得具有SQL背景的开发者可以轻松地处理大规模数据。然而,Hive也存在查询延迟高、表达能力有限等缺点,需要在实际应用中根据具体场景和需求进行选择和优化。