Parquet Format Capacity Planning — วางแผน Storage สำหรับ Columnar Data

Parquet Capacity Planning

Parquet Format Capacity Planning Columnar Storage Compression Row Group Partition Strategy Data Lake Storage Estimation Production
| Data Type | Raw Size/Row | Parquet (Snappy) | Parquet (ZSTD) | Compression Ratio |
|---|---|---|---|---|
| Integer (INT64) | 8 bytes | 1-2 bytes | 0.8-1.5 bytes | 75-90% |
| Float (DOUBLE) | 8 bytes | 4-6 bytes | 3-5 bytes | 25-60% |
| String (avg 50 chars) | 50 bytes | 10-20 bytes | 8-15 bytes | 60-85% |
| Boolean | 1 byte | 0.05-0.1 bytes | 0.03-0.08 bytes | 90-97% |
| Timestamp | 8 bytes | 1-3 bytes | 0.8-2 bytes | 62-90% |
| Enum/Category | 20 bytes | 1-3 bytes | 0.5-2 bytes | 85-97% |
เคล็ดลับ

- ZSTD: ใช้ ZSTD level 3 เป็น Default ดีกว่า Snappy ทั้ง Compression และ Speed
- Dictionary: เปิด Dictionary Encoding สำหรับ Column ที่มี Cardinality ต่ำ
- Compact: รวมไฟล์เล็กให้เป็น 128 MB - 1 GB ทุกวัน
- Partition: อย่า Over-partition ไม่เกิน 10000 Partitions
- Statistics: เปิด write_statistics สำหรับ Predicate Pushdown
Parquet Format คืออะไร
Apache Parquet Columnar Storage Column-oriented I/O Compression Snappy Gzip ZSTD LZ4 Predicate Pushdown Schema Spark Hive Presto DuckDB Pandas
Capacity Planning ทำอย่างไร
Raw Size Compression Ratio Data Type Algorithm Growth Rate Partition Retention Hot Warm Cold Storage Cost Cloud Provider
Row Group Size ตั้งเท่าไหร่ดี
Default 128 MB Analytical 256 MB - 1 GB ใหญ่ Compression ดี Sequential เร็ว เล็ก Random Access Memory Spark PyArrow Schema Columns
Partition Strategy ควรเป็นอย่างไร
Filter Date Region Category Hive-style ไม่เกิน 10000 Partition 128 MB - 1 GB Compaction รวมไฟล์ Partition Pruning Engine
สรุป
Parquet Format Capacity Planning Columnar Storage ZSTD Compression Row Group Partition Strategy Data Lake S3 Lifecycle Hot Warm Cold Production





