Volba správného datového formátu dramaticky ovlivňuje výkon a náklady. Parquet pro analytiku, Avro pro streaming, ORC pro Hive a JSON pro flexibilitu.
Formáty pro data engineering¶
Apache Parquet¶
- Sloupcový formát — ideální pro analytické dotazy
- Komprese — Snappy, ZSTD, výborný kompresní poměr
- Predicate pushdown — statistiky v metadatech
- Použití: data lake, warehouse, batch processing
Apache Avro¶
- Řádkový formát — efektivní pro celé záznamy
- Schema evolution — nativní podpora
- Kompaktní binární — schéma uloženo v hlavičce
- Použití: Kafka messaging, CDC, streaming
Porovnání¶
# Parquet: analytické dotazy
df.write.parquet("/data/orders.parquet")
# Avro: streaming/messaging
df.write.format("avro").save("/data/orders.avro")
# Velikost (1M řádků):
# CSV: 500 MB
# JSON: 400 MB
# Avro: 100 MB
# Parquet: 50 MB (sloupcová komprese)
Kdy který formát¶
- Analytika/batch → Parquet
- Streaming/messaging → Avro
- Hive ekosystém → ORC
- API/logs → JSON (human-readable)
Shrnutí¶
Parquet je default pro analytiku, Avro pro streaming. Správná volba formátu šetří storage i compute.
parquetavroorcserializace