对比
Avro 与 Parquet 对比
Avro 序列化受模式约束的记录;Parquet 按列存放数据以支持大规模分析读取。应按写入和查询方式选择。
应该选择哪种格式?
事件及记录交换可考虑 Avro;按列分析和聚合可考虑 Parquet。
适用于 Avro
按照定义好的模式交换记录
- 跟踪模式版本的事件和数据管道
适用于 Parquet
为分析保存结构化表格
- 只需读取部分列的大型数据集
基本信息
| 项目 | Avro | Parquet |
|---|---|---|
| 扩展名 | .avro | .parquet |
| MIME 类型 | application/avro | application/vnd.apache.parquet |
| 常见用途 | 按照定义好的模式交换记录 | 为分析保存结构化表格 |
| 打开方式 | 使用支持 Avro 的工具检查模式、字段、类型和记录。 | 使用支持 Parquet 的工具检查模式、列类型、行数和值。 |
| 导出或转换 | 转换为 JSON 或 Parquet 时,检查字段名、类型、空值、逻辑类型、记录数和模式兼容性。 | 从 CSV 等格式转换时,检查类型、空值、时间戳、编码、分区和行数。 |
按用途选择
跟踪模式版本的事件和数据管道
按照定义好的模式交换记录
Avro只需读取部分列的大型数据集
为分析保存结构化表格
Parquet关键点 1
Avro 以记录和模式为核心。
进一步了解差异关键点 2
Parquet 按列组织数据供分析。
进一步了解差异进一步了解差异
确定标准前检查模式演进、引擎支持及典型读取方式,并测试实际文件和查询。
- Avro 适合面向记录的序列化。
- Parquet 面向分析型列读取。
- 模式变更和查询特征会影响选择。
常见问题
一种格式能在所有场景代替另一种吗?
通常不能。事件交换与分析扫描的读取模式及工具要求不同。