Detail kurzu

Apache Spark for Data Engineers - Advanced Optimizations

DataScript s.r.o.

Popis kurzu

V TĚCHTO MĚSÍCÍCH NABÍZÍME KURZY VE VIRTUÁLNÍ PODOBĚ.

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 Scala v lokálním prostředí (Spark 2.4 + Zeppelin notebook).

Obsah kurzu

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 Socialbakers jako data scientist a data engineer. 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ívá do zdrojového kódu a pravidelně mluví na konferencích a meetupech jako je Spark + AI Summit, MLPrague nebo Spark + AI Prague meetup.

OsnovaSpark SQL internals (Query Execution)
  • Logical planning  (Catalog, Analyzer, Cache Managerm, Optimizer)

    • Catalyst API

    • Extending the optimizer

    • Limiting the optimizer

  •  Physical planing

    • Query planner, strategies

    • Spark plan 

    • Executed plan

    • Understanding operators in physical plan

  • Cost based optimizer

    • How cost based optimizations work

    • Statistics collection

    • Statistics usage

Lab I

  • Implement simple optimization rule

  • Fix a query based on the information from the query plan

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

Lab II

  • Optimize queries

Optimization tips

  • Choose 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 appropriate number of files

  • Delta-io

    • Open source storage layer with ACID transactions

Lab III

  • Prepare data for analytical queries


Předpoklady úč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í.


Cieľová 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.
Hodnotenie




Organizátor