Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Strategie partitioningu dat pro optimální výkon dotazů

01. 01. 2024 1 min čtení intermediate

Správná strategie partitioningu dramaticky ovlivňuje výkon dotazů. Časové partitioning pro time-series, hash pro rovnoměrné rozložení a range pro sekvenční data.

Proč partitioning

Bez partitioningu engine skenuje celou tabulku. Partitioning umožňuje přeskočit nepotřebná data (partition pruning).

Typy partitioningu

  • Časový — nejčastější, partitioning podle data (den, měsíc)
  • Hash — rovnoměrné rozložení podle hash klíče
  • Range — rozsahy hodnot (A-M, N-Z)
  • List — explicitní seznam hodnot (regiony, kategorie)
# Spark: partitioning při zápisu
df.write.format("delta") \
    .partitionBy("year", "month") \
    .save("/data/orders")

# Dotaz s partition pruning
spark.read.format("delta").load("/data/orders") \
    .filter("year = 2026 AND month = 2")  # čte jen 1 partition

Best practices

  • 1 GB+ na partition — příliš malé partitions jsou kontraproduktivní
  • Max 10k partitions — příliš mnoho = pomalý metadata scan
  • Partitioning podle filtrů — podle nejčastějších WHERE podmínek

Shrnutí

Správný partitioning je klíčový pro výkon. Volte podle nejčastějších filtrů a udržujte partitions dostatečně velké.

partitioningvýkondata lakeoptimalizace