数据格式对比
| 格式 | 类型 | 人类可读 | 模式 | 最适合 |
|---|---|---|---|---|
| JSON | 文本 | ✓ | 可选(JSON Schema) | API、配置 |
| XML | 文本 | ✓ | XSD、DTD | 企业系统、文档 |
| CSV | 文本 | ✓ | ✗ | 表格数据、Excel |
| YAML | 文本 | ✓ | 可选 | 配置文件、CI/CD |
| Parquet | 二进制 | ✗ | ✓ | 大数据、分析 |
| Avro | 二进制 | ✗ | ✓ | Kafka、流处理 |
| MessagePack | 二进制 | ✗ | ✗ | 高性能 API |
JSON 文本
API 数据交换的通用格式。
{"name":"Alice","age":28,"active":true}
优点
- 通用支持
- JS 原生
缺点
- 冗长
- 无注释
CSV 文本
简单的表格格式,适合电子表格。
name,age,active
Alice,28,true
Bob,34,false
优点
- 简单
- Excel 兼容
缺点
- 不支持嵌套
- 无类型
Parquet 二进制
用于大数据分析的列式存储格式。
# Python 读取
import pandas as pd
df = pd.read_parquet('data.parquet')
# 写入
df.to_parquet('output.parquet')
优点
- 高压缩比
- 快速分析
缺点
- 不可读
- 需要工具
Avro 二进制
需要模式的二进制格式,Kafka 常用。
// Avro Schema(JSON)
{
"type": "record",
"name": "User",
"fields": [
{"name": "id", "type": "int"},
{"name": "name", "type": "string"}
]
}
优点
- 模式演进
- 紧凑
缺点
- 工具复杂
- 必须有 Schema