Kurzy a certifikace Open Source
Apache Spark for Data Engineers - Advanced Optimizations
Cena (bez DPH)
Apache Spark je distribuovaný výpočetní engine, který poskytuje unifikovaný framework pro zpracování velkých objemů dat, interaktivní analýzu, machine learning, analýzu grafu a streaming. V průběhu posledních několika let se stává standardem pro zpracování těchto workloadů a to nejen v prostředí velkých dat. Jedním z důvodů proč roste popularita Sparku je také jeho programové API, neboli tzv. DataFramy, které nabízejí univerzální datovou abstrakci, již je možné použít ve všech výše zmíněných oblastech.
Toto školení je orientované na pokročilé oblasti Spark SQL, které mají vliv na výkon výsledného Sparkového jobu, jako např. optimalizace exekučního plánu, eliminace shufflu, správný partitioning dat, data-reuse a další. Cílem školení je osvojit si několik základních technik pro dosažení maximálního výkonu Sparkových jobů.
Školení probíhá v programovacím jazyku Python v lokálním prostředí (Spark 3.x + Jupyter notebook).
Cílová skupina:
Datový inženýři, scientisti a další uživatelé Sparku, kteří již mají se Sparkem nějakou zkušenost a chtějí se naučit optimalizovat Sparkové joby pro dosažení maximálního výkonu.
Cíle kurzu:
- Rozumět a orientovat se ve fyzických plánech Spark SQL
- Přepsat query za účelem dosažení efektivnějšího plánu
- Používat některá konfigurační nastavení
- Připravit Sparkem data pro efektivní analytiku ve Sparku
- Diagnostikovat botlneck Sparkoveho jobu
Garant kurzu:
David Vrba Ph.D.
David pracuje v Emplifi (dříve Socialbakers) jako datový inženýr. Na denní bázi se zabývá optimalizací Spakových aplikací a vyvíjí Sparkové joby, které zpracovávají data na různých škálách od jednotek GBs až po desítky TBs. Vedle toho se zabývá výukou Sparkových trainingů a jeho školeními již prošla celá řada týmů zejména datový analytici, scientisti a inženýři. David je také Sparkovým kontributorem, přispěl do zdrojového kódu a pravidelně mluví na konferencích a meetupech jako je Spark + AI Summit, MLPrague nebo Spark + AI Prague meetup.
Osnova:
Spark SQL internals (Query Execution)
- Logical planning (Catalog, Analyzer, Cache Management, Optimizer)
- Catalyst API
- Extending the optimizer
- Limiting the optimizer
- Physical planning
- Query planner, strategies
- Spark plan
- Executed plan
- Understanding operators in the physical plan
- Cost based optimizer
- How cost-based optimizations work
- Statistics collection
- Statistics usage
Query optimization
- Shuffle elimination
- Bucketing
- Data repartition (when and how)
- Optimizing joins
- Shuffle-free join
- One-side shuffle-free join
- Broadcast join vs sort-merge join
- Data reuse
- Caching
- Checkpointing
- Exchange reuse
Optimization tips
- Choose the appropriate number of shuffle partitions
- Nondeterministic expressions
- Configuration settings
Data layout
- Different file formats
- Parquet vs Json
- Partitioning and bucketing
- How bucketing works
- How to ensure the proper number of files
- Tables management
- Working with the Catalog API
- Delta-io
- Open-source storage layer with ACID transactions
Předpoklady na účastníka:
- Tento kurz je navazujícím kurzem ke školení Apache Spark - od jednoduchých transformací po vysoce výkonné joby, ve kterém člověk mimo jiné získá dobrou znalost DataFramového API a základní přehled o interních procesech ve Sparku.
- Pro absolvování tohoto kurzu je tedy dobré mít předchozí zkušenosti se Sparkem (např. na úrovni výše zmíněného kurzu), znát DataFramové API a chápat základní principy distribuovaného počítání.