文件存储格式

本文详细介绍了大数据存储中的行存储和列存储格式,包括文本格式、Sequence File、ORC、Parquet 和 CarbonData。行存储如Text File、Sequence File,适合简单文本数据和二进制对象;列式存储如ORC、Parquet和CarbonData,适用于复杂数据和高效查询。文章对比了各种格式的优缺点,ORC和Parquet在复杂数据类型和压缩方面表现出色,而CarbonData则在索引和数据更新方面具有优势。
摘要由CSDN通过智能技术生成

目录

 

一、前言

1.1 概述

1.2 常见存储格式

1.3 行列存储数据组织方式

1.4 行列存储优缺点对比

1.5 Hadoop 的 数据存储格式实现

二、行存储格式

2.1 文本格式(Text File)

2.2 Sequence File

三、列式存储格式

3.1 ORC 文件

3.2 Parquet 文件

3.3 CarbonData 文件

3.4 ORC、Parquet 和 CarbonData 对比


一、前言

1.1 概述

文件存储格式:文件存储格式是数据在磁盘上的组织方式,直接决定了数据存取效率以及被上层分布式计算集成的容易程度。

1.2 常见存储格式

创建的存储格式包括 行式存储 和 列式存储 两种:

行式存储 以 文本格式Text File、key/value 二进制存储格式 Sequence File 为典型代表。

列式存储 以 ORC、Parquet 和 Carbon Data 三种文件格式为代表。

1.3 行列存储数据组织方式

    数据(每一行由若干列构成)在行存储和列存储系统中组织方式如下图所示。行存储以行为单位进行存储,读写过程是一致的,都是连续读取或写入同一行的所有列;列存储写数据时将数据拆分成列,并以列为单位存储(相同列存储在一起),读数据时,分别读取对应的列,并拼装成行。

1.4 行列存储优缺点对比

1.5 Hadoop 的 数据存储格式实现

    大数据应用场景下,通常需要在计算层并行处理文件,为了应对这种场景,Hadoop 将文件读取和写入模块抽象成 InputFormat 和 OutputFormat 组件,其中 InputFormat 可将数据文件逻辑上划分成多个可并行处理的 InputSplit,OutputFormat 可将数据以指定的格式写入输出文件。Hadoop 为常见的数据存储格式分别设计了 InputFormat 和 OutputFormat 实现,以方便像 MapReduce、Spark 等上层计算框架使用。

二、行存储格式

2.1 文本格式(Text File)

    文本格式是以文本字符串方式保存数据,具有简单、易查看等优点,是使用最广泛的行式存储格式,几乎所有的编程语言均提供了文本文件的读写编程接口。

2.2 Sequence File

    Sequence File 是 Hadoop 中提供的简单 key/value 二进制行式存储格式,可用于存储文本格式无法存储的数据,比如二进制对象、图片、视频等。为了方便上层计算框架并行处理,Sequence File 物理存储上是分块的,根据压缩方式不同,Sequence File 存在三种存储格式,具体如下:

(1)未压缩的 Sequence File

    未压缩的 Sequence File 组织方式如下图所示,由头部开始,顺序跟着一系列record(一条行记录),为了便于对数据分块和按块压缩,每个一定数目的record会写入一个同部位 SyncMark。头部中包含版本、key对应类、value对应类、是否压缩等信息;每条record

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值