分布式数据库从入门到实战
彭旭
惟客数据总架构师
39 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 2 讲/共 28 讲
分布式数据库从入门到实战
15
15
1.0x
00:00/00:00
登录|注册

01|列式存储已经取代行式存储了吗?

你好,我是彭旭。
从这节课开始,我们要积累一部分数据库的基础知识。今天我们主要聚焦在列式存储和行式存储的区别上,再给你介绍一个被多个数据库引擎支持的、最流行的列式数据存储格式。
在大数据时代,列式存储出现的频率很高,讨论列式存储优势的文章汗牛充栋,这些信息给人一种“列式存储难到是最优秀的数据库存储格式”的感觉,实际上这可能是一个“可得性启发”。比如如果你经常听到飞机事故,你可能会觉得飞机是最危险的交通工具一样,而实际上飞机是一个相对更安全的交通工具。
那行式存储真的会被列式存储替代吗?我们先来简单对比一下它们之间的不同。

行列存储对比

顾名思义,行式存储其实就是将数据库的一行数据物理上也存储在一起,列式存储则是按照列将数据物理上存储在一起。
你看下面这张图,R1C1 代表第 1 行数据的第 1 列,R3C1 代表第 3 行的第 1 列。
我们可以观察出两点。
在列式存储下,列 C1 的数据在磁盘上聚簇地存储在数据块(或者页),但是一列可以由多个数据块或者数据文件存储。
在行式存储下,行 R1 的数据在磁盘上聚簇地存储在数据块上。
其实行式存储与列式存储的发展,与其对应的不同类型的数据库发展息息相关。
我们先来看一个例子。假设一个订单表有 40 个字段,包括订单编号、订单金额、订单状态、商品名称、会员信息等。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

1. 行式存储适用于OLTP场景,而列式存储适用于OLAP场景,因为行式存储能以最少的磁盘读写代价处理一行业务数据的读写,而列式存储能够减少I/O操作,提高查询效率。 2. 列式存储在分析型数据库中的优势:在OLAP场景下,列式存储可以只读取所需的列,从而避免加载整个行的数据,这大大减少了I/O操作,提高了查询效率。 3. Parquet作为大数据时代下最流行的列式存储格式,很多分布式数据库都支持将Parquet文件作为外部表,也有很多数据查询引擎与计算框架如Spark、Presto、MapReduce等都支持直接读取分析Parquet文件。 4. Parquet文件的设计满足了多种要求,包括高效的编码与压缩算法、跨平台的数据交换能力以及高性能支持。 5. Parquet文件的格式包括列的元数据和文件的元数据,通过文件元数据可以快速找到需要读取的列块,实现了数据与元数据一起写入文件,避免了需要进行更新的情况。 6. Parquet文件的读取分析可以通过常用的大数据分析引擎实现,如Apache Spark、Apache Drill、Apache Impala、Presto等。 7. Parquet文件的构建可以通过多种方式实现,比如使用Python提供的PyArrow库,可以快速地将数据存储为Parquet文件。 8. 列式存储在大数据时代的发展趋势受到关注,数据已经成为企业数字化决策与战略方向制定的一个可靠参考,而这些决策的数据支撑都是通过采集企业内外部各个系统的数据,然后汇聚到基于列式存储的数据仓库,最后通过多维分析、挖掘出来的。 9. 大规模的分布式数据系统中,同时处理大数据量的实时随机存取与批量分析是一个很复杂的问题,因此诞生了Lamda的架构,其中Parquet作为数据管道传递格式发挥着重要作用。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式数据库从入门到实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • -Hedon🍭
    思考题: 行式存储和列式存储都有其更加适合的场景,我个人认为,一种数据库单纯支持一种存储格式,才有可能将这种存储格式够做到极致,对于某些单一固定的场景,选择行式存储或列式存储中某一个可能是更好的选择。 但是绝大多数情况下都不需要这种“极致”,相反“灵活性”能带来更大的收益。所以混合模式可能在未来会更具有发展潜力。因为它能够提供更大的灵活性和优异的性能,适应不同的工作负载需求。
    2024-06-13归属地:湖北
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部