大数据系统常用文件存储格式File format

本文介绍了大数据系统中常用的文件存储格式,包括行式存储、列式存储和混合式存储。列式存储如RCFile、ORCFile在查询效率上有优势,而混合式存储如Parquet结合了行存和列存的优点。这些格式在Hadoop生态系统和Spark等平台上广泛应用,旨在提高数据处理效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常见的文件存储格式有行式存储,列式存储和混合式存储。在大数据系统中,列式存储和混合式存储更常见。对于HDFS这样的文件存储系统来说,其实并不关心存储的是什么形式的存储文件。只是在解析数据时,需要知道是什么类型的文件。例如Hive对RCFile和ORCFile的支持就在于,Hive知道这两种文件中数据的存储方式,并正确地解析数据并查询。

1,行式存储

广泛使用于主流关系型数据库及HDFS中。优势是当需要按行遍历时效率很高。缺点是当不需要所有字段时也需要读取所有字段,浪费IO和内存,以及整行压缩效率较低。

行式存储很像是按序在磁盘写入数据流,达到数据页面上限时开始写入下个数据页面。为了表达数据的前后关系,数据页面之间用指针相连。常见的csv就可以认为时是种行式存储。

2,列式存储

简单的列式存储是将数据按所有列进行垂直划分,每一列数据连续存储在一起。当需要所有列时,使用指针将不同的列拼合在一起。这样做解决了行式存储的问题,但其缺点也很明显:典型的MR经常需要遍历数据,且block经常存储在不同的node上,因此拼合会导致大量的网络传输。实际中更多使用的是column-family,即将几个经常同时使用的列分为一组并连续存储,成为一个colmun-family;一行数据被拆分成少量的几个column-family。

Redshift采用column storage,即简单的列式存储。HBase底层的HDFS采用column-family存储。

3,混合存储

column-family还是会导致一些网络传输,而混合式存储则能更好的处理这个问题。混合式存储首先将记录表按照行进行分组,若干行划分为一组(row group)。而对于每组内的所有记录,在实际存储时将同一列内容连续存储在一起。这

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值