Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Photon je Azure Databricks nativní vektorizovaný dotazovací modul, který urychluje úlohy SQL, volání rozhraní DATAFrame API, kanály ETL a bezstavové úlohy streamování. Photon zpracovává data v dávkách po sloupcích a oproti tradičnímu řádkově orientovanému zpracování přináší výrazné zvýšení výkonu. Photon je také kompatibilní s rozhraními APACHE Spark API, takže funguje s existujícím kódem bez nutnosti změn.
Jak Photon funguje
V případě podporovaných operací nahrazuje Photon spouštěcí modul Spark SQL založený na JVM nativním modulem runtime C++. Optimalizátor dotazů Apache Spark (Catalyst) stále plánuje váš dotaz, ale Photon převezme zpracování dat ve sloupcových dávkách místo řádků po řádci. Když photon během provádění dotazu narazí na nepodporovanou operaci, transparentně se vrátí do modulu runtime Sparku po zbytek této operace.
Photon zpracovává data v dávkách tisíců řádků najednou, což umožňuje moderním procesorům používat instrukce SIMD, které vyhodnocují více hodnot na cyklus procesoru. Díky běhu v nativním C++ namísto v prostředí JVM Photon eliminuje prodlevy způsobené garbage collectorem, zpoždění při zahřívání JIT a paměťovou režii. Sloupcové dávkové zpracování umožňuje sekvenční čtení optimalizované pro mezipaměť, což maximalizuje šířku pásma paměti a efektivitu pipeline procesoru.
Architektura Photon zlepšuje výkon mnoha způsoby:
- Zrychlení dotazů: Photon poskytuje až 5x lepší cenu a výkon pro úlohy dat a analýz v porovnání s jinými cloudovými datovými sklady měřenými standardními srovnávacími testy TPC-DS.
- Optimalizovaná spojení a přeskupování: Nahrazuje spojení typu sort-merge vysoce výkonnými hash spojeními a používá přepracované sloupcové přeskupování ke zvýšení propustnosti u rozsáhlých spojení.
-
Výkon zápisu: Nativní zapisovač Parquet ve Photonu zrychluje zápis do Delta Lake, Apache Icebergu a Parquetu, včetně operací
UPDATE,DELETE,MERGE INTO,INSERTaCREATE TABLE AS SELECT. U širokých tabulek s tisíci sloupců se zobrazují obzvláště významná vylepšení. - Efektivita skenování: Implementuje pushdown filtrů, prořezávání slovníků a přeskakování skupin řádků, aby se omezilo množství dat načítaných z úložiště, i při práci s mnoha malými soubory.
- Mezipaměť disků a souběžnost: Poskytuje rychlejší přístup prostřednictvím mezipaměti disku a zlepšuje propustnost souběžných dotazů v interaktivních úlohách BI.
- Integration with SQL and Dataframes API: Podporuje rozhraní SQL a DataFrame API napříč Python, R, Scala a Java bez nutnosti změn kódu.
Photon poskytuje největší výhodu pro dlouhotrvající dotazy, které zpracovávají velké datové sady. Dotazy, které se obvykle dokončí za méně než dvě sekundy, nezaznamenají žádné výrazné zlepšení, protože doba provádění je dána především režií spojenou s plánováním a rozvrhováním, nikoli zpracováním dat.
Integrace s platformou Azure Databricks
Photon zrychluje úlohy napříč platformou Azure Databricks. Abyste mohli využívat Photon, nemusíte měnit kód ani dotazy.
- Analytika SQL a BI: Photon je výchozím enginem pro všechny datové sklady SQL a zajišťuje chod řídicích panelů, ad hoc dotazů a plánovaných sestav.
- ETL a příprava dat: Dávkové úlohy vytvořené pomocí SQL nebo rozhraní DATAFrame API využívají rychlejší prohledávání, spojení, agregace a zápisy. Nativní zapisovač formátu Parquet je obzvlášť vhodný pro načítání dat do tabulek Delta Lake, Apache Iceberg nebo Parquet.
- Deklarativní kanály Sparku Lakeflow: Povolení Photonu v konfiguraci kanálu pomáhá zrychlit spouštění deklarativních kanálů Sparku Lakeflow .
- Streamování: Photon podporuje bezstavové streamování při zápisu do jímky Delta nebo Parquet. Mezi podporované zdroje patří Delta, Parquet, CSV, JSON, Kafka a Kinesis. Stavové streamování se nepodporuje.
- AI a strojové učení: Photon zlepšuje výkon pro Spark SQL, datové rámce, přípravu funkcí a operace GraphFrames.
Povolení fotonů
Photon je povolen v bezserverových výpočetních prostředích, skladech SQL a bezserverových deklarativních kanálech Lakeflow Spark.
Pro klasické univerzální clustery, clustery pro úlohy a klasické Lakeflow Spark Declarative Pipelines Databricks ve výchozím nastavení zapíná Photon. Zapněte nebo vypněte pomocí zaškrtávacího políčka Použít akceleraci photon v části Výkon při vytváření nebo úpravě výpočetních prostředků. Viz Použití akcelerace Photon. Pokud tyto prostředky vytvoříte pomocí rozhraní Clusters API nebo rozhraní Jobs API, musíte Photon výslovně povolit nastavením runtime_engine na PHOTON. Pokud používáte rozhraní Pipelines API, nastavte photon na true.
Funkce, které vyžadují aktivaci Photon
Následující funkce vyžadují povolení Photon:
- Prediktivní vstupně-výstupní operace pro čtení a zápis Podívejte se na co je prediktivní I/O?
- Dynamické vyřezávání souborů v
MERGE,UPDATEa příkazechDELETEViz Dynamické vyřezávání souborů.
Podporované typy instancí
Photon podporuje řadu typů instancí na ovladačích a pracovních uzlech. Typy instancí Photon spotřebovávají jednotky DBU jinou rychlostí než stejný typ instance běžící na runtime bez technologie Photon. Další informace o instancích Photon a spotřebě DBU najdete na stránce s cenami Azure Databricks.
Podporované operátory, výrazy a datové typy
Photon popisuje následující operátory, výrazy a datové typy. Když dotaz používá nepodporovanou operaci, Photon se transparentně vrátí do modulu runtime Spark pro danou část provádění.
Operátoři
- Skenování (Parquet, Delta, CSV, JSON), Filtr, Project
- Hashová agregace/spojení/přeskupení
- Nested-Loop Připojit
- Null-Aware anti join
- Prostorové spojení (broadcastové a shuffle varianty podporující
ST_Intersects,ST_Contains,ST_Covers,ST_Equals,ST_Touches,ST_WithinaST_DWithin) - Unie, Rozšířit, SkalárníPoddotaz
- Jímka pro zápis Delta/Parquet
- Řazení, TopK, limit
- Funkce okna
Výrazy
Tyto kategorie jsou reprezentativní, nejsou vyčerpávající. Jednotlivé funkce v rámci každé kategorie můžou mít omezení.
- Porovnání / logika
- Aritmetika / matematika
- Podmíněné (IF, CASE atd.)
- String
- Předvádí
- Agregace, včetně Min/Max/MinBy/MaxBy u vnořených typů
- Datum/časové razítko/DateFormat
Datové typy
- Bajt/ Krátký/Int/Long
- logický
- Řetězec/binární
- Desetinné číslo
- Plovoucí/dvojitá
- Datum a časové razítko
- TimestampNTZ
- Strukt
- Pole
- Mapa
- Variant
- Null
- geometrie
- Zeměpis
- Kompletovaný řetězec
Monitorování využití Photonu
Pomocí následujících nástrojů můžete monitorovat, kolik dotazů běží na Photonu:
- Spark UI (klasické univerzální výpočetní prostředí a výpočetní prostředí pro úlohy): Na kartě SQL/DataFrame v Spark UI jsou operátory Photon ve vizualizaci DAG dotazu zobrazeny oranžově. Standardní operátory Sparku se zobrazují modře. To vám pomůže určit, které části dotazu mají prospěch z Photonu a které se vrátí do modulu runtime Spark.
- Profil dotazu (sklady SQL a bezserverové výpočetní prostředky): Zobrazení Podrobností o spuštění zobrazuje procento času úkolu stráveného ve Photonu. Plán dotazu rozlišuje operátory Photon (fialové) od standardních operátorů (šedé).
Pokud si všimnete, že dotaz nepoužívá Photon tak, jak očekáváte, zkontrolujte, zda používá nepodporované operace, UDF nebo datové formáty, které způsobují návrat k prostředí Spark runtime.
Omezení
- Pokud vaše úloha narazí na nepodporovanou operaci, výpočetní prostředek se transparentně přepne na běhové prostředí Spark po zbývající část této operace. Dotaz stále generuje správné výsledky.
- Photon nepodporuje UDF (uživatelem definované funkce), rozhraní API RDD ani rozhraní API datových sad.
- Stavové streamování se nepodporuje. Photon podporuje jenom bezstavové streamování.
- Photon nezlepší dotazy, které se normálně spouštějí za méně než dvě sekundy.