Sdílet prostřednictvím


Batch versus streamování zpracování dat v Azure Databricks

Tento článek popisuje klíčové rozdíly mezi dávkovou a streamovací službou, dvěma různými sémantikou zpracování dat, která se používá pro úlohy přípravy dat, včetně příjmu dat, transformace a zpracování v reálném čase.

Streamování je běžně spojeno s nízkou latencí a průběžným zpracováním z sběrnic zpráv, jako je Apache Kafka.

V Azure Databricks má ale rozsáhlejší definici. Základní modul deklarativních kanálů Sparku Lakeflow (Apache Spark a strukturované streamování) má jednotnou architekturu pro dávkové zpracování a zpracování streamování:

  • Modul může zacházet se zdroji, jako je cloudové úložiště objektů a Delta Lake , jako zdroje streamování pro efektivní přírůstkové zpracování.
  • Streamové zpracování lze spouštět jak aktivovaným, tak nepřetržitým způsobem, což vám dává flexibilitu při řízení nákladů a vyvážení výkonu pro streamovací úlohy.

Níže jsou základní sémantické rozdíly, které rozlišují dávkové zpracování a streamování, včetně jejich výhod, nevýhod a úvah pro jejich výběr pro vaše úlohy.

Sémantika služby Batch

Při dávkovém zpracování modul nesleduje, jaká data se už zpracovávají ve zdroji. Všechna data aktuálně dostupná ve zdroji se zpracovávají v době zpracování. V praxi je dávkové zdroje dat obvykle dělené logicky, například podle dne nebo oblasti, aby se omezilo opětovné zpracování dat.

Například výpočet průměrné prodejní ceny položky agregované v hodinové členitosti může být pro prodejní událost spuštěnou společností elektronického obchodování naplánován jako dávkové zpracování, aby se vypočítala průměrná prodejní cena každou hodinu. Při dávkovém zpracování se data z předchozích hodin každou hodinu znovu zpracovávají a dříve vypočítané výsledky se přepíšou tak, aby odrážely nejnovější výsledky.

Dávkové zpracování

Sémantika streamování

Při zpracování streamování modul sleduje, jaká data se zpracovávají, a zpracovává pouze nová data v následných spuštěních. V předchozím příkladu můžete naplánovat zpracování streamování místo dávkového zpracování, abyste vypočítali průměrnou prodejní cenu každou hodinu. Při streamování se od posledního spuštění zpracovávají pouze nová data přidaná do zdroje. Nově vypočítané výsledky musí být připojeny k dříve vypočítaným výsledkům, aby bylo možné zkontrolovat úplné výsledky.

Zpracování datových toků

Batch versus streamování

V předchozím příkladu je streamování lepší než dávkové zpracování, protože nezpracovává stejná data zpracovávaná v předchozích spuštěních. Zpracování datových proudů se ale stává složitějším v situacích, jako jsou data doručená mimo pořadí nebo pozdě.

Příkladem opožděně doručených dat je situace, kdy některá prodejní data z první hodiny dorazí do zdroje až ve druhé hodině.

  • V dávkovém zpracování se data o pozdním příjezdu z první hodiny zpracovávají s daty z druhé hodiny a stávajícími daty z první hodiny. Předchozí výsledky z první hodiny budou přepsány a upraveny pomocí dat o pozdním příjezdu.
  • Při zpracování streamingu budou pozdě příchozí data z první hodiny zpracována samostatně, bez veškerých ostatních dat z této hodiny, která již byla zpracována. Logika zpracování musí ukládat informace o součtu a počtu z průměrných výpočtů první hodiny, aby se správně aktualizovaly předchozí výsledky.

Tyto složitosti streamování se obvykle zavádějí, když je zpracování stavové, jako jsou spojení, agregace a odstranění duplicitních dat.

Pro bezstavové zpracování streamování, jako je připojování nových dat ze zdroje, je zpracování nesprávně seřazených a pozdě příchozích dat méně složité, protože pozdě příchozí data lze připojit k předchozím výsledkům při jejich příchodu ze zdroje.

Následující tabulka popisuje výhody a nevýhody dávkového zpracování a zpracování streamování a různé funkce produktu, které podporují tyto dvě sémantiky zpracování v Databricks Lakeflow.

Zpracování sémantické Výhody Nevýhody Produkty přípravy dat
Batch
  • Logika zpracování je jednoduchá.
  • Výsledky jsou vždy přesné a odrážejí všechna dostupná data ve zdroji.
  • Není tak efektivní; data budou znovu zpracována v určité části dávkového zpracování.
  • Pomalejší může zpracovávat požadavky na latenci od hodin po minuty, ale ne sekundy nebo milisekundy.
Streamování
  • Efektivní, zpracovávají se pouze nová data.
  • Rychlejší zpracování požadavků na latenci od hodin po minuty, sekundy a milisekundy.
  • Logika zpracování může být složitá, zejména pro stavové zpracování, jako jsou spojení, agregace, odstranění duplicitních dat atd.
  • Výsledky nemusí být vždy přesné, vzhledem k datům s nesprávným pořadím a pozdním příchodem.

Doporučení

Následující tabulka popisuje doporučenou sémantiku zpracování na základě charakteristik úloh zpracování dat v každé vrstvě architektury medallionu.

Vrstva medailiónu Charakteristiky úloh Doporučení
Bronz
  • Úlohy pro zpracování příjmu dat
  • Obvykle zahrnuje žádné nebo bezstavové zpracování pro postupné připojování ze zdrojů dat.
  • Velikost dat je obvykle větší.
  • Streamové zpracování je obecně lepší volbou, protože uživatelé mohou těžit z výhod streamování, ale nejsou vystaveni složitostem stavového streamového zpracování.
Stříbro
  • Úlohy transformace
  • Obvykle zahrnuje bezstavové zpracování, jako je filtrování a stavové zpracování, jako jsou spojení, agregace a odstranění duplicitních dat.
  • Použijte dávkové zpracování (s přírůstkovou aktualizací v materializovaných zobrazeních), abyste se vyhnuli složitostem stavového streamovacího zpracování.
  • Použijte streamovací zpracování jako možnost pro případy, kdy je efektivita a latence mnohem důležitější než přesnost výsledků. Mějte na paměti složitosti zavedené stavovým zpracováním streamování.
Zlato
  • Agregační úlohy na posledních mílích
  • Obvykle zahrnuje stavové zpracování, jako jsou spojení a agregace.
  • Velikost dat je obecně menší.
  • Použijte dávkové zpracování (s přírůstkovou aktualizací v materializovaných zobrazeních), abyste se vyhnuli složitostem stavového streamovacího zpracování.