1. 引言
在大数据处理和存储场景中,数据存储的方式直接影响查询性能和存储成本。合理利用列式存储、分区、索引优化等技术,可以显著提升数据查询效率,降低计算资源消耗。本文将深入探讨 Parquet、ORC 等列式存储格式,以及分区、数据分桶等优化策略。
2. 列式存储(Columnar Storage)
2.1 行存储 vs. 列存储
数据存储方式通常分为行存储(Row-based Storage)和列存储(Columnar Storage):
-
行存储(Row-based Storage):数据按行存放,适用于 OLTP(在线事务处理)场景,例如 MySQL、PostgreSQL。
-
列存储(Columnar Storage):数据按列存放,适用于 OLAP(在线分析处理)场景,例如 Apache Parquet、ORC、ClickHouse。
示例:行存储 vs. 列存储对比
ID | Name | Age | Salary |
---|---|---|---|
1 | Alice | 30 | 5000 |
2 | Bob | 35 | 7000 |
3 | Carol | 40 | 8000 |
行存储(Row-based):
1, Alice, 30, 5000
2, Bob, 35, 7000